[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>
This commit is contained in:
parent
4af48c8c16
commit
22f3a8f5fc
1 changed files with 8 additions and 13 deletions
|
@ -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)
|
||||||
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)
|
||||||
/* 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)
|
||||||
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 = {
|
||||||
},
|
},
|
||||||
.attach = sl811_cs_attach,
|
.attach = sl811_cs_attach,
|
||||||
.detach = sl811_cs_detach,
|
.detach = sl811_cs_detach,
|
||||||
|
.id_table = sl811_ids,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*====================================================================*/
|
/*====================================================================*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue