Re: Lenovo Yoga 13 with SMSC EMC2104 chip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/10/29 Igor Popik <igor.popik@xxxxxxxxx>:
> Hi Jean,
>
> 2013/10/29 Jean Delvare <khali@xxxxxxxxxxxx>:
>> Hi Igor,
>>
>> On Tue, 29 Oct 2013 19:14:14 +0100, Igor Popik wrote:
>>> I added new adresses to emc2103 driver with no effect. I checked if
>>> the module works  with trying to load i2c-stub module  with 0x2e &
>>> other addresses - it triggers the device detection in the module.= but
>>> of course without success as it is a dummy i2c device.
>>>
>>> After that I think I'm beginning to understand how it all works so I
>>> ran i2cdetect
>>>
>>> # i2cdetect -l
>>> i2c-0 i2c       i915 gmbus ssc                   I2C adapter
>>> i2c-1 i2c       i915 gmbus vga                   I2C adapter
>>> i2c-2 i2c       i915 gmbus panel                 I2C adapter
>>> i2c-3 i2c       i915 gmbus dpc                   I2C adapter
>>> i2c-4 i2c       i915 gmbus dpb                   I2C adapter
>>> i2c-5 i2c       i915 gmbus dpd                   I2C adapter
>>> i2c-6 i2c       DPDDC-D                         I2C adapter
>>> i2c-7 smbus     SMBus stub driver               SMBus adapter (dummy
>>> driver I played with)
>>>
>>> Should I see emc adapter there or not? I think I should.
>>
>> No, the EMC2104 chip is an I2C/SMBus client, not an I2C/SMBus master, so
>> it's expected you don't see it in the list above. The EMC2104 chip is
>> connected to one of the adapters. What is surprising is that I'd expect
>> your motherboard's SMBus to show up in the adapter list but it's not
>> there. Please check in lspci if you can see it. Then tell us which
>> kernel you're running.
>
> My lspci output (Intel SMBus is visible):
>
> 00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM
> Controller (rev 09)
> 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core
> processor Graphics Controller (rev 09)
> 00:04.0 Signal processing controller: Intel Corporation 3rd Gen Core
> Processor Thermal Subsystem (rev 09)
> 00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset
> Family USB xHCI Host Controller (rev 04)
> 00:16.0 Communication controller: Intel Corporation 7 Series/C210
> Series Chipset Family MEI Controller #1 (rev 04)
> 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset
> Family USB Enhanced Host Controller #2 (rev 04)
> 00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset
> Family High Definition Audio Controller (rev 04)
> 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset
> Family USB Enhanced Host Controller #1 (rev 04)
> 00:1f.0 ISA bridge: Intel Corporation QS77 Express Chipset LPC
> Controller (rev 04)
> 00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family
> 6-port SATA Controller [AHCI mode] (rev 04)
> 00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family
> SMBus Controller (rev 04)
> 00:1f.6 Signal processing controller: Intel Corporation 7 Series/C210
> Series Chipset Family Thermal Management Controller (rev 04)
>
> uname -a
> Linux yoga-alien-13 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9
> 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>
>>> From what I understand to instantiate a device from user space proper
>>> entry in /sys/bus/i2c/devices/i2c-... has to exist.
>>
>> Yes, you need the /sys/bus/i2c/devices/i2c-<N> which corresponds to
>> your SMBus.
>>
>>> Is it possible that EMC2104 in my laptop is somehow invisible to
>>> OS/i2c bus? I'm sure it is there - I can send You a picture ;-)
>>
>> Yes, we've seen it before. The SMBus controller can be hidden, or made
>> inaccessible to the OS due to ACPI resource conflicts, or the EMC2104
>> could be behind and I2C switch/gate, or it could be connected using an
>> arbitrary pair of GPIO pins and we'll never guess what they are...
>
>
> After some googling& investigation in documentation of i2c-i801 driver
> I found out that it should work for that chipset but in some cases can
> be conflicted with ACPI (as You wrote above), and in my case it is
> (messages after loading i2c-i801 driver):
>
> ACPI Warning: 0x0000000000002040-0x000000000000205f SystemIO conflicts
> with Region \_SB_.PCI0.SBUS.SMBI 1 (20130517/utaddress-251)
> ACPI: If an ACPI driver is available for this device, you should use
> it instead of the native driver
>



> So I guess nothing can be done?

I just added acpi_enforce_resources=lax to kernel i smbus is now visible:

 i2cdetect -l
i2c-0 i2c       i915 gmbus ssc                   I2C adapter
i2c-1 i2c       i915 gmbus vga                   I2C adapter
i2c-2 i2c       i915 gmbus panel                 I2C adapter
i2c-3 i2c       i915 gmbus dpc                   I2C adapter
i2c-4 i2c       i915 gmbus dpb                   I2C adapter
i2c-5 i2c       i915 gmbus dpd                   I2C adapter
i2c-6 i2c       DPDDC-D                         I2C adapter
i2c-7 smbus     SMBus I801 adapter at 2040       SMBus adapter


# i2cdetect 7
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-7.
I will probe address range 0x03-0x77.
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- 32 -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- --
50: -- -- 52 -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

EMC2103 driver does not load (wrong manufacturer ID) - emc2103 device
should appear at 0x2e - manual activation does not work either.

Igor

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux