Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
On Tue, Sep 20, 2016 at 04:59:25PM +0300, Mika Westerberg wrote: > When enumerating I2C devices connected to an I2C adapter we scan the whole > namespace (as it is possible to have devices anywhere in that namespace, > not just below the I2C adapter device) and add each found device to the I2C > bus in question. > > Now after commit 525e6fabeae2 ("i2c / ACPI: add support for ACPI > reconfigure notifications") checking of the adapter handle to the one found > in the I2cSerialBus() resource was moved to happen after resources of the > I2C device has been parsed. This means that if the I2cSerialBus() resource > points to an adapter that does not exists in the system we still parse > those resources. This is problematic in particular because > acpi_dev_resource_interrupt() tries to configure GSI if the device also has > an Interrupt() resource. Failing to do that results errrors like this to be > printed on the console: > > [ 10.409490] ERROR: Unable to locate IOAPIC for GSI 37 > > To fix this we pass the I2C adapter to i2c_acpi_get_info() and make sure > the handle matches the one in the I2cSerialBus() resource before doing > anything else to the device. > > Reported-and-tested-by: Nicolai Stange > Signed-off-by: Mika Westerberg Applied to for-next, thanks! signature.asc Description: PGP signature
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
On Thu, Sep 22, 2016 at 10:59:24AM +0200, Wolfram Sang wrote: > > > > Huh? It doesn't apply on top of rc7 here? What did you base it on? > > > > It is based on linux-next as it is on top of Jarkko's I2C ACPI namespace > > cleanup patches. I'm wondering if I make an updated patch on top of > > v4.8-rc7 does it conflict with the I2C stuff in linux-next? What's your > > preference? > > I see. I'll add it to for-next, then. If someone wants it backported, it > needs to be rewritten and re-tested. OK, thanks.
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
> > Huh? It doesn't apply on top of rc7 here? What did you base it on? > > It is based on linux-next as it is on top of Jarkko's I2C ACPI namespace > cleanup patches. I'm wondering if I make an updated patch on top of > v4.8-rc7 does it conflict with the I2C stuff in linux-next? What's your > preference? I see. I'll add it to for-next, then. If someone wants it backported, it needs to be rewritten and re-tested. signature.asc Description: PGP signature
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
On Wed, Sep 21, 2016 at 06:14:38PM +0200, Wolfram Sang wrote: > On Wed, Sep 21, 2016 at 11:45:02AM +0300, Mika Westerberg wrote: > > On Wed, Sep 21, 2016 at 07:48:35AM +0200, Wolfram Sang wrote: > > > On Tue, Sep 20, 2016 at 04:59:25PM +0300, Mika Westerberg wrote: > > > > When enumerating I2C devices connected to an I2C adapter we scan the > > > > whole > > > > namespace (as it is possible to have devices anywhere in that namespace, > > > > not just below the I2C adapter device) and add each found device to the > > > > I2C > > > > bus in question. > > > > > > > > Now after commit 525e6fabeae2 ("i2c / ACPI: add support for ACPI > > > > reconfigure notifications") checking of the adapter handle to the one > > > > found > > > > in the I2cSerialBus() resource was moved to happen after resources of > > > > the > > > > I2C device has been parsed. This means that if the I2cSerialBus() > > > > resource > > > > points to an adapter that does not exists in the system we still parse > > > > those resources. This is problematic in particular because > > > > acpi_dev_resource_interrupt() tries to configure GSI if the device also > > > > has > > > > an Interrupt() resource. Failing to do that results errrors like this > > > > to be > > > > printed on the console: > > > > > > > > [ 10.409490] ERROR: Unable to locate IOAPIC for GSI 37 > > > > > > > > To fix this we pass the I2C adapter to i2c_acpi_get_info() and make sure > > > > the handle matches the one in the I2cSerialBus() resource before doing > > > > anything else to the device. > > > > > > > > Reported-and-tested-by: Nicolai Stange > > > > Signed-off-by: Mika Westerberg > > > > > > Considering this for for-current. So shall we add: > > > > > > Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure > > > notifications") > > > > > > ? > > > > Yes please :) > > Huh? It doesn't apply on top of rc7 here? What did you base it on? It is based on linux-next as it is on top of Jarkko's I2C ACPI namespace cleanup patches. I'm wondering if I make an updated patch on top of v4.8-rc7 does it conflict with the I2C stuff in linux-next? What's your preference?
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
On Wed, Sep 21, 2016 at 11:45:02AM +0300, Mika Westerberg wrote: > On Wed, Sep 21, 2016 at 07:48:35AM +0200, Wolfram Sang wrote: > > On Tue, Sep 20, 2016 at 04:59:25PM +0300, Mika Westerberg wrote: > > > When enumerating I2C devices connected to an I2C adapter we scan the whole > > > namespace (as it is possible to have devices anywhere in that namespace, > > > not just below the I2C adapter device) and add each found device to the > > > I2C > > > bus in question. > > > > > > Now after commit 525e6fabeae2 ("i2c / ACPI: add support for ACPI > > > reconfigure notifications") checking of the adapter handle to the one > > > found > > > in the I2cSerialBus() resource was moved to happen after resources of the > > > I2C device has been parsed. This means that if the I2cSerialBus() resource > > > points to an adapter that does not exists in the system we still parse > > > those resources. This is problematic in particular because > > > acpi_dev_resource_interrupt() tries to configure GSI if the device also > > > has > > > an Interrupt() resource. Failing to do that results errrors like this to > > > be > > > printed on the console: > > > > > > [ 10.409490] ERROR: Unable to locate IOAPIC for GSI 37 > > > > > > To fix this we pass the I2C adapter to i2c_acpi_get_info() and make sure > > > the handle matches the one in the I2cSerialBus() resource before doing > > > anything else to the device. > > > > > > Reported-and-tested-by: Nicolai Stange > > > Signed-off-by: Mika Westerberg > > > > Considering this for for-current. So shall we add: > > > > Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure > > notifications") > > > > ? > > Yes please :) Huh? It doesn't apply on top of rc7 here? What did you base it on? signature.asc Description: PGP signature
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
On Wed, Sep 21, 2016 at 07:48:35AM +0200, Wolfram Sang wrote: > On Tue, Sep 20, 2016 at 04:59:25PM +0300, Mika Westerberg wrote: > > When enumerating I2C devices connected to an I2C adapter we scan the whole > > namespace (as it is possible to have devices anywhere in that namespace, > > not just below the I2C adapter device) and add each found device to the I2C > > bus in question. > > > > Now after commit 525e6fabeae2 ("i2c / ACPI: add support for ACPI > > reconfigure notifications") checking of the adapter handle to the one found > > in the I2cSerialBus() resource was moved to happen after resources of the > > I2C device has been parsed. This means that if the I2cSerialBus() resource > > points to an adapter that does not exists in the system we still parse > > those resources. This is problematic in particular because > > acpi_dev_resource_interrupt() tries to configure GSI if the device also has > > an Interrupt() resource. Failing to do that results errrors like this to be > > printed on the console: > > > > [ 10.409490] ERROR: Unable to locate IOAPIC for GSI 37 > > > > To fix this we pass the I2C adapter to i2c_acpi_get_info() and make sure > > the handle matches the one in the I2cSerialBus() resource before doing > > anything else to the device. > > > > Reported-and-tested-by: Nicolai Stange > > Signed-off-by: Mika Westerberg > > Considering this for for-current. So shall we add: > > Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure > notifications") > > ? Yes please :)
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
On Tue, Sep 20, 2016 at 04:59:25PM +0300, Mika Westerberg wrote: > When enumerating I2C devices connected to an I2C adapter we scan the whole > namespace (as it is possible to have devices anywhere in that namespace, > not just below the I2C adapter device) and add each found device to the I2C > bus in question. > > Now after commit 525e6fabeae2 ("i2c / ACPI: add support for ACPI > reconfigure notifications") checking of the adapter handle to the one found > in the I2cSerialBus() resource was moved to happen after resources of the > I2C device has been parsed. This means that if the I2cSerialBus() resource > points to an adapter that does not exists in the system we still parse > those resources. This is problematic in particular because > acpi_dev_resource_interrupt() tries to configure GSI if the device also has > an Interrupt() resource. Failing to do that results errrors like this to be > printed on the console: > > [ 10.409490] ERROR: Unable to locate IOAPIC for GSI 37 > > To fix this we pass the I2C adapter to i2c_acpi_get_info() and make sure > the handle matches the one in the I2cSerialBus() resource before doing > anything else to the device. > > Reported-and-tested-by: Nicolai Stange > Signed-off-by: Mika Westerberg Considering this for for-current. So shall we add: Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure notifications") ? signature.asc Description: PGP signature
Re: [PATCH v2] i2c / ACPI: Do not touch an I2C device if it belongs to another adapter
Mika Westerberg writes: > When enumerating I2C devices connected to an I2C adapter we scan the whole > namespace (as it is possible to have devices anywhere in that namespace, > not just below the I2C adapter device) and add each found device to the I2C > bus in question. > > Now after commit 525e6fabeae2 ("i2c / ACPI: add support for ACPI > reconfigure notifications") checking of the adapter handle to the one found > in the I2cSerialBus() resource was moved to happen after resources of the > I2C device has been parsed. This means that if the I2cSerialBus() resource > points to an adapter that does not exists in the system we still parse > those resources. This is problematic in particular because > acpi_dev_resource_interrupt() tries to configure GSI if the device also has > an Interrupt() resource. Failing to do that results errrors like this to be > printed on the console: > > [ 10.409490] ERROR: Unable to locate IOAPIC for GSI 37 > > To fix this we pass the I2C adapter to i2c_acpi_get_info() and make sure > the handle matches the one in the I2cSerialBus() resource before doing > anything else to the device. > > Reported-and-tested-by: Nicolai Stange I've just retested this v2 explicitly and it works like a charm. Also, Reviewed-by: Nicolai Stange if you want. Thanks, Nicolai