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.