Skip to content

Commit

Permalink
powerpc/macio: Fix probing of macio devices by using the right of mat…
Browse files Browse the repository at this point in the history
…ch table

Grant patches added an of mach table to struct device_driver. However,
while he changed the macio device code to use that, he left the match
table pointer in struct macio_driver and didn't update drivers to use
the "new" one, thus breaking the probing.

This completes the change by moving all drivers to setup the "new"
one, removing all traces of the old one, and while at it (since it
changes the exact same locations), I also remove two other duplicates
from struct driver which are the name and owner fields.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Benjamin Herrenschmidt committed Jun 2, 2010
1 parent 79905ad commit c2cdf6a
Show file tree
Hide file tree
Showing 14 changed files with 58 additions and 34 deletions.
4 changes: 0 additions & 4 deletions arch/powerpc/include/asm/macio.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,6 @@ static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev)
*/
struct macio_driver
{
char *name;
struct of_device_id *match_table;
struct module *owner;

int (*probe)(struct macio_dev* dev, const struct of_device_id *match);
int (*remove)(struct macio_dev* dev);

Expand Down
10 changes: 5 additions & 5 deletions drivers/ata/pata_macio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1355,8 +1355,11 @@ static struct of_device_id pata_macio_match[] =

static struct macio_driver pata_macio_driver =
{
.name = "pata-macio",
.match_table = pata_macio_match,
.driver = {
.name = "pata-macio",
.owner = THIS_MODULE,
.of_match_table = pata_macio_match,
},
.probe = pata_macio_attach,
.remove = pata_macio_detach,
#ifdef CONFIG_PM
Expand All @@ -1366,9 +1369,6 @@ static struct macio_driver pata_macio_driver =
#ifdef CONFIG_PMAC_MEDIABAY
.mediabay_event = pata_macio_mb_event,
#endif
.driver = {
.owner = THIS_MODULE,
},
};

static const struct pci_device_id pata_macio_pci_match[] = {
Expand Down
6 changes: 4 additions & 2 deletions drivers/block/swim3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1159,8 +1159,10 @@ static struct of_device_id swim3_match[] =

static struct macio_driver swim3_driver =
{
.name = "swim3",
.match_table = swim3_match,
.driver = {
.name = "swim3",
.of_match_table = swim3_match,
},
.probe = swim3_attach,
#if 0
.suspend = swim3_suspend,
Expand Down
7 changes: 5 additions & 2 deletions drivers/ide/pmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1400,8 +1400,11 @@ static struct of_device_id pmac_ide_macio_match[] =

static struct macio_driver pmac_ide_macio_driver =
{
.name = "ide-pmac",
.match_table = pmac_ide_macio_match,
.driver = {
.name = "ide-pmac",
.owner = THIS_MODULE,
.of_match_table = pmac_ide_macio_match,
},
.probe = pmac_ide_macio_attach,
.suspend = pmac_ide_macio_suspend,
.resume = pmac_ide_macio_resume,
Expand Down
1 change: 0 additions & 1 deletion drivers/macintosh/macio_asic.c
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,6 @@ static void macio_pci_add_devices(struct macio_chip *chip)
int macio_register_driver(struct macio_driver *drv)
{
/* initialize common driver fields */
drv->driver.name = drv->name;
drv->driver.bus = &macio_bus_type;

/* register with core */
Expand Down
6 changes: 4 additions & 2 deletions drivers/macintosh/mediabay.c
Original file line number Diff line number Diff line change
Expand Up @@ -728,8 +728,10 @@ static struct of_device_id media_bay_match[] =

static struct macio_driver media_bay_driver =
{
.name = "media-bay",
.match_table = media_bay_match,
.driver = {
.name = "media-bay",
.of_match_table = media_bay_match,
},
.probe = media_bay_attach,
.suspend = media_bay_suspend,
.resume = media_bay_resume
Expand Down
8 changes: 5 additions & 3 deletions drivers/macintosh/rack-meter.c
Original file line number Diff line number Diff line change
Expand Up @@ -584,9 +584,11 @@ static struct of_device_id rackmeter_match[] = {
};

static struct macio_driver rackmeter_driver = {
.name = "rackmeter",
.owner = THIS_MODULE,
.match_table = rackmeter_match,
.driver = {
.name = "rackmeter",
.owner = THIS_MODULE,
.of_match_table = rackmeter_match,
},
.probe = rackmeter_probe,
.remove = __devexit_p(rackmeter_remove),
.shutdown = rackmeter_shutdown,
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/bmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1654,8 +1654,11 @@ MODULE_DEVICE_TABLE (of, bmac_match);

static struct macio_driver bmac_driver =
{
.name = "bmac",
.match_table = bmac_match,
.driver = {
.name = "bmac",
.owner = THIS_MODULE,
.of_match_table = bmac_match,
},
.probe = bmac_probe,
.remove = bmac_remove,
#ifdef CONFIG_PM
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/mace.c
Original file line number Diff line number Diff line change
Expand Up @@ -997,8 +997,11 @@ MODULE_DEVICE_TABLE (of, mace_match);

static struct macio_driver mace_driver =
{
.name = "mace",
.match_table = mace_match,
.driver = {
.name = "mace",
.owner = THIS_MODULE,
.of_match_table = mace_match,
},
.probe = mace_probe,
.remove = mace_remove,
};
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/wireless/orinoco/airport.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,11 @@ static struct of_device_id airport_match[] =
MODULE_DEVICE_TABLE(of, airport_match);

static struct macio_driver airport_driver = {
.name = DRIVER_NAME,
.match_table = airport_match,
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
.of_match_table = airport_match,
},
.probe = airport_attach,
.remove = airport_detach,
.suspend = airport_suspend,
Expand Down
7 changes: 5 additions & 2 deletions drivers/scsi/mac53c94.c
Original file line number Diff line number Diff line change
Expand Up @@ -542,8 +542,11 @@ MODULE_DEVICE_TABLE (of, mac53c94_match);

static struct macio_driver mac53c94_driver =
{
.name = "mac53c94",
.match_table = mac53c94_match,
.driver = {
.name = "mac53c94",
.owner = THIS_MODULE,
.of_match_table = mac53c94_match,
},
.probe = mac53c94_probe,
.remove = mac53c94_remove,
};
Expand Down
7 changes: 5 additions & 2 deletions drivers/scsi/mesh.c
Original file line number Diff line number Diff line change
Expand Up @@ -2036,8 +2036,11 @@ MODULE_DEVICE_TABLE (of, mesh_match);

static struct macio_driver mesh_driver =
{
.name = "mesh",
.match_table = mesh_match,
.driver = {
.name = "mesh",
.owner = THIS_MODULE,
.of_match_table = mesh_match,
},
.probe = mesh_probe,
.remove = mesh_remove,
.shutdown = mesh_shutdown,
Expand Down
7 changes: 5 additions & 2 deletions drivers/serial/pmac_zilog.c
Original file line number Diff line number Diff line change
Expand Up @@ -2005,8 +2005,11 @@ static struct of_device_id pmz_match[] =
MODULE_DEVICE_TABLE (of, pmz_match);

static struct macio_driver pmz_driver = {
.name = "pmac_zilog",
.match_table = pmz_match,
.driver = {
.name = "pmac_zilog",
.owner = THIS_MODULE,
.of_match_table = pmz_match,
},
.probe = pmz_attach,
.remove = pmz_detach,
.suspend = pmz_suspend,
Expand Down
8 changes: 5 additions & 3 deletions sound/aoa/soundbus/i2sbus/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -437,9 +437,11 @@ static int i2sbus_shutdown(struct macio_dev* dev)
}

static struct macio_driver i2sbus_drv = {
.name = "soundbus-i2s",
.owner = THIS_MODULE,
.match_table = i2sbus_match,
.driver = {
.name = "soundbus-i2s",
.owner = THIS_MODULE,
.of_match_table = i2sbus_match,
},
.probe = i2sbus_probe,
.remove = i2sbus_remove,
#ifdef CONFIG_PM
Expand Down

0 comments on commit c2cdf6a

Please sign in to comment.