lkml.org 
[lkml]   [2018]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v3] ACPI: Force I2C to be selected as a built-in module
From
Date
Hi,

On 25-01-18 18:07, Sinan Kaya wrote:
> On 1/25/2018 11:57 AM, Rafael J. Wysocki wrote:
>>> That was the original patch. Folks are saying that it breaks some systems.
>>>
>>> Conversation is here:
>>>
>>> https://patchwork.kernel.org/patch/10142425/
>> Couldn't that be addressed by preventing the I2C module from being
>> unloaded in the relevant cases?
>>
>
> Maybe, I'll let Andy And Hans speak for themselves. It is not my code.
>
> I listed the spec behavior and expectation from the OS in the link above.
> Apparently, Linux isn't playing nice.
>
> Hans is also raising a concern about driver load order that is not being
> handled well between the I2C driver, its sub modules like PMIC and the ACPI support.
>
> "Lets pretend that all DSTDs are perfect and that some device described in ACPI
> has a _PS0 method which uses an opregion to turn on some regulator powering
> the device through i2c, but only if the _REG method for that opregion has
> been called. So now lets say that the driver for this device loads and
> tries to bind before the i2c-module has loaded. Before the driver's probe
> method gets called the driver-core will call _PS0 to power-up the device,
> which is a nop (*). Then the drivers probe function tries to talk to the
> device, but fails as the device is not powered, so it returns with -ENODEV."
>
> I'd think that driver would return -EPROBE_DEFER in order to wait until its
> dependencies come in place. Maybe, driver was not designed for this.

The driver is not aware of any power-management done by ACPI, so the driver
cannot return -EPROBE_DEFER.

Regards,

Hans

\
 
 \ /
  Last update: 2018-01-25 18:12    [W:0.056 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site