Patchwork [2/2] ACPI / glue: Drop .find_bridge() callback from struct acpi_bus_type

login
register
mail settings
Submitter Rafael J. Wysocki
Date Feb. 28, 2013, 9:53 p.m.
Message ID <1995794.TENtrAZA5Q@vostro.rjw.lan>
Download mbox | patch
Permalink /patch/224187/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Rafael J. Wysocki - Feb. 28, 2013, 9:53 p.m.
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(-)

--
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
Jeff Garzik - Feb. 28, 2013, 10:13 p.m.
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
Rafael J. Wysocki - Feb. 28, 2013, 11:37 p.m.
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!

Patch

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));