Bug 1192270 - ideapad-laptop probably needs to be blacklisted on Lenovo g50-30
Summary: ideapad-laptop probably needs to be blacklisted on Lenovo g50-30
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 21
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-02-13 02:32 UTC by Alexander Ploumistos
Modified: 2015-08-05 22:28 UTC (History)
11 users (show)

Fixed In Version: kernel-4.1.3-100.fc21
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-07-30 13:55:24 UTC
Type: Bug


Attachments (Terms of Use)

Description Alexander Ploumistos 2015-02-13 02:32:53 UTC
Description of problem:
The ideapad-laptop module disables wireless and bluetooth as if there were a hardware switch. Unloading the module restores functionality.


Version-Release number of selected component (if applicable):
It happens with the module shipped in kernels 3.17 to 3.18.5-201.


How reproducible:
Always.


Steps to Reproduce:
1. Boot a clean install of F21, with ideapad-laptop loaded (default).
2. There is no wireless or bluetooth, as both NetworkManager and rfkill report a hard block.
3. Unload the module. Now they both work.


Actual results:
WLAN and BT are switched off.


Expected results:
WLAN and BT should be on by default.


Additional info:
After searching for a solution, I came across posts like this:
http://billauer.co.il/blog/2014/08/linux-ubuntu-yoga-hardware-blocked-wireless-lan/
that suggested patching ideapad-laptop, because just blacklisting or unloading it would result in loss of functionality. I looked a bit at the source and ran some tests and all of my Fn keys seem to work fine and I have not noticed any other problems. I could not figure if the module brings something up when it is loaded that stays there after unloading, as they claim for the Yoga models, so instead of blacklisting it, I opted to add a 'modprobe -r' in /etc/rc.d/rc.local after a few seconds.

Please let me know what additional info/logs you might need.

Comment 1 Fedora Kernel Team 2015-04-28 18:34:18 UTC
*********** MASS BUG UPDATE **************

We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 21 kernel bugs.

Fedora 21 has now been rebased to 3.19.5-200.fc21.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.

If you have moved on to Fedora 22, and are still experiencing this issue, please change the version to Fedora 22.

If you experience different issues, please open a new bug report for those.

Comment 2 Alexander Ploumistos 2015-04-28 20:03:07 UTC
The problem remains in 3.19.5-200.fc21.

Comment 3 Valent Turkovic 2015-07-03 11:37:11 UTC
This seams like same issue I have noticed on Lenovo Yoga 3 laptop:
https://bugzilla.redhat.com/show_bug.cgi?id=1239050

Comment 4 Valent Turkovic 2015-07-03 11:39:18 UTC
I forgot to mention I'm using Fedora 22. Who is maintainer of ideapad-laptop kernel driver? Where to report bug upstream?

Comment 5 Peter F. Patel-Schneider 2015-07-03 13:07:26 UTC
The ideapad-laptop module does not get as much attention as the thinkpad-laptop module.

https://bugzilla.redhat.com/show_bug.cgi?id=1021036 has a long conversation about the module.  The collection of players there managed to get a patch into the module.

What probably needs to be done is to expand the following data in ideapad-laptop.c

827  * Some ideapads don't have a hardware rfkill switch, reading VPCCMD_R_RF
828  * always results in 0 on these models, causing ideapad_laptop to wrongly
829  * report all radios as hardware-blocked.
830  */
831 static const struct dmi_system_id no_hw_rfkill_list[] = {
832         {
833                 .ident = "Lenovo G40-30",
834                 .matches = {
835                         DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
836                         DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo G40-30"),
837                 },
838         },
839         {
840                 .ident = "Lenovo Yoga 2 11 / 13 / Pro",
841                 .matches = {
842                         DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
843                         DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Yoga 2"),
844                 },
845         },
846         {
847                 .ident = "Lenovo Yoga 3 Pro 1370",
848                 .matches = {
849                         DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
850                         DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo YOGA 3 Pro-1370"),
851                 },
852         },
853         {}
854 };

To see whether your laptop is picked up look for these DMI_PRODUCT_VERSION strings in the output of
  sudo dmidecode
in the System Information block Version entry.

I expect that you will see "Lenovo G50-30" instead, which means that a change needs to be made.

Comment 6 Alexander Ploumistos 2015-07-03 13:28:24 UTC
(In reply to Peter F. Patel-Schneider from comment #5)
> What probably needs to be done is to expand the following data in
> ideapad-laptop.c

ideapad-laptop.c has these copyright notices:

 *  Copyright © 2010 Intel Corporation
 *  Copyright © 2010 David Woodhouse <dwmw2@infradead.org>

Has the previously mentioned patch been ported to the kernel or is it just in the fedora kernel packages? Should we contact David Woodhouse or Intel?


> I expect that you will see "Lenovo G50-30" instead, which means that a
> change needs to be made.

Yes, indeed:

System Information
	Manufacturer: LENOVO
	Product Name: 80G0
	Version: Lenovo G50-30

Comment 7 Peter F. Patel-Schneider 2015-07-03 14:33:30 UTC
Actually, the current (or upcoming) version of the module has G50-30 in it already.  (I was looking at a place that does not have all the up-to-date versions.)  All you need to do is . . . . . . . . . wait.  Maybe you could get Fedora to pick up this version if the change has not yet made it into the released kernel.


See https://github.com/torvalds/linux/blob/5f1201d515819e7cfaaac3f0a30ff7b556261386/drivers/platform/x86/ideapad-laptop.c

The (first!) commit for the G50-30 was made on 1 June 2015.  See https://github.com/torvalds/linux/commit/4fa9dabcffc8e16601307d3d56b58c68d9716ba4#diff-eab82aebc1bb5f1f275c559c9aec9de1

There does appear to be several people who are updating this module.  See the commits to this module for more information.

Comment 8 Valent Turkovic 2015-07-03 20:06:09 UTC
I typed in sudo dmidecode on Lenovo Yoga 3 and this is output:

System Information:
    Manufacturer: LENOVO
    Product Name: 80JH
    Version: Lenovo Yoga 3 14

Comment 9 Alexander Ploumistos 2015-07-03 22:59:33 UTC
(In reply to Peter F. Patel-Schneider from comment #7)
> Actually, the current (or upcoming) version of the module has G50-30 in it
> already.  (I was looking at a place that does not have all the up-to-date
> versions.)  All you need to do is . . . . . . . . . wait.  Maybe you could
> get Fedora to pick up this version if the change has not yet made it into
> the released kernel.

Thank you very much for the information, I forwarded it to fedora kernel maintainers. The latest available kernels don't have it yet.

Comment 10 Peter F. Patel-Schneider 2015-07-04 00:47:15 UTC
Valent:  You may be able to get the Fedora kernel maintainers to make the necessary change and have it uploaded to the mainline linux kernel.  You will probably have to try out the change first, which should amount to changing 
	DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo YOGA 3 Pro-1370"),
to 
	DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo YOGA 3"),

(Except that you appear to have Yoga instead of YOGA.  I'm not sure whether  the DMI_MATCH call is case sensitive.)

Comment 11 Hans de Goede 2015-07-22 13:14:38 UTC
Lets use this bug for tracking the problems with the Lenovo g50-30 which should be fixed by this upstream commit:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/platform/x86/ideapad-laptop.c?id=4fa9dabcffc8e16601307d3d56b58c68d9716ba4

And use bug 1239050 to track the problems with the  Lenovo Yoga 3

Josh, can you cherry pick these 2 commits into the Fedora-kernels to fix this (these are in 4.2):

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/platform/x86/ideapad-laptop.c?id=9b071a43553d6b2df4364951639f61076a8dd676

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/platform/x86/ideapad-laptop.c?id=4fa9dabcffc8e16601307d3d56b58c68d9716ba4

Regards,

Hans

Comment 12 Laura Abbott 2015-07-23 16:53:39 UTC
4.1.3 update has been filed for F22 which should have the fix. Please test and give karma. https://admin.fedoraproject.org/updates/kernel-4.1.3-200.fc22

Comment 13 Fedora Update System 2015-07-23 21:12:57 UTC
kernel-4.0.9-200.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/kernel-4.0.9-200.fc21

Comment 14 Alexander Ploumistos 2015-07-23 23:12:54 UTC
(In reply to Laura Abbott from comment #12)
> 4.1.3 update has been filed for F22 which should have the fix. Please test
> and give karma. https://admin.fedoraproject.org/updates/kernel-4.1.3-200.fc22

Tested and left karma.

rfkill now lists four devices instead of two, is this how it's supposed to work?

$ rfkill list
0: ideapad_wlan: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
3: ideapad_bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no

This update also restored my bluetooth adapter that had stopped working sometime after 3.18.5-201.

Anyway, thanks for solving two bugs with one update!

Comment 15 Hans de Goede 2015-07-24 09:49:34 UTC
Hi,

(In reply to Alexander Ploumistos from comment #14)
> (In reply to Laura Abbott from comment #12)
> > 4.1.3 update has been filed for F22 which should have the fix. Please test
> > and give karma. https://admin.fedoraproject.org/updates/kernel-4.1.3-200.fc22
> 
> Tested and left karma.
> 
> rfkill now lists four devices instead of two, is this how it's supposed to
> work?

Yes that is normal the new ideapad_laptop rfkill switches will allow you to properly turn of your wifi / bluetooth radios via software settings (e.g. the gnome system menu).

Regards,

Hans

Comment 16 Alexander Ploumistos 2015-07-24 13:05:05 UTC
(In reply to Hans de Goede from comment #15)

Thanks, nice to know.

Comment 17 Fedora Update System 2015-07-29 01:56:53 UTC
Package kernel-4.1.3-200.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing kernel-4.1.3-200.fc22'
as soon as you are able to, then reboot.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-12042/kernel-4.1.3-200.fc22
then log in and leave karma (feedback).

Comment 18 Fedora Update System 2015-07-30 00:17:33 UTC
kernel-4.1.3-100.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/kernel-4.1.3-100.fc21

Comment 19 Fedora Update System 2015-07-30 13:55:24 UTC
kernel-4.1.3-200.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2015-08-05 22:28:46 UTC
kernel-4.1.3-100.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.