Bug 47751
Summary: | rfkill: LTE modem Sierra MC7710 remains in low-power mode due to W_DISABLE on Sony Vaio SVZ1311Z9R/X | ||
---|---|---|---|
Product: | Drivers | Reporter: | Illya Klymov (xanf) |
Component: | Platform_x86 | Assignee: | drivers_platform_x86 (drivers_platform_x86) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | alan, florian, leho, lenb, malattia |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.6.1 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
insmod sony-laptop debug=1 dmesg output
grep . /sys/class/rfkill/rfkill*/name output DSDT change argument for rfkill control |
Do you have a sony-* entry for your modem in /sys/class/rfkill? i.e.: grep . /sys/class/rfkill/rfkill*/name In either case could you attach the DSDT of your laptop and the kernel log after loading sony-laptop with debug=1? Thanks Created attachment 80951 [details]
insmod sony-laptop debug=1 dmesg output
Created attachment 80961 [details]
grep . /sys/class/rfkill/rfkill*/name output
Created attachment 80971 [details]
DSDT
Here comes all data you've requested. I've dumped DSDT via cat /proc/acpi/dsdt (path may be wrong, writing by memory from other computer) Additionally rfkill block wwan removes device from the system and it will not be back if I pass "rfkill unblock wwan". I need to reboot to windows in order for modem to appear thanks for the additional info. So we are likely missing some extra call to the SN07 method when enabling the modem. can you see if you manage to find out which EC registers change when enabling/disabling the modem from windows? You can probably use this tool http://rweverything.myweb.hinet.net/download.html (I haven't used it myself, use it at your own risk) > can you see if you manage to find out which EC registers change when
> enabling/disabling the modem from windows?
Thanks for a hint. Yes, I've found it, and tested approach in linux. The following hack (I've created a separated kernel module) does the trick (modem appears after rfkill block wwan and is not in LPM):
u8 value = 0x07;
int retval = ec_write(0x50, value);
With this hack my modem is working under linux, so it seems to be a correct EC register
Windows also initializes the modem by writing 0x07 to 0x50 in EC, and removes it by writing 0x00 to 0x50.
Created attachment 83001 [details]
change argument for rfkill control
Good catch.
can you see if the attached patch works for you?
(In reply to comment #9) > Good catch. > can you see if the attached patch works for you? Works. Tested with 3.6.1 kernel Thanks Illya, I submitted the patch to Matthew for inclusion in the platform-x86 tree. moving to drivers/platform_x86 A patch referencing this bug report has been merged in Linux v3.9-rc1: commit 3ec1c3983d73b1e3d4cfd72afab94c34eceafe8a Author: Mattia Dongili <malattia@linux.it> Date: Fri Dec 21 07:21:08 2012 +0900 sony-laptop: fully enable SNY controlled modems |
I have a new SVZ1311Z9R/X notebook, which uses an MC7710 3G/LTE modem. rfkill list shows that all devices are neither soft nor hard blocked. Modem is available via /dev/ttyUSB{0-2} devices, and responds to AT commands, but is unable to connect network. Digging with modem AT commands I revealed following: > AT!PCINFO? State: 0 (LPM) LPM force flags - W_DISABLE:1, User:0, Temp:0, Volt:0 W_DISABLE: 1 Poweroff mode: 0 LPM Persistent: 0 OK According to documention W_DISABLE is the PCIe input pin used by the rfkill switch, so rfkill output seems to be wrong in this case.