Message ID | 1995794.TENtrAZA5Q@vostro.rjw.lan |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
On 02/28/2013 04:53 PM, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > After PCI and USB have stopped using the .find_bridge() callback in > struct acpi_bus_type, the only remaining user of it is SATA, but SATA > only pretends to be a user, because it points that callback to a stub > always returning -ENODEV. > > For this reason, drop the SATA's dummy .find_bridge() callback and > remove .find_bridge(), which is not used any more, from struct > acpi_bus_type entirely. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/acpi/glue.c | 26 +------------------------- > drivers/ata/libata-acpi.c | 6 ------ > include/acpi/acpi_bus.h | 3 --- > 3 files changed, 1 insertion(+), 34 deletions(-) patches 1-2 Acked-by: Jeff Garzik <jgarzik@pobox.com> -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thursday, February 28, 2013 05:13:27 PM Jeff Garzik wrote: > On 02/28/2013 04:53 PM, Rafael J. Wysocki wrote: > > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > > > After PCI and USB have stopped using the .find_bridge() callback in > > struct acpi_bus_type, the only remaining user of it is SATA, but SATA > > only pretends to be a user, because it points that callback to a stub > > always returning -ENODEV. > > > > For this reason, drop the SATA's dummy .find_bridge() callback and > > remove .find_bridge(), which is not used any more, from struct > > acpi_bus_type entirely. > > > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > --- > > drivers/acpi/glue.c | 26 +------------------------- > > drivers/ata/libata-acpi.c | 6 ------ > > include/acpi/acpi_bus.h | 3 --- > > 3 files changed, 1 insertion(+), 34 deletions(-) > > patches 1-2 Acked-by: Jeff Garzik <jgarzik@pobox.com> Thanks!
Index: linux-pm/drivers/ata/libata-acpi.c =================================================================== --- linux-pm.orig/drivers/ata/libata-acpi.c +++ linux-pm/drivers/ata/libata-acpi.c @@ -1144,14 +1144,8 @@ static int ata_acpi_find_device(struct d return -ENODEV; } -static int ata_acpi_find_dummy(struct device *dev, acpi_handle *handle) -{ - return -ENODEV; -} - static struct acpi_bus_type ata_acpi_bus = { .name = "ATA", - .find_bridge = ata_acpi_find_dummy, .find_device = ata_acpi_find_device, }; Index: linux-pm/include/acpi/acpi_bus.h =================================================================== --- linux-pm.orig/include/acpi/acpi_bus.h +++ linux-pm/include/acpi/acpi_bus.h @@ -439,10 +439,7 @@ struct acpi_bus_type { struct list_head list; const char *name; bool (*match)(struct device *dev); - /* For general devices under the bus */ int (*find_device) (struct device *, acpi_handle *); - /* For bridges, such as PCI root bridge, IDE controller */ - int (*find_bridge) (struct device *, acpi_handle *); void (*setup)(struct device *); void (*cleanup)(struct device *); }; Index: linux-pm/drivers/acpi/glue.c =================================================================== --- linux-pm.orig/drivers/acpi/glue.c +++ linux-pm/drivers/acpi/glue.c @@ -78,22 +78,6 @@ static struct acpi_bus_type *acpi_get_bu return ret; } -static int acpi_find_bridge_device(struct device *dev, acpi_handle * handle) -{ - struct acpi_bus_type *tmp; - int ret = -ENODEV; - - down_read(&bus_type_sem); - list_for_each_entry(tmp, &bus_type_list, list) { - if (tmp->find_bridge && !tmp->find_bridge(dev, handle)) { - ret = 0; - break; - } - } - up_read(&bus_type_sem); - return ret; -} - static acpi_status do_acpi_find_child(acpi_handle handle, u32 lvl_not_used, void *addr_p, void **ret_p) { @@ -262,15 +246,7 @@ static int acpi_platform_notify(struct d int ret; ret = acpi_bind_one(dev, NULL); - if (ret) { - if (!type) { - ret = acpi_find_bridge_device(dev, &handle); - if (!ret) - ret = acpi_bind_one(dev, handle); - - goto out; - } - + if (ret && type) { ret = type->find_device(dev, &handle); if (ret) { DBG("Unable to get handle for %s\n", dev_name(dev));