Commit b822f83d authored by Adam Belay's avatar Adam Belay

[PATCH 2.5] PnP changes to allow MODULE_DEVICE_TABLE()

This patch fixes the MODULE_DEVICE_TABLE problems, the correct code was
accidentally lost a few merges back.  It is from Daniel Ritz
<daniel.ritz@gmx.ch>, below is the original message.

hello adam, jaroslav, list

this patch does:
- rename struct pnp_card_id to pnp_card_device_id
- fix all references to it

this is needed for the MODULE_DEVICE_TABLE() macro to work with pnp_card's.
jaroslav did this a while ago (changeset 1.879.79.1), but adam undid it a bit
later (changeset 1.889.202.3). but why?

w/o the patch gcc dies when compiling als100.c with the message 'storage size
of __mod_pnp_card_device_table unknown' (this is from the macro).

any reasons why i should not send this to linus?
against 2.5.65-bk

rgds
-daniel
parent 4cac87d3
...@@ -909,7 +909,7 @@ static struct pci_driver fcpci_driver = { ...@@ -909,7 +909,7 @@ static struct pci_driver fcpci_driver = {
#ifdef CONFIG_PNP_CARD #ifdef CONFIG_PNP_CARD
static int __devinit fcpnp_probe(struct pnp_card *card, static int __devinit fcpnp_probe(struct pnp_card *card,
const struct pnp_card_id *card_id) const struct pnp_card_device_id *card_id)
{ {
struct fritz_adapter *adapter; struct fritz_adapter *adapter;
struct pnp_dev *pnp_dev; struct pnp_dev *pnp_dev;
...@@ -955,7 +955,7 @@ static void __devexit fcpnp_remove(struct pnp_card *pcard) ...@@ -955,7 +955,7 @@ static void __devexit fcpnp_remove(struct pnp_card *pcard)
delete_adapter(adapter); delete_adapter(adapter);
} }
static struct pnp_card_id fcpnp_ids[] __devinitdata = { static struct pnp_card_device_id fcpnp_ids[] __devinitdata = {
{ .id = "AVM0900", { .id = "AVM0900",
.driver_data = (unsigned long) "Fritz!Card PnP", .driver_data = (unsigned long) "Fritz!Card PnP",
.devs = { { "AVM0900" } }, .devs = { { "AVM0900" } },
......
...@@ -22,9 +22,9 @@ LIST_HEAD(pnp_cards); ...@@ -22,9 +22,9 @@ LIST_HEAD(pnp_cards);
LIST_HEAD(pnp_card_drivers); LIST_HEAD(pnp_card_drivers);
static const struct pnp_card_id * match_card(struct pnp_card_driver * drv, struct pnp_card * card) static const struct pnp_card_device_id * match_card(struct pnp_card_driver * drv, struct pnp_card * card)
{ {
const struct pnp_card_id * drv_id = drv->id_table; const struct pnp_card_device_id * drv_id = drv->id_table;
while (*drv_id->id){ while (*drv_id->id){
if (compare_pnp_id(card->id,drv_id->id)) if (compare_pnp_id(card->id,drv_id->id))
return drv_id; return drv_id;
...@@ -52,7 +52,7 @@ static void card_remove_first(struct pnp_dev * dev) ...@@ -52,7 +52,7 @@ static void card_remove_first(struct pnp_dev * dev)
static int card_probe(struct pnp_card * card, struct pnp_card_driver * drv) static int card_probe(struct pnp_card * card, struct pnp_card_driver * drv)
{ {
const struct pnp_card_id *id = match_card(drv,card); const struct pnp_card_device_id *id = match_card(drv,card);
if (id) { if (id) {
struct pnp_card_link * clink = pnp_alloc(sizeof(struct pnp_card_link)); struct pnp_card_link * clink = pnp_alloc(sizeof(struct pnp_card_link));
if (!clink) if (!clink)
......
...@@ -295,7 +295,7 @@ struct pnp_device_id { ...@@ -295,7 +295,7 @@ struct pnp_device_id {
unsigned long driver_data; /* data private to the driver */ unsigned long driver_data; /* data private to the driver */
}; };
struct pnp_card_id { struct pnp_card_device_id {
char id[PNP_ID_LEN]; char id[PNP_ID_LEN];
unsigned long driver_data; /* data private to the driver */ unsigned long driver_data; /* data private to the driver */
struct { struct {
...@@ -317,9 +317,9 @@ struct pnp_driver { ...@@ -317,9 +317,9 @@ struct pnp_driver {
struct pnp_card_driver { struct pnp_card_driver {
struct list_head global_list; struct list_head global_list;
char * name; char * name;
const struct pnp_card_id *id_table; const struct pnp_card_device_id *id_table;
unsigned int flags; unsigned int flags;
int (*probe) (struct pnp_card_link *card, const struct pnp_card_id *card_id); int (*probe) (struct pnp_card_link *card, const struct pnp_card_device_id *card_id);
void (*remove) (struct pnp_card_link *card); void (*remove) (struct pnp_card_link *card);
struct pnp_driver link; struct pnp_driver link;
}; };
......
...@@ -98,7 +98,7 @@ struct snd_card_als100 { ...@@ -98,7 +98,7 @@ struct snd_card_als100 {
struct pnp_dev *devopl; struct pnp_dev *devopl;
}; };
static struct pnp_card_id snd_als100_pnpids[] __devinitdata = { static struct pnp_card_device_id snd_als100_pnpids[] __devinitdata = {
/* ALS100 - PRO16PNP */ /* ALS100 - PRO16PNP */
{ .id = "ALS0001", .devs = { { "@@@0001" }, { "@X@0001" }, { "@H@0001" }, } }, { .id = "ALS0001", .devs = { { "@@@0001" }, { "@X@0001" }, { "@H@0001" }, } },
/* ALS110 - MF1000 - Digimate 3D Sound */ /* ALS110 - MF1000 - Digimate 3D Sound */
...@@ -118,7 +118,7 @@ MODULE_DEVICE_TABLE(pnp_card, snd_als100_pnpids); ...@@ -118,7 +118,7 @@ MODULE_DEVICE_TABLE(pnp_card, snd_als100_pnpids);
static int __devinit snd_card_als100_isapnp(int dev, struct snd_card_als100 *acard, static int __devinit snd_card_als100_isapnp(int dev, struct snd_card_als100 *acard,
struct pnp_card_link *card, struct pnp_card_link *card,
const struct pnp_card_id *id) const struct pnp_card_device_id *id)
{ {
struct pnp_dev *pdev; struct pnp_dev *pdev;
struct pnp_resource_table * cfg = kmalloc(GFP_ATOMIC, sizeof(struct pnp_resource_table)); struct pnp_resource_table * cfg = kmalloc(GFP_ATOMIC, sizeof(struct pnp_resource_table));
...@@ -210,7 +210,7 @@ static int __devinit snd_card_als100_isapnp(int dev, struct snd_card_als100 *aca ...@@ -210,7 +210,7 @@ static int __devinit snd_card_als100_isapnp(int dev, struct snd_card_als100 *aca
static int __init snd_card_als100_probe(int dev, static int __init snd_card_als100_probe(int dev,
struct pnp_card_link *pcard, struct pnp_card_link *pcard,
const struct pnp_card_id *pid) const struct pnp_card_device_id *pid)
{ {
int error; int error;
sb_t *chip; sb_t *chip;
...@@ -288,7 +288,7 @@ static int __init snd_card_als100_probe(int dev, ...@@ -288,7 +288,7 @@ static int __init snd_card_als100_probe(int dev,
} }
static int __devinit snd_als100_pnp_detect(struct pnp_card_link *card, static int __devinit snd_als100_pnp_detect(struct pnp_card_link *card,
const struct pnp_card_id *id) const struct pnp_card_device_id *id)
{ {
static int dev; static int dev;
int res; int res;
......
...@@ -69,7 +69,7 @@ struct snd_card_es968 { ...@@ -69,7 +69,7 @@ struct snd_card_es968 {
struct pnp_dev *dev; struct pnp_dev *dev;
}; };
static struct pnp_card_id snd_es968_pnpids[] __devinitdata = { static struct pnp_card_device_id snd_es968_pnpids[] __devinitdata = {
{ .id = "ESS0968", .devs = { { "@@@0968" }, } }, { .id = "ESS0968", .devs = { { "@@@0968" }, } },
{ .id = "", } /* end */ { .id = "", } /* end */
}; };
...@@ -92,7 +92,7 @@ static void snd_card_es968_interrupt(int irq, void *dev_id, ...@@ -92,7 +92,7 @@ static void snd_card_es968_interrupt(int irq, void *dev_id,
static int __devinit snd_card_es968_isapnp(int dev, struct snd_card_es968 *acard, static int __devinit snd_card_es968_isapnp(int dev, struct snd_card_es968 *acard,
struct pnp_card_link *card, struct pnp_card_link *card,
const struct pnp_card_id *id) const struct pnp_card_device_id *id)
{ {
struct pnp_dev *pdev; struct pnp_dev *pdev;
struct pnp_resource_table * cfg = kmalloc(GFP_ATOMIC, sizeof(struct pnp_resource_table)); struct pnp_resource_table * cfg = kmalloc(GFP_ATOMIC, sizeof(struct pnp_resource_table));
...@@ -133,7 +133,7 @@ static int __devinit snd_card_es968_isapnp(int dev, struct snd_card_es968 *acard ...@@ -133,7 +133,7 @@ static int __devinit snd_card_es968_isapnp(int dev, struct snd_card_es968 *acard
static int __init snd_card_es968_probe(int dev, static int __init snd_card_es968_probe(int dev,
struct pnp_card_link *pcard, struct pnp_card_link *pcard,
const struct pnp_card_id *pid) const struct pnp_card_device_id *pid)
{ {
int error; int error;
sb_t *chip; sb_t *chip;
...@@ -188,7 +188,7 @@ static int __init snd_card_es968_probe(int dev, ...@@ -188,7 +188,7 @@ static int __init snd_card_es968_probe(int dev,
} }
static int __devinit snd_es968_pnp_detect(struct pnp_card_link *card, static int __devinit snd_es968_pnp_detect(struct pnp_card_link *card,
const struct pnp_card_id *id) const struct pnp_card_device_id *id)
{ {
static int dev; static int dev;
int res; int res;
......
...@@ -224,7 +224,7 @@ static void sb_dev2cfg(struct pnp_dev *dev, struct sb_card_config *scc) ...@@ -224,7 +224,7 @@ static void sb_dev2cfg(struct pnp_dev *dev, struct sb_card_config *scc)
} }
/* Probe callback function for the PnP API */ /* Probe callback function for the PnP API */
static int sb_pnp_probe(struct pnp_card_link *card, const struct pnp_card_id *card_id) static int sb_pnp_probe(struct pnp_card_link *card, const struct pnp_card_device_id *card_id)
{ {
struct sb_card_config *scc; struct sb_card_config *scc;
struct sb_module_options sbmo = {0}; /* Default to 0 for PnP */ struct sb_module_options sbmo = {0}; /* Default to 0 for PnP */
......
...@@ -23,7 +23,7 @@ struct sb_card_config { ...@@ -23,7 +23,7 @@ struct sb_card_config {
*/ */
/* Card PnP ID Table */ /* Card PnP ID Table */
static struct pnp_card_id sb_pnp_card_table[] = { static struct pnp_card_device_id sb_pnp_card_table[] = {
/* Sound Blaster 16 */ /* Sound Blaster 16 */
{.id = "CTL0024", .driver_data = 0, devs : { {.id="CTL0031"}, } }, {.id = "CTL0024", .driver_data = 0, devs : { {.id="CTL0031"}, } },
/* Sound Blaster 16 */ /* Sound Blaster 16 */
......
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