Message ID | 20121123093416.GR3867@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 23/11/12 11:34, Mika Westerberg wrote: > On Thu, Nov 22, 2012 at 10:24:33PM +0100, Rafael J. Wysocki wrote: >> On Thursday, November 22, 2012 04:46:10 PM Adrian Hunter wrote: >>> On 22/11/12 15:55, Chris Ball wrote: >>>> Hi, >>>> >>>> On Thu, Nov 22 2012, Adrian Hunter wrote: >>>>> Here is SDHCI ACPI driver. It is dependent on new ACPI Platform support >>>>> so I suggest Rafael takes the patches with Chris' Ack. >>>>> >>>>> Please note that I would prefer this to be queued for 3.8 >>>> >>>> Looks fine: >>>> >>>> Acked-by: Chris Ball <cjb@laptop.org> >>> >>> Thank you! >>> >>>> >>>> I have some dumb questions, though -- what kind of platforms ship with >>>> these devices? Do they ever have the controller on PCI too, and what >>>> happens with sdhci-pci vs. sdhci-acpi in that case? >>> >>> Since the arrival of ACPI5, platform devices can be configured using ACPI >>> tables. PCI can also be used, but the firmware ensures that the same >>> device is not enumerated via both ACPI and PCI. >>> >>> Rafael can you take these patches? >> >> Well, I'd prefer pnpacpi/core.c to actually use acpi_platform_device_ids[] >> directly in addition to excluded_id_list[], so that duplicate entries don't >> have to be added to the both of them. > > How about having pnpacpi to check if the ACPI device is already bound to a > physical device and skip the device creation? Then we don't need to expose > the acpi_platform_device_ids[] list, and this is what the ->find_device() > code already does so why create the device in the first place? Yes, I was going to suggest that too. AFAICS pnpacpi has no concept of multiple physical nodes. Any objections? > > diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c > index 5b17cc8..4dc2e64 100644 > --- a/drivers/pnp/pnpacpi/core.c > +++ b/drivers/pnp/pnpacpi/core.c > @@ -243,6 +243,10 @@ static int __init pnpacpi_add_device(struct acpi_device *device) > char *pnpid; > struct acpi_hardware_id *id; > > + /* Skip devices that are already bound */ > + if (device->physical_node_count) > + return 0; > + > /* > * If a PnPacpi device is not present , the device > * driver should not be loaded. > > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday, November 23, 2012 12:13:13 PM Adrian Hunter wrote: > On 23/11/12 11:34, Mika Westerberg wrote: > > On Thu, Nov 22, 2012 at 10:24:33PM +0100, Rafael J. Wysocki wrote: > >> On Thursday, November 22, 2012 04:46:10 PM Adrian Hunter wrote: > >>> On 22/11/12 15:55, Chris Ball wrote: > >>>> Hi, > >>>> > >>>> On Thu, Nov 22 2012, Adrian Hunter wrote: > >>>>> Here is SDHCI ACPI driver. It is dependent on new ACPI Platform support > >>>>> so I suggest Rafael takes the patches with Chris' Ack. > >>>>> > >>>>> Please note that I would prefer this to be queued for 3.8 > >>>> > >>>> Looks fine: > >>>> > >>>> Acked-by: Chris Ball <cjb@laptop.org> > >>> > >>> Thank you! > >>> > >>>> > >>>> I have some dumb questions, though -- what kind of platforms ship with > >>>> these devices? Do they ever have the controller on PCI too, and what > >>>> happens with sdhci-pci vs. sdhci-acpi in that case? > >>> > >>> Since the arrival of ACPI5, platform devices can be configured using ACPI > >>> tables. PCI can also be used, but the firmware ensures that the same > >>> device is not enumerated via both ACPI and PCI. > >>> > >>> Rafael can you take these patches? > >> > >> Well, I'd prefer pnpacpi/core.c to actually use acpi_platform_device_ids[] > >> directly in addition to excluded_id_list[], so that duplicate entries don't > >> have to be added to the both of them. > > > > How about having pnpacpi to check if the ACPI device is already bound to a > > physical device and skip the device creation? Then we don't need to expose > > the acpi_platform_device_ids[] list, and this is what the ->find_device() > > code already does so why create the device in the first place? > > Yes, I was going to suggest that too. AFAICS pnpacpi has no concept of > multiple physical nodes. Any objections? Not from me. Thanks, Rafael > > diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c > > index 5b17cc8..4dc2e64 100644 > > --- a/drivers/pnp/pnpacpi/core.c > > +++ b/drivers/pnp/pnpacpi/core.c > > @@ -243,6 +243,10 @@ static int __init pnpacpi_add_device(struct acpi_device *device) > > char *pnpid; > > struct acpi_hardware_id *id; > > > > + /* Skip devices that are already bound */ > > + if (device->physical_node_count) > > + return 0; > > + > > /* > > * If a PnPacpi device is not present , the device > > * driver should not be loaded. > > > > > >
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c index 5b17cc8..4dc2e64 100644 --- a/drivers/pnp/pnpacpi/core.c +++ b/drivers/pnp/pnpacpi/core.c @@ -243,6 +243,10 @@ static int __init pnpacpi_add_device(struct acpi_device *device) char *pnpid; struct acpi_hardware_id *id; + /* Skip devices that are already bound */ + if (device->physical_node_count) + return 0; + /* * If a PnPacpi device is not present , the device * driver should not be loaded.