aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2005-06-27 19:28:43 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-27 21:03:17 -0400
commit22f3a8f5fc94be4dd31c4c5ec1d1dc2b9c83a8ac (patch)
treeac2ce47151056134ff0f24595348d6044bd1ef40
parent4af48c8c16dfc37400f63633373dd180b5540ead (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.c21
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
69static dev_link_t *dev_list = NULL; 69static dev_link_t *dev_list = NULL;
70 70
71static int irq_list[4] = { -1 };
72static int irq_list_count;
73
74module_param_array(irq_list, int, &irq_list_count, 0444);
75
76INT_MODULE_PARM(irq_mask, 0xdeb8);
77
78typedef struct local_info_t { 71typedef 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
409static struct pcmcia_device_id sl811_ids[] = {
410 PCMCIA_DEVICE_MANF_CARD(0xc015, 0x0001), /* RATOC USB HOST CF+ Card */
411 PCMCIA_DEVICE_NULL,
412};
413MODULE_DEVICE_TABLE(pcmcia, sl811_ids);
414
421static struct pcmcia_driver sl811_cs_driver = { 415static 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/*====================================================================*/