Skip to content

Commit

Permalink
sound: oxygen: make the owner module a parameter of the probe function
Browse files Browse the repository at this point in the history
Move the owner field out of the oxygen_model structure and make it
a parameter of oxygen_pci_probe(), because the actual owner module does
not depend on the card model.  Furthermore, moving it out of the model
structure allows us to create the card structure before the actual model
is known.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Clemens Ladisch authored and Takashi Iwai committed Feb 19, 2009
1 parent a5e0e97 commit bb71858
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 10 deletions.
3 changes: 1 addition & 2 deletions sound/pci/oxygen/hifier.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ static const struct oxygen_model model_hifier = {
.shortname = "C-Media CMI8787",
.longname = "C-Media Oxygen HD Audio",
.chip = "CMI8788",
.owner = THIS_MODULE,
.init = hifier_init,
.control_filter = hifier_control_filter,
.cleanup = hifier_cleanup,
Expand Down Expand Up @@ -185,7 +184,7 @@ static int __devinit hifier_probe(struct pci_dev *pci,
++dev;
return -ENOENT;
}
err = oxygen_pci_probe(pci, index[dev], id[dev], &model_hifier, 0);
err = oxygen_pci_probe(pci, index[dev], id[dev], THIS_MODULE, &model_hifier, 0);
if (err >= 0)
++dev;
return err;
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/oxygen/oxygen.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,6 @@ static const struct oxygen_model model_generic = {
.shortname = "C-Media CMI8788",
.longname = "C-Media Oxygen HD Audio",
.chip = "CMI8788",
.owner = THIS_MODULE,
.probe = generic_probe,
.init = generic_init,
.cleanup = generic_cleanup,
Expand Down Expand Up @@ -353,7 +352,7 @@ static int __devinit generic_oxygen_probe(struct pci_dev *pci,
++dev;
return -ENOENT;
}
err = oxygen_pci_probe(pci, index[dev], id[dev],
err = oxygen_pci_probe(pci, index[dev], id[dev], THIS_MODULE,
&model_generic, pci_id->driver_data);
if (err >= 0)
++dev;
Expand Down
2 changes: 1 addition & 1 deletion sound/pci/oxygen/oxygen.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ struct oxygen_model {
const char *shortname;
const char *longname;
const char *chip;
struct module *owner;
int (*probe)(struct oxygen *chip, unsigned long driver_data);
void (*init)(struct oxygen *chip);
int (*control_filter)(struct snd_kcontrol_new *template);
Expand Down Expand Up @@ -134,6 +133,7 @@ struct oxygen {
/* oxygen_lib.c */

int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
struct module *owner,
const struct oxygen_model *model,
unsigned long driver_data);
void oxygen_pci_remove(struct pci_dev *pci);
Expand Down
3 changes: 2 additions & 1 deletion sound/pci/oxygen/oxygen_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -452,14 +452,15 @@ static void oxygen_card_free(struct snd_card *card)
}

int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
struct module *owner,
const struct oxygen_model *model,
unsigned long driver_data)
{
struct snd_card *card;
struct oxygen *chip;
int err;

err = snd_card_create(index, id, model->owner,
err = snd_card_create(index, id, owner,
sizeof(*chip) + model->model_data_size, &card);
if (err < 0)
return err;
Expand Down
5 changes: 1 addition & 4 deletions sound/pci/oxygen/virtuoso.c
Original file line number Diff line number Diff line change
Expand Up @@ -816,7 +816,6 @@ static int xonar_model_probe(struct oxygen *chip, unsigned long driver_data)
static const struct oxygen_model model_xonar_d2 = {
.longname = "Asus Virtuoso 200",
.chip = "AV200",
.owner = THIS_MODULE,
.probe = xonar_model_probe,
.init = xonar_d2_init,
.control_filter = xonar_d2_control_filter,
Expand Down Expand Up @@ -849,7 +848,6 @@ static const struct oxygen_model model_xonar_d2 = {
static const struct oxygen_model model_xonar_d1 = {
.longname = "Asus Virtuoso 100",
.chip = "AV200",
.owner = THIS_MODULE,
.probe = xonar_model_probe,
.init = xonar_d1_init,
.control_filter = xonar_d1_control_filter,
Expand Down Expand Up @@ -878,7 +876,6 @@ static const struct oxygen_model model_xonar_d1 = {
static const struct oxygen_model model_xonar_hdav = {
.longname = "Asus Virtuoso 200",
.chip = "AV200",
.owner = THIS_MODULE,
.probe = xonar_model_probe,
.init = xonar_hdav_init,
.cleanup = xonar_hdav_cleanup,
Expand Down Expand Up @@ -925,7 +922,7 @@ static int __devinit xonar_probe(struct pci_dev *pci,
return -ENOENT;
}
BUG_ON(pci_id->driver_data >= ARRAY_SIZE(models));
err = oxygen_pci_probe(pci, index[dev], id[dev],
err = oxygen_pci_probe(pci, index[dev], id[dev], THIS_MODULE,
models[pci_id->driver_data],
pci_id->driver_data);
if (err >= 0)
Expand Down

0 comments on commit bb71858

Please sign in to comment.