Red Hat Bugzilla – Bug 1026116
acpi_i2c should be build into the kernel instead of as a module
Last modified: 2013-12-20 21:23:54 EST
Description of problem:
When booting Fedora 20 Alpha and earlier on a Dell XPS 12 (2013) the touchscreen is not working at all and touchpad does not support tapping. When booting Ubuntu 13.10 on the same laptop both work fine.
Comparing the loaded modules it turns out the module acpi_i2c cannot be loaded on Fedora. It errors with the following error message:
acpi_i2c: module license 'unspecified' taints kernel.
acpi_i2c: Unknown symbol i2c_new_device (err 0)
acpi_i2c: Unknown symbol acpi_dev_get_resources (err 0)
acpi_i2c: Unknown symbol acpi_dev_resource_interrupt (err 0)
acpi_i2c: Unknown symbol acpi_dev_free_resource_list (err 0)
A research in the kernel archives brings up the following articleh ttp://linux-kernel.2935.n7.nabble.com/PATCH-acpi-i2c-set-MODULE-LICENSE-MODULE-AUTHOR-and-MODULE-DESCRIPTION-td704525.html
The recommend to include acpi_i2c into the kernel.
Version-Release number of selected component (if applicable):
Try to load the acpi_i2c module
Steps to Reproduce:
1. modprobe acpi_i2c
modprobe shows the following error message:
modprobe: ERROR: could not insert 'acpi_i2c': Unknown symbol in module, or unknown parameter (see dmesg)
dmesg shows the error message above
module should be loaded
I found this bug on a very specific case of non-supported hardware on a new laptop but it seems i2c is used in many ways on newer laptops which will increase the severity of this issue.
OK. In the 3.12 kernel this option doesn't exist anymore and it is instead built into the i2c-core module itself. We'll build this in for now, but in the future the functionality will come from i2c-core.
As well as setting CONFIG_ACPI_I2C=y, I also had to set CONFIG_I2C=y since that is a dependency.
And having done *that*, I also had to add:
# CONFIG_MFD_AS3711 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SMSC is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS80031 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
I'd commit this and let the fix end up naturally in the next build (after double-checking that CONFIG_I2C=y isn't going to make anyone scream), but... I can't any more.
Yeah, I got pulled into other things last week. I'll get it fixed on monday.
(In reply to David Woodhouse from comment #2)
> As well as setting CONFIG_ACPI_I2C=y, I also had to set CONFIG_I2C=y since
> that is a dependency.
Actually, we're wanting to set ACPI_I2C=y because it's broken as a module. However, with 3.12 it was moved into the i2c module itself and we shouldn't have that problem.
Is there some other reason we'd want to build CONFIG_I2C=y here, or would the code move done in 3.12 solve the problem?
I believe the code move would also suffice.
Since reporting this bug I run my Dell XPS 12 with a self-build kernel which has CONFIG_ACPI_I2C=y and CONFIG_I2C=y as the only difference to the distributed one. So far I did not have any issue but also did not verify on other systems.
I also assume that the change in 3.12 will fix this issue. As far as I know 3.12 will arrivve in Fedora 20 after the release. But is somebody already working on an RPM, so I can validate this theory?
Anyway thanks for the time you're spending.
(In reply to Sascha Bendix from comment #6)
> Since reporting this bug I run my Dell XPS 12 with a self-build kernel which
> has CONFIG_ACPI_I2C=y and CONFIG_I2C=y as the only difference to the
> distributed one. So far I did not have any issue but also did not verify on
> other systems.
> I also assume that the change in 3.12 will fix this issue. As far as I know
> 3.12 will arrivve in Fedora 20 after the release. But is somebody already
> working on an RPM, so I can validate this theory?
You can use the 3.12 builds from the rawhide-nodebug repo:
That will be the basis for the F20 (and earlier releases) 3.12 rebase.
I just installed the kernel (3.12.0-1.fc21.x86_64) and touchpad and screen, which depend on i2c_designware_platform which depended on apci_i2c to work, before just work fine.
From my side this ticket can be closed without further action.
F20 has been rebased to 3.12 now.
kernel-3.12.5-301.fc20 has been submitted as an update for Fedora 20.
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing kernel-3.12.5-302.fc20'
as soon as you are able to, then reboot.
Please go to the following url:
then log in and leave karma (feedback).
kernel-3.12.5-302.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.