diff options
author | David Brownell <david-b@pacbell.net> | 2005-06-27 19:28:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-27 21:03:17 -0400 |
commit | 22f3a8f5fc94be4dd31c4c5ec1d1dc2b9c83a8ac (patch) | |
tree | ac2ce47151056134ff0f24595348d6044bd1ef40 | |
parent | 4af48c8c16dfc37400f63633373dd180b5540ead (diff) |
[PATCH] pcmcia id_table for sl811.cs
Catch up with some PCMCIA API changes:
- Docs say that as of 2.6.11 the PCMCIA IRQInfo2 field is ignored,
but it's not yet removed from the API; stop using it anyway.
- As of 2.6.13 PCMCIA finally hotplugs and does driver binding
without "cardmgr"; add a MODULE_DEVICE_TABLE to support this.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/usb/host/sl811_cs.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c index 6e173265095c..269d8ef01459 100644 --- a/drivers/usb/host/sl811_cs.c +++ b/drivers/usb/host/sl811_cs.c | |||
@@ -68,13 +68,6 @@ static const char driver_name[DEV_NAME_LEN] = "sl811_cs"; | |||
68 | 68 | ||
69 | static dev_link_t *dev_list = NULL; | 69 | static dev_link_t *dev_list = NULL; |
70 | 70 | ||
71 | static int irq_list[4] = { -1 }; | ||
72 | static int irq_list_count; | ||
73 | |||
74 | module_param_array(irq_list, int, &irq_list_count, 0444); | ||
75 | |||
76 | INT_MODULE_PARM(irq_mask, 0xdeb8); | ||
77 | |||
78 | typedef struct local_info_t { | 71 | typedef struct local_info_t { |
79 | dev_link_t link; | 72 | dev_link_t link; |
80 | dev_node_t node; | 73 | dev_node_t node; |
@@ -373,7 +366,7 @@ static dev_link_t *sl811_cs_attach(void) | |||
373 | local_info_t *local; | 366 | local_info_t *local; |
374 | dev_link_t *link; | 367 | dev_link_t *link; |
375 | client_reg_t client_reg; | 368 | client_reg_t client_reg; |
376 | int ret, i; | 369 | int ret; |
377 | 370 | ||
378 | local = kmalloc(sizeof(local_info_t), GFP_KERNEL); | 371 | local = kmalloc(sizeof(local_info_t), GFP_KERNEL); |
379 | if (!local) | 372 | if (!local) |
@@ -385,11 +378,6 @@ static dev_link_t *sl811_cs_attach(void) | |||
385 | /* Initialize */ | 378 | /* Initialize */ |
386 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; | 379 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
387 | link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID; | 380 | link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID; |
388 | if (irq_list[0] == -1) | ||
389 | link->irq.IRQInfo2 = irq_mask; | ||
390 | else | ||
391 | for (i = 0; i < irq_list_count; i++) | ||
392 | link->irq.IRQInfo2 |= 1 << irq_list[i]; | ||
393 | link->irq.Handler = NULL; | 381 | link->irq.Handler = NULL; |
394 | 382 | ||
395 | link->conf.Attributes = 0; | 383 | link->conf.Attributes = 0; |
@@ -418,6 +406,12 @@ static dev_link_t *sl811_cs_attach(void) | |||
418 | return link; | 406 | return link; |
419 | } | 407 | } |
420 | 408 | ||
409 | static struct pcmcia_device_id sl811_ids[] = { | ||
410 | PCMCIA_DEVICE_MANF_CARD(0xc015, 0x0001), /* RATOC USB HOST CF+ Card */ | ||
411 | PCMCIA_DEVICE_NULL, | ||
412 | }; | ||
413 | MODULE_DEVICE_TABLE(pcmcia, sl811_ids); | ||
414 | |||
421 | static struct pcmcia_driver sl811_cs_driver = { | 415 | static struct pcmcia_driver sl811_cs_driver = { |
422 | .owner = THIS_MODULE, | 416 | .owner = THIS_MODULE, |
423 | .drv = { | 417 | .drv = { |
@@ -425,6 +419,7 @@ static struct pcmcia_driver sl811_cs_driver = { | |||
425 | }, | 419 | }, |
426 | .attach = sl811_cs_attach, | 420 | .attach = sl811_cs_attach, |
427 | .detach = sl811_cs_detach, | 421 | .detach = sl811_cs_detach, |
422 | .id_table = sl811_ids, | ||
428 | }; | 423 | }; |
429 | 424 | ||
430 | /*====================================================================*/ | 425 | /*====================================================================*/ |