Deleted Added
full compact
ng_bt3c_pccard.c (151700) ng_bt3c_pccard.c (151726)
1/*
2 * ng_bt3c_pccard.c
3 */
4
5/*-
6 * Copyright (c) 2001-2002 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7 * All rights reserved.
8 *

--- 14 unchanged lines hidden (view full) ---

23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $Id: ng_bt3c_pccard.c,v 1.5 2003/04/01 18:15:21 max Exp $
1/*
2 * ng_bt3c_pccard.c
3 */
4
5/*-
6 * Copyright (c) 2001-2002 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7 * All rights reserved.
8 *

--- 14 unchanged lines hidden (view full) ---

23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $Id: ng_bt3c_pccard.c,v 1.5 2003/04/01 18:15:21 max Exp $
31 * $FreeBSD: head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c 151700 2005-10-26 15:52:16Z jhb $
31 * $FreeBSD: head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c 151726 2005-10-26 23:13:51Z emax $
32 *
33 * XXX XXX XX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
34 *
35 * Based on information obrained from: Jose Orlando Pereira <jop@di.uminho.pt>
36 * and disassembled w2k driver.
37 *
38 * XXX XXX XX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
39 *

--- 567 unchanged lines hidden (view full) ---

607
608/*
609 * PC Card (PCMCIA) attach routine
610 */
611
612static int
613bt3c_pccard_attach(device_t dev)
614{
32 *
33 * XXX XXX XX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
34 *
35 * Based on information obrained from: Jose Orlando Pereira <jop@di.uminho.pt>
36 * and disassembled w2k driver.
37 *
38 * XXX XXX XX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
39 *

--- 567 unchanged lines hidden (view full) ---

607
608/*
609 * PC Card (PCMCIA) attach routine
610 */
611
612static int
613bt3c_pccard_attach(device_t dev)
614{
615 bt3c_softc_p sc = NULL;
615 bt3c_softc_p sc = (bt3c_softc_p) device_get_softc(dev);
616
616
617 sc = (bt3c_softc_p) malloc(sizeof(*sc), M_BT3C, M_NOWAIT|M_ZERO);
618 if (sc == NULL)
619 return (ENOMEM);
620
621 /* Allocate I/O ports */
622 sc->iobase_rid = 0;
623 sc->iobase = bus_alloc_resource(dev, SYS_RES_IOPORT, &sc->iobase_rid,
624 0, ~0, 8, RF_ACTIVE);
625 if (sc->iobase == NULL) {
626 device_printf(dev, "Could not allocate I/O ports\n");
627 goto bad;
628 }

--- 43 unchanged lines hidden (view full) ---

672 sc->inq.ifq_maxlen = sc->outq.ifq_maxlen = BT3C_DEFAULTQLEN;
673 mtx_init(&sc->inq.ifq_mtx, "BT3C inq", NULL, MTX_DEF);
674 mtx_init(&sc->outq.ifq_mtx, "BT3C outq", NULL, MTX_DEF);
675
676 sc->state = NG_BT3C_W4_PKT_IND;
677 sc->want = 1;
678
679 NG_NODE_SET_PRIVATE(sc->node, sc);
617 /* Allocate I/O ports */
618 sc->iobase_rid = 0;
619 sc->iobase = bus_alloc_resource(dev, SYS_RES_IOPORT, &sc->iobase_rid,
620 0, ~0, 8, RF_ACTIVE);
621 if (sc->iobase == NULL) {
622 device_printf(dev, "Could not allocate I/O ports\n");
623 goto bad;
624 }

--- 43 unchanged lines hidden (view full) ---

668 sc->inq.ifq_maxlen = sc->outq.ifq_maxlen = BT3C_DEFAULTQLEN;
669 mtx_init(&sc->inq.ifq_mtx, "BT3C inq", NULL, MTX_DEF);
670 mtx_init(&sc->outq.ifq_mtx, "BT3C outq", NULL, MTX_DEF);
671
672 sc->state = NG_BT3C_W4_PKT_IND;
673 sc->want = 1;
674
675 NG_NODE_SET_PRIVATE(sc->node, sc);
680 device_set_softc(dev, sc);
681
682 return (0);
683bad:
684 if (sc->ith != NULL) {
685 swi_remove(sc->ith);
686 sc->ith = NULL;
687 }
688

--- 11 unchanged lines hidden (view full) ---

700 if (sc->iobase != NULL) {
701 bus_release_resource(dev, SYS_RES_IOPORT,
702 sc->iobase_rid, sc->iobase);
703
704 sc->iobase = NULL;
705 sc->iobase_rid = 0;
706 }
707
676
677 return (0);
678bad:
679 if (sc->ith != NULL) {
680 swi_remove(sc->ith);
681 sc->ith = NULL;
682 }
683

--- 11 unchanged lines hidden (view full) ---

695 if (sc->iobase != NULL) {
696 bus_release_resource(dev, SYS_RES_IOPORT,
697 sc->iobase_rid, sc->iobase);
698
699 sc->iobase = NULL;
700 sc->iobase_rid = 0;
701 }
702
708 free(sc, M_BT3C);
709
710 return (ENXIO);
711} /* bt3c_pccacd_attach */
712
713/*
714 * PC Card (PCMCIA) detach routine
715 */
716
717static int
718bt3c_pccard_detach(device_t dev)
719{
720 bt3c_softc_p sc = (bt3c_softc_p) device_get_softc(dev);
721
722 if (sc == NULL)
723 return (0);
724
703 return (ENXIO);
704} /* bt3c_pccacd_attach */
705
706/*
707 * PC Card (PCMCIA) detach routine
708 */
709
710static int
711bt3c_pccard_detach(device_t dev)
712{
713 bt3c_softc_p sc = (bt3c_softc_p) device_get_softc(dev);
714
715 if (sc == NULL)
716 return (0);
717
725 device_set_softc(dev, NULL);
726
727 swi_remove(sc->ith);
728 sc->ith = NULL;
729
730 bus_teardown_intr(dev, sc->irq, sc->irq_cookie);
731 bus_release_resource(dev, SYS_RES_IRQ, sc->irq_rid, sc->irq);
732 sc->irq_cookie = NULL;
733 sc->irq = NULL;
734 sc->irq_rid = 0;

--- 10 unchanged lines hidden (view full) ---

745
746 NG_FREE_M(sc->m);
747 IF_DRAIN(&sc->inq);
748 IF_DRAIN(&sc->outq);
749
750 mtx_destroy(&sc->inq.ifq_mtx);
751 mtx_destroy(&sc->outq.ifq_mtx);
752
718 swi_remove(sc->ith);
719 sc->ith = NULL;
720
721 bus_teardown_intr(dev, sc->irq, sc->irq_cookie);
722 bus_release_resource(dev, SYS_RES_IRQ, sc->irq_rid, sc->irq);
723 sc->irq_cookie = NULL;
724 sc->irq = NULL;
725 sc->irq_rid = 0;

--- 10 unchanged lines hidden (view full) ---

736
737 NG_FREE_M(sc->m);
738 IF_DRAIN(&sc->inq);
739 IF_DRAIN(&sc->outq);
740
741 mtx_destroy(&sc->inq.ifq_mtx);
742 mtx_destroy(&sc->outq.ifq_mtx);
743
753 bzero(sc, sizeof(*sc));
754 free(sc, M_BT3C);
755
756 return (0);
757} /* bt3c_pccacd_detach */
758
759/*
760 * Interrupt service routine's
761 */
762
763static void

--- 428 unchanged lines hidden (view full) ---

1192 DEVMETHOD(device_detach, bt3c_pccard_detach),
1193
1194 { 0, 0 }
1195};
1196
1197static driver_t bt3c_pccard_driver = {
1198 NG_BT3C_NODE_TYPE,
1199 bt3c_pccard_methods,
744 return (0);
745} /* bt3c_pccacd_detach */
746
747/*
748 * Interrupt service routine's
749 */
750
751static void

--- 428 unchanged lines hidden (view full) ---

1180 DEVMETHOD(device_detach, bt3c_pccard_detach),
1181
1182 { 0, 0 }
1183};
1184
1185static driver_t bt3c_pccard_driver = {
1186 NG_BT3C_NODE_TYPE,
1187 bt3c_pccard_methods,
1200 0
1188 sizeof(bt3c_softc_t)
1201};
1202
1203static devclass_t bt3c_devclass;
1204
1205
1206/*
1207 * Load/Unload the driver module
1208 */

--- 30 unchanged lines hidden ---
1189};
1190
1191static devclass_t bt3c_devclass;
1192
1193
1194/*
1195 * Load/Unload the driver module
1196 */

--- 30 unchanged lines hidden ---