diff options
Diffstat (limited to 'drivers/isdn/hisax/st5481_init.c')
| -rw-r--r-- | drivers/isdn/hisax/st5481_init.c | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/drivers/isdn/hisax/st5481_init.c b/drivers/isdn/hisax/st5481_init.c index 13751237bfc..54ef9e4f8cb 100644 --- a/drivers/isdn/hisax/st5481_init.c +++ b/drivers/isdn/hisax/st5481_init.c @@ -4,13 +4,13 @@ * Author Frode Isaksen * Copyright 2001 by Frode Isaksen <fisaksen@bewan.com> * 2001 by Kai Germaschewski <kai.germaschewski@gmx.de> - * + * * This software may be used and distributed according to the terms * of the GNU General Public License, incorporated herein by reference. * */ -/* +/* * TODO: * * b layer1 delay? @@ -46,8 +46,6 @@ module_param(debug, int, 0); #endif int st5481_debug; -static LIST_HEAD(adapter_list); - /* ====================================================================== * registration/deregistration with the USB layer */ @@ -65,9 +63,9 @@ static int probe_st5481(struct usb_interface *intf, int retval, i; printk(KERN_INFO "st541: found adapter VendorId %04x, ProductId %04x, LEDs %d\n", - le16_to_cpu(dev->descriptor.idVendor), - le16_to_cpu(dev->descriptor.idProduct), - number_of_leds); + le16_to_cpu(dev->descriptor.idVendor), + le16_to_cpu(dev->descriptor.idProduct), + number_of_leds); adapter = kzalloc(sizeof(struct st5481_adapter), GFP_KERNEL); if (!adapter) @@ -86,7 +84,6 @@ static int probe_st5481(struct usb_interface *intf, adapter->bcs[i].b_if.ifc.priv = &adapter->bcs[i]; adapter->bcs[i].b_if.ifc.l2l1 = st5481_b_l2l1; } - list_add(&adapter->list, &adapter_list); retval = st5481_setup_usb(adapter); if (retval < 0) @@ -108,7 +105,7 @@ static int probe_st5481(struct usb_interface *intf, b_if[i] = &adapter->bcs[i].b_if; if (hisax_register(&adapter->hisax_d_if, b_if, "st5481_usb", - protocol) != 0) + protocol) != 0) goto err_b1; st5481_start(adapter); @@ -116,15 +113,16 @@ static int probe_st5481(struct usb_interface *intf, usb_set_intfdata(intf, adapter); return 0; - err_b1: +err_b1: st5481_release_b(&adapter->bcs[1]); - err_b: +err_b: st5481_release_b(&adapter->bcs[0]); - err_d: +err_d: st5481_release_d(adapter); - err_usb: +err_usb: st5481_release_usb(adapter); - err: +err: + kfree(adapter); return -EIO; } @@ -136,13 +134,11 @@ static void disconnect_st5481(struct usb_interface *intf) { struct st5481_adapter *adapter = usb_get_intfdata(intf); - DBG(1,""); + DBG(1, ""); usb_set_intfdata(intf, NULL); if (!adapter) return; - - list_del(&adapter->list); st5481_stop(adapter); st5481_release_b(&adapter->bcs[1]); @@ -161,31 +157,32 @@ static void disconnect_st5481(struct usb_interface *intf) * The last 4 bits in the Product Id is set with 4 pins on the chip. */ static struct usb_device_id st5481_ids[] = { - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x0) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x1) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x2) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x3) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x4) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x5) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x6) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x7) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x8) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x9) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xA) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xB) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xC) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xD) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xE) }, - { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xF) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x0) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x1) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x2) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x3) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x4) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x5) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x6) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x7) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x8) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x9) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xA) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xB) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xC) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xD) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xE) }, + { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xF) }, { } }; -MODULE_DEVICE_TABLE (usb, st5481_ids); +MODULE_DEVICE_TABLE(usb, st5481_ids); static struct usb_driver st5481_usb_driver = { .name = "st5481_usb", .probe = probe_st5481, .disconnect = disconnect_st5481, .id_table = st5481_ids, + .disable_hub_initiated_lpm = 1, }; static int __init st5481_usb_init(void) @@ -208,9 +205,9 @@ static int __init st5481_usb_init(void) return 0; - out_d_exit: +out_d_exit: st5481_d_exit(); - out: +out: return retval; } |
