Home | History | Annotate | Download | only in qbus

Lines Matching defs:rfc_sc

280 rfcprobedens(struct rfc_softc *rfc_sc, int dnum)
287 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS,
295 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
298 device_xname(rfc_sc->sc_dev));
301 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2SA, 1);
304 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
307 device_xname(rfc_sc->sc_dev));
310 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2TA, 1);
313 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh,
320 device_xname(rfc_sc->sc_dev));
323 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
326 } while (rfc_sc->type == 2 && dens_flag++ == 0);
336 struct rfc_softc *rfc_sc = device_private(self);
341 rfc_sc->sc_dev = self;
342 rfc_sc->sc_iot = ua->ua_iot;
343 rfc_sc->sc_ioh = ua->ua_ioh;
344 rfc_sc->sc_dmat = ua->ua_dmat;
345 rfc_sc->sc_curbuf = NULL;
347 uba_intr_establish(ua->ua_icookie, ua->ua_cvec, rfc_intr, rfc_sc,
348 &rfc_sc->sc_intr_count);
350 evcnt_attach_dynamic(&rfc_sc->sc_intr_count, EVCNT_TYPE_INTR,
351 ua->ua_evcnt, device_xname(rfc_sc->sc_dev), "intr");
353 i = bus_dmamap_create(rfc_sc->sc_dmat, RX2_BYTE_DD, 1, RX2_BYTE_DD, 0,
354 BUS_DMA_ALLOCNOW, &rfc_sc->sc_dmam);
361 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS, RX2CS_INIT);
367 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
369 && (bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2ES)
383 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
385 rfc_sc->type = 2;
388 rfc_sc->type = 1;
391 printf(": RX0%d\n", rfc_sc->type);
400 rfc_sc->sc_childs[0] = config_found(rfc_sc->sc_dev, &rfc_aa, rf_print,
403 rfc_sc->sc_childs[1] = config_found(rfc_sc->sc_dev, &rfc_aa, rf_print,
415 if (rfcprobedens(rfc_sc, 0) >= 0) {
417 rfc_sc->sc_childs[0] = config_found(rfc_sc->sc_dev, &rfc_aa,
420 rfc_sc->sc_childs[0] = NULL;
421 if (rfcprobedens(rfc_sc, 1) >= 0) {
423 rfc_sc->sc_childs[1] = config_found(rfc_sc->sc_dev, &rfc_aa,
426 rfc_sc->sc_childs[1] = NULL;
454 struct rfc_softc *rfc_sc = device_private(parent);
459 rf_sc->sc_rfc = rfc_sc;
471 dl->d_typename[3] = rfc_sc->type == 1 ? '1' : '2'; /* type name */
527 rfc_sendcmd(struct rfc_softc *rfc_sc, int cmd, int data1, int data2)
531 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS, cmd);
537 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
540 device_xname(rfc_sc->sc_dev), cmd);
543 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2DB,
552 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2CS)
555 device_xname(rfc_sc->sc_dev), cmd);
558 bus_space_write_2(rfc_sc->sc_iot, rfc_sc->sc_ioh, RX2DB,
570 struct rfc_softc *rfc_sc;
578 rfc_sc = rf_sc->sc_rfc;
601 if (rfc_sc->sc_curbuf == NULL) {
602 rfc_sc->sc_curchild = rf_sc->sc_dnum;
603 rfc_sc->sc_curbuf = buf;
604 rfc_sc->sc_bufidx = buf->b_data;
605 rfc_sc->sc_bytesleft = buf->b_bcount;
606 rfc_intr(rfc_sc);
625 get_new_buf( struct rfc_softc *rfc_sc)
630 rf_sc = device_private(rfc_sc->sc_childs[rfc_sc->sc_curchild]);
631 rfc_sc->sc_curbuf = bufq_get(rf_sc->sc_bufq);
632 if (rfc_sc->sc_curbuf != NULL) {
633 rfc_sc->sc_bufidx = rfc_sc->sc_curbuf->b_data;
634 rfc_sc->sc_bytesleft = rfc_sc->sc_curbuf->b_bcount;
638 rfc_sc->sc_childs[ rfc_sc->sc_curchild == 0 ? 1 : 0]);
641 rfc_sc->sc_curchild = rfc_sc->sc_curchild == 0 ? 1 : 0;
643 rfc_sc->sc_curbuf = bufq_get(rf_sc->sc_bufq);
644 rfc_sc->sc_bufidx = rfc_sc->sc_curbuf->b_data;
645 rfc_sc->sc_bytesleft = rfc_sc->sc_curbuf->b_bcount;
657 struct rfc_softc *rfc_sc = intarg;
661 rf_sc = device_private(rfc_sc->sc_childs[rfc_sc->sc_curchild]);
669 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh,
674 if (rfc_sc->type == 2
680 if (rfc_sendcmd(rfc_sc, RX2CS_RSEC
699 if (rfc_sc->sc_curbuf->b_bcount
706 rfc_sc->sc_curbuf->b_error = EIO;
708 RFS_SETCMD(rf_sc->sc_state, (rfc_sc->sc_curbuf->b_flags
714 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh,
718 bus_space_read_2(rfc_sc->sc_iot,
719 rfc_sc->sc_ioh, RX2ES) );
720 rfc_sc->sc_curbuf->b_error = EIO;
729 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh,
733 bus_space_read_2(rfc_sc->sc_iot,
734 rfc_sc->sc_ioh, RX2ES) );
735 rfc_sc->sc_curbuf->b_error = EIO;
738 if (rfc_sc->sc_bytesleft > i) {
739 rfc_sc->sc_bytesleft -= i;
740 rfc_sc->sc_bufidx =
741 (char *)rfc_sc->sc_bufidx + i;
743 biodone(rfc_sc->sc_curbuf);
744 rf_sc = get_new_buf( rfc_sc);
749 (rfc_sc->sc_curbuf->b_flags & B_READ) != 0
754 bus_dmamap_unload(rfc_sc->sc_dmat, rfc_sc->sc_dmam);
756 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh,
760 bus_space_read_2(rfc_sc->sc_iot,
761 rfc_sc->sc_ioh, RX2ES));
762 rfc_sc->sc_curbuf->b_error = EIO;
770 bus_dmamap_unload(rfc_sc->sc_dmat, rfc_sc->sc_dmam);
772 if ((bus_space_read_2(rfc_sc->sc_iot, rfc_sc->sc_ioh,
776 bus_space_read_2(rfc_sc->sc_iot,
777 rfc_sc->sc_ioh, RX2ES));
778 rfc_sc->sc_curbuf->b_error = EIO;
781 if (rfc_sc->sc_bytesleft > i) {
782 rfc_sc->sc_bytesleft -= i;
783 rfc_sc->sc_bufidx =
784 (char *)rfc_sc->sc_bufidx + i;
786 biodone(rfc_sc->sc_curbuf);
787 rf_sc = get_new_buf( rfc_sc);
792 (rfc_sc->sc_curbuf->b_flags & B_READ) != 0
805 if (rfc_sc->sc_curbuf->b_error != 0) {
813 rfc_sc->sc_curbuf->b_resid = rfc_sc->sc_bytesleft;
814 rfc_sc->sc_curbuf->b_error = EIO;
815 biodone(rfc_sc->sc_curbuf);
816 rf_sc = get_new_buf( rfc_sc);
827 i = bus_dmamap_load(rfc_sc->sc_dmat, rfc_sc->sc_dmam,
828 rfc_sc->sc_bufidx, (rf_sc->sc_state & RFS_DENS) == 0
830 rfc_sc->sc_curbuf->b_proc, BUS_DMA_NOWAIT);
834 rfc_sc->sc_curbuf->b_error = EIO;
838 if (rfc_sendcmd(rfc_sc, RX2CS_EBUF | RX2CS_IE
841 | ((rfc_sc->sc_dmam->dm_segs[0].ds_addr
844 rfc_sc->sc_dmam->dm_segs[0].ds_addr & 0xffff) < 0) {
846 rfc_sc->sc_curbuf->b_error = EIO;
847 bus_dmamap_unload(rfc_sc->sc_dmat,
848 rfc_sc->sc_dmam);
852 i = bus_dmamap_load(rfc_sc->sc_dmat, rfc_sc->sc_dmam,
853 rfc_sc->sc_bufidx, (rf_sc->sc_state & RFS_DENS) == 0
855 rfc_sc->sc_curbuf->b_proc, BUS_DMA_NOWAIT);
859 rfc_sc->sc_curbuf->b_error = EIO;
863 if (rfc_sendcmd(rfc_sc, RX2CS_FBUF | RX2CS_IE
866 | ((rfc_sc->sc_dmam->dm_segs[0].ds_addr
869 rfc_sc->sc_dmam->dm_segs[0].ds_addr & 0xffff) < 0) {
871 rfc_sc->sc_curbuf->b_error = EIO;
872 bus_dmamap_unload(rfc_sc->sc_dmat,
873 rfc_sc->sc_dmam);
877 i = (rfc_sc->sc_curbuf->b_bcount - rfc_sc->sc_bytesleft
878 + rfc_sc->sc_curbuf->b_blkno * DEV_BSIZE) /
882 rfc_sc->sc_curbuf->b_error = EIO;
886 if (rfc_sendcmd(rfc_sc, RX2CS_WSEC | RX2CS_IE
891 rfc_sc->sc_curbuf->b_error = EIO;
895 i = (rfc_sc->sc_curbuf->b_bcount - rfc_sc->sc_bytesleft
896 + rfc_sc->sc_curbuf->b_blkno * DEV_BSIZE) /
900 rfc_sc->sc_curbuf->b_error = EIO;
904 if (rfc_sendcmd(rfc_sc, RX2CS_RSEC | RX2CS_IE
909 rfc_sc->sc_curbuf->b_error = EIO;
924 if (rfc_sc->sc_curbuf->b_error != 0) {
932 rfc_sc->sc_curbuf->b_resid = rfc_sc->sc_bytesleft;
933 rfc_sc->sc_curbuf->b_error = EIO;
934 biodone(rfc_sc->sc_curbuf);
935 rf_sc = get_new_buf( rfc_sc);
970 struct rfc_softc *rfc_sc;
976 rfc_sc = rf_sc->sc_rfc;
993 if (rfc_sc->type == 1
1009 rfc_sc->sc_curchild = rf_sc->sc_dnum;
1020 if (rfc_sendcmd(rfc_sc, RX2CS_RSEC | RX2CS_IE