On Fri, Nov 17, 2017 at 02:42:44PM +0100, Rafael J. Wysocki wrote: > [+Mika & Andy] > > On Monday, October 16, 2017 1:44:40 PM CET Hans de Goede wrote: > > Hi, > > > > On 16-10-17 01:47, Rafael J. Wysocki wrote: > > > On Sun, Oct 15, 2017 at 9:24 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > >> Most Bay and Cherry Trail devices use a generic DSDT with all possible > > >> peripheral devices present in the DSDT, with their _STA returning 0x00 or > > >> 0x0f based on AML variables which describe what is actually present on > > >> the board. > > >> > > >> Since ACPI device objects with a 0x00 status (not present) still get an > > >> entry under /sys/bus/acpi/devices, and those entry had an acpi:PNPID > > >> modalias, userspace would end up loading modules for non present hardware. > > >> > > >> This commit fixes this by leaving the modalias empty for non present > > >> devices. This results in 10 modules less being loaded with a generic > > >> distro kernel config on my Cherry Trail test-device (a GPD pocket). > > > > > > Well, what about hotplug? > > > > > > On some systems _STA may change from 0 to nonzero for some devices, so > > > what's going to happen to the modalias then? > > > > A good question. I would expect a change uevent to be generated in > > this case and when the device has become present in this new uvent the > > modalias will no longer be empty and the module will get loaded, so > > the module will not get loaded until the actual hotplug. > > > > The actual generation of this uevent should be done by the various > > subsystems based on ACPI_RECONFIG_DEVICE_ADD messages, at which point > > adev->status is already updated and then when the subsys calls > > acpi_device_uevent_modalias() for the new uevent it will return a > > non-empty modalias. > > Mika, I need your input here. > > I have to say I'm not quite sure about possible implications of this change, > what do you think? I think this could work because we are actually interested in physical Linux devices, not the struct acpi_device things. So to my understanding whenever _STA of an ACPI device goes from 0x0 to 0xf the corresponding physical device (platform, spi, i2c) gets created. Userspace is then notified by a uevent and it then reads attributes including updated modalias of that physical device. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html