Bug 1026116

Summary: acpi_i2c should be build into the kernel instead of as a module
Product: [Fedora] Fedora Reporter: Sascha Bendix <scrubb>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 20CC: dwmw2, gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-3.12.5-302.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-21 02:23:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sascha Bendix 2013-11-03 22:34:41 UTC
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):
3.11.6-301.fc20.x86_64

How reproducible:
Try to load the acpi_i2c module

Steps to Reproduce:
1. modprobe acpi_i2c 

Actual results:
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

Expected results:
module should be loaded

Additional info:
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.

Comment 1 Josh Boyer 2013-11-04 13:21:37 UTC
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.

Comment 2 David Woodhouse 2013-11-15 15:34:24 UTC
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.

Comment 3 Josh Boyer 2013-11-16 13:57:56 UTC
Yeah, I got pulled into other things last week.  I'll get it fixed on monday.

Comment 4 Josh Boyer 2013-11-16 14:11:00 UTC
(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?

Comment 5 David Woodhouse 2013-11-17 00:01:13 UTC
I believe the code move would also suffice.

Comment 6 Sascha Bendix 2013-11-17 18:40:57 UTC
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.

Comment 7 Josh Boyer 2013-11-18 12:34:53 UTC
(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:

https://fedoraproject.org/wiki/RawhideKernelNodebug

That will be the basis for the F20 (and earlier releases) 3.12 rebase.

Comment 8 Sascha Bendix 2013-11-18 19:44:02 UTC
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.

Comment 9 Josh Boyer 2013-12-16 15:31:34 UTC
F20 has been rebased to 3.12 now.

Comment 10 Fedora Update System 2013-12-16 15:34:49 UTC
kernel-3.12.5-301.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/FEDORA-2013-23445/kernel-3.12.5-301.fc20

Comment 11 Fedora Update System 2013-12-20 01:48:12 UTC
Package kernel-3.12.5-302.fc20:
* 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:
https://admin.fedoraproject.org/updates/FEDORA-2013-23445/kernel-3.12.5-302.fc20
then log in and leave karma (feedback).

Comment 12 Fedora Update System 2013-12-21 02:23:54 UTC
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.