Commit 22f3a8f5 authored by David Brownell's avatar David Brownell Committed by Linus Torvalds

[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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4af48c8c
...@@ -68,13 +68,6 @@ static const char driver_name[DEV_NAME_LEN] = "sl811_cs"; ...@@ -68,13 +68,6 @@ static const char driver_name[DEV_NAME_LEN] = "sl811_cs";
static dev_link_t *dev_list = NULL; static dev_link_t *dev_list = NULL;
static int irq_list[4] = { -1 };
static int irq_list_count;
module_param_array(irq_list, int, &irq_list_count, 0444);
INT_MODULE_PARM(irq_mask, 0xdeb8);
typedef struct local_info_t { typedef struct local_info_t {
dev_link_t link; dev_link_t link;
dev_node_t node; dev_node_t node;
...@@ -373,7 +366,7 @@ static dev_link_t *sl811_cs_attach(void) ...@@ -373,7 +366,7 @@ static dev_link_t *sl811_cs_attach(void)
local_info_t *local; local_info_t *local;
dev_link_t *link; dev_link_t *link;
client_reg_t client_reg; client_reg_t client_reg;
int ret, i; int ret;
local = kmalloc(sizeof(local_info_t), GFP_KERNEL); local = kmalloc(sizeof(local_info_t), GFP_KERNEL);
if (!local) if (!local)
...@@ -385,11 +378,6 @@ static dev_link_t *sl811_cs_attach(void) ...@@ -385,11 +378,6 @@ static dev_link_t *sl811_cs_attach(void)
/* Initialize */ /* Initialize */
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID;
if (irq_list[0] == -1)
link->irq.IRQInfo2 = irq_mask;
else
for (i = 0; i < irq_list_count; i++)
link->irq.IRQInfo2 |= 1 << irq_list[i];
link->irq.Handler = NULL; link->irq.Handler = NULL;
link->conf.Attributes = 0; link->conf.Attributes = 0;
...@@ -418,6 +406,12 @@ static dev_link_t *sl811_cs_attach(void) ...@@ -418,6 +406,12 @@ static dev_link_t *sl811_cs_attach(void)
return link; return link;
} }
static struct pcmcia_device_id sl811_ids[] = {
PCMCIA_DEVICE_MANF_CARD(0xc015, 0x0001), /* RATOC USB HOST CF+ Card */
PCMCIA_DEVICE_NULL,
};
MODULE_DEVICE_TABLE(pcmcia, sl811_ids);
static struct pcmcia_driver sl811_cs_driver = { static struct pcmcia_driver sl811_cs_driver = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.drv = { .drv = {
...@@ -425,6 +419,7 @@ static struct pcmcia_driver sl811_cs_driver = { ...@@ -425,6 +419,7 @@ static struct pcmcia_driver sl811_cs_driver = {
}, },
.attach = sl811_cs_attach, .attach = sl811_cs_attach,
.detach = sl811_cs_detach, .detach = sl811_cs_detach,
.id_table = sl811_ids,
}; };
/*====================================================================*/ /*====================================================================*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment