Re: [PATCH] platform/x86: intel_cht_int33fe: Work around BIOS bug on some devices

From: Mika Westerberg
Date: Fri Sep 01 2017 - 05:19:17 EST


On Thu, Aug 31, 2017 at 07:04:46PM +0300, Andy Shevchenko wrote:
> On Mon, Aug 14, 2017 at 11:52 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> > On 14-08-17 22:45, Andy Shevchenko wrote:
> >> On Mon, Aug 14, 2017 at 11:14 PM, Hans de Goede <hdegoede@xxxxxxxxxx>
> >> wrote:
>
> >>> +int cht_int33fe_check_for_max17047(struct device *dev, void *data)
> >>> +{
> >>> + const char *name = dev_name(dev);
> >>> + struct i2c_client **max17047 = data;
> >>> +
> >>> + if (name && strcmp(name, "i2c-MAX17047:00") == 0) {
> >>
> >>
> >> Can we stop using bad practice of comparing against _instance_?
> >> If device is suppose to be single in the system, wouldn't _HID be enough?
>
> > Yes _HID would be enough, but that takes some extra code with little
> > gain IMHO, we are effectively checking the HID here as that is where
> > the device-name comes from.
> >
> > Anyways if you strongly prefer a HID check I can do a v2 doing that
> > either way let me know.
>
> Currently we have the following modules where ACPI instance is used in:
>
> drivers/acpi/acpi_lpss.c
> drivers/input/touchscreen/goodix.c
> drivers/platform/x86/silead_dmi.c
> drivers/power/supply/axp288_charger.c
>
> and plenty under sound/soc/intel.
>
> I do not care right now about sound/soc/intel stuff, while everywhere
> else would be better to avoid this.
>
> Mika, Rafael, what're yours opinions regarding to use ACPI instances
> in the drivers?

Since the instance name is generated by the ACPI core and in theory
could change, I agree this is pretty fragile. Using _HID/_UID should be
the preferred way. However, it is not always possible so we end up doing
hacks like this.