> -----Original Message----- > From: Lukas Wunner [mailto:lukas@xxxxxxxxx] > Sent: Friday, September 15, 2017 2:45 AM > To: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > Cc: Limonciello, Mario <Mario_Limonciello@xxxxxxxx>; dvhart@xxxxxxxxxxxxx; > linux-kernel@xxxxxxxxxxxxxxx; platform-driver-x86@xxxxxxxxxxxxxxx; > hughsient@xxxxxxxxx; yehezkelshb@xxxxxxxxx > Subject: Re: [PATCH v3] Add driver to force WMI Thunderbolt controller power > status > > On Thu, Sep 14, 2017 at 05:59:19PM +0300, Mika Westerberg wrote: > > On Thu, Sep 14, 2017 at 02:52:27PM +0000, Mario.Limonciello@xxxxxxxx wrote: > > > > Looking at drivers/platform/x86/wmi.c:wmi_dev_uevent() it seems that > > > > a modalias consisting of "wmi:" followed by the GUID is sent to udevd. > > > > For udevd to then load the module, I suspect you need to add a > > > > MODULE_DEVICE_TABLE(wmi, ...) to your driver. > > > > > > Ah, you're looking for this code from the WMI bus driver: > > > > https://github.com/torvalds/linux/blob/master/drivers/platform/x86/wmi.c#L724 > > > > > > That happens when the bus is initialized. > > > > That's right you get the uevent and whatnot but Lucas means that if you > > don't have MODULE_DEVICE_TABLE(wmi, ...) in the driver, udev cannot load > > the module automatically when the device appears. > > Digging a bit deeper I notice the wmi drivers seem to solve this by > directly declaring a MODULE_ALIAS(), which is also present in Mario's > driver. Mario, have you tested if auto-loading works if compiled as > a module? If so, sorry for the noise. > Yes, I had tested that and that's why I was really baffled at needing to add MODULE_DEVICE_TABLE. I was going to dig further into this today, but I'm glad you figured it out.