Bug 198671
Summary: | Lenovo Yoga 11e 3rd generation RFE: add support for second accelerometer | ||
---|---|---|---|
Product: | Drivers | Reporter: | Steven Presser (steve) |
Component: | I2C | Assignee: | Hans de Goede (jwrdegoede) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | andy.shevchenko, jwrdegoede |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://patchwork.kernel.org/patch/10096709/ | ||
Kernel Version: | 4.12.13 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | acpidump tables |
Thank you for this information. I would like to confirm that earlier published series [1] fixes the issue. [1]: https://bitbucket.org/andy-shev/linux/branch/topic/iio-acpi I am working on confirming this. The first kernel I built didn't boot - I suspect distro-specific issues, as it never left the GRUB boot menu. I will keep you updated as I am able to work on the issue. I'm about to close this bug since nobody appear to test and confirm the state. So I leave it in need info state for a while (day or two) and then close. Hi Andy, My apologies, this slipped my plate. I'm currently away from the machine. Would you mind holding it open for a couple weeks so I can get back to that machine and test it? Thanks, Steve It seems I lost my branch with patches and I have no clue how I solved the original issue. Cc'ed also to Hans de Goede. (In reply to Andy Shevchenko from comment #5) > It seems I lost my branch with patches and I have no clue how I solved the > original issue. Cc'ed also to Hans de Goede. I believe your attempt to fix this was discussed here: https://patchwork.kernel.org/project/linux-iio/patch/20181030144706.6737-1-andriy.shevchenko@linux.intel.com/ So basically we have 2 choices here: 1. Go with Jeremy's patch (which is reasonable clean and simple); or 2. Use i2c-multi-instantiate.c I see that since the original discussion i2c-multi-instantiate now already allows for there to be less I2C resources declared in the ACPI tables then in the i2c_inst_data array for the id, so that part is solved. So I guess that option 2 would be the most cleanest thing to do here and this would also be consistent with how we deal with other cases where there are multiple chips declared in a single ACPI device/resource table. Andy, how does going with option 2 here sound to you? Perhaps I (In reply to Hans de Goede from comment #6) > (In reply to Andy Shevchenko from comment #5) > > It seems I lost my branch with patches and I have no clue how I solved the > > original issue. Cc'ed also to Hans de Goede. Perhaps I removed it because it used to have some cleanups and i2c-multi-instantiate patch at the end... > I believe your attempt to fix this was discussed here: > > https://patchwork.kernel.org/project/linux-iio/patch/20181030144706.6737-1- > andriy.shevchenko@linux.intel.com/ > > So basically we have 2 choices here: > > 1. Go with Jeremy's patch (which is reasonable clean and simple); or > 2. Use i2c-multi-instantiate.c > > I see that since the original discussion i2c-multi-instantiate now already > allows for there to be less I2C resources declared in the ACPI tables then > in the i2c_inst_data array for the id, so that part is solved. > > So I guess that option 2 would be the most cleanest thing to do here and > this would also be consistent with how we deal with other cases where there > are multiple chips declared in a single ACPI device/resource table. > > Andy, how does going with option 2 here sound to you? Yes, I think that is proper way to go. Even if there is collision, we would be able to simple check amount of resources in the original driver and bail out from probe or alike type of quirk. So unfortunately using i2c-multi-instantiate.c for this will not work. So I've dusted off Jeremy's patch fixing this inside the bmc150-accel-i2c.c code and posted that upstream, see the commit msg for why the i2c-multi-instantiate.c approach will not work. Series starts here: https://lore.kernel.org/linux-iio/20201125083618.10989-1-hdegoede@redhat.com/T/#t Modified version of Jeremy's patch: https://lore.kernel.org/linux-iio/20201125083618.10989-3-hdegoede@redhat.com/ Lets close this since patches for this are now available. I will post a v2 addressing the review remarks soon. |
Created attachment 273985 [details] acpidump tables At the request of Andy Shevchenko (from iio, I believe), I am filing a bug with relevant hardware information for the Lenovo Thinkpad Yoga 11e 3rd generation. Andy, acpidump tables are attached; other output follows. # sudo grep -H 15 /sys/bus/acpi/devices/*/status /sys/bus/acpi/devices/808622C1:00/status:15 /sys/bus/acpi/devices/808622C1:01/status:15 /sys/bus/acpi/devices/808622C1:02/status:15 /sys/bus/acpi/devices/ATML1000:00/status:15 /sys/bus/acpi/devices/BOSC0200:00/status:15 /sys/bus/acpi/devices/IFX0102:00/status:15 /sys/bus/acpi/devices/INT33FF:00/status:15 /sys/bus/acpi/devices/INT33FF:01/status:15 /sys/bus/acpi/devices/INT33FF:02/status:15 /sys/bus/acpi/devices/INT33FF:03/status:15 /sys/bus/acpi/devices/INTCF1C:01/status:15 /sys/bus/acpi/devices/INTL9C60:01/status:15 /sys/bus/acpi/devices/LEN0068:00/status:15 /sys/bus/acpi/devices/LNXPOWER:00/status:15 /sys/bus/acpi/devices/MSFT0002:01/status:15 /sys/bus/acpi/devices/MSFT9000:00/status:15 /sys/bus/acpi/devices/MSFT9001:00/status:15 /sys/bus/acpi/devices/NXP7471:00/status:15 /sys/bus/acpi/devices/PNP0501:00/status:15 /sys/bus/acpi/devices/PNP0C09:00/status:15 /sys/bus/acpi/devices/WCOM5071:00/status:15 # dmidecode # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 2.7 present. 67 structures occupying 2486 bytes. Table at 0x000E0840. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: LENOVO Version: R0AET35W (1.18) Release Date: 08/04/2017 Address: 0xE0000 Runtime Size: 128 kB ROM Size: 6144 kB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported EDD is supported Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) NEC PC-98 ACPI is supported USB legacy is supported BIOS boot specification is supported Function key-initiated network boot is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 1.18 Firmware Revision: 1.9 Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: LENOVO Product Name: 20GA001FUS Version: ThinkPad Yoga 11e 3rd Gen Serial Number: LR08TAGY UUID: 06613D01-4FB2-11CB-A79B-95031E316FD0 Wake-up Type: Power Switch SKU Number: LENOVO_MT_20GA_BU_Think_FM_ThinkPad Yoga 11e 3rd Gen Family: ThinkPad Yoga 11e 3rd Gen Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: LENOVO Product Name: Intel powered classmate PC Version: SDK0J40697 WIN Serial Number: A1SH74C00KP Asset Tag: Not Available Features: Board is a hosting board Board is replaceable Location In Chassis: Not Available Chassis Handle: 0x0000 Type: Motherboard Contained Object Handles: 0 Handle 0x0003, DMI type 3, 22 bytes Chassis Information Manufacturer: LENOVO Type: Convertible Lock: Not Present Version: Not Available Serial Number: LR08TAGY Asset Tag: No Asset Information Boot-up State: Unknown Power Supply State: Unknown Thermal State: Unknown Security Status: Unknown OEM Information: 0x00000000 Height: Unspecified Number Of Power Cords: Unspecified Contained Elements: 0 SKU Number: Not Specified Handle 0x0007, DMI type 4, 42 bytes Processor Information Socket Designation: CHV Type: Central Processor Family: Celeron Manufacturer: Intel(R) Corporation ID: C4 06 04 00 FF FB EB BF Signature: Type 0, Family 6, Model 76, Stepping 4 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Celeron(R) CPU N3160 @ 1.60GHz Voltage: 3.8 V External Clock: 83 MHz Max Speed: 1660 MHz Current Speed: 1600 MHz Status: Populated, Enabled Upgrade: Slot 1 L1 Cache Handle: 0x0005 L2 Cache Handle: 0x0006 L3 Cache Handle: Not Provided Serial Number: To Be Filled By O.E.M. Asset Tag: To Be Filled By O.E.M. Part Number: To Be Filled By O.E.M. Core Count: 4 Core Enabled: 4 Thread Count: 4 Characteristics: 64-bit capable Multi-Core Execute Protection Enhanced Virtualization Power/Performance Control Handle 0x0004, DMI type 7, 19 bytes Cache Information Socket Designation: L1 Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 24 kB Maximum Size: 24 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Parity System Type: Data Associativity: Other Handle 0x0005, DMI type 7, 19 bytes Cache Information Socket Designation: L1 Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 32 kB Maximum Size: 32 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Parity System Type: Instruction Associativity: 8-way Set-associative Handle 0x0006, DMI type 7, 19 bytes Cache Information Socket Designation: L2 Cache Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back Location: Internal Installed Size: 1024 kB Maximum Size: 1024 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Single-bit ECC System Type: Unified Associativity: 16-way Set-associative Handle 0x000C, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: Keyboard External Connector Type: PS/2 Port Type: Keyboard Port Handle 0x000D, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: Mouse External Connector Type: PS/2 Port Type: Mouse Port Handle 0x000E, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: Other External Reference Designator: COM 1 External Connector Type: DB-9 male Port Type: Serial Port 16550A Compatible Handle 0x000F, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: Other External Reference Designator: Video External Connector Type: DB-15 female Port Type: Video Port Handle 0x0010, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: Other External Reference Designator: HDMI External Connector Type: None Port Type: Video Port Handle 0x0011, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB3.0 - 1# External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0012, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB3.0 - 2# External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0013, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB2.0 - 3# External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0014, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB2.0 - 4# External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0015, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: Ethernet External Connector Type: RJ-45 Port Type: Network Port Handle 0x0016, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: SATA Port 1 J8J1 Internal Connector Type: SAS/SATA Plug Receptacle External Reference Designator: None External Connector Type: None Port Type: SATA Handle 0x0017, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: SATA Port 2 J7G1 Internal Connector Type: SAS/SATA Plug Receptacle External Reference Designator: None External Connector Type: None Port Type: SATA Handle 0x0018, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: None Internal Connector Type: None External Reference Designator: AC IN External Connector Type: Other Port Type: Other Handle 0x0019, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: TPM/PORT 80 Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x001A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: HDA 2X8 Header Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x001B, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: HDA 8Pin Header Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x001C, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: HDA HDMI Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x001D, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Scan Matrix Keyboard Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x001E, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: SPI Program Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x001F, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: LPC Hot Docking Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0020, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: LPC SIDE BAND Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0021, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: LPC Slot Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0022, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: SATA Power Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0023, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: FP Header Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0024, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: ATX Power Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0025, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: BATT B Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0026, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: BATT A Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0027, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: CPU Fan Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0028, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: XDP Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x0029, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Memory Slot 1 Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x002A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Memory Slot 2 Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x002B, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: FAN PWR Internal Connector Type: Other External Reference Designator: None External Connector Type: None Port Type: Other Handle 0x002C, DMI type 9, 17 bytes System Slot Information Designation: PCI-Express 1 X1 Type: x4 PCI Express Current Usage: Available Length: Short ID: 1 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Bus Address: 0000:00:1c.0 Handle 0x002D, DMI type 9, 17 bytes System Slot Information Designation: PCI-Express 2 X1 Type: x1 PCI Express Current Usage: Available Length: Short ID: 2 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Bus Address: 0000:00:1c.1 Handle 0x002E, DMI type 9, 17 bytes System Slot Information Designation: PCI-Express 3 X1 Type: x1 PCI Express Current Usage: In Use Length: Short ID: 3 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Bus Address: 0000:00:1c.2 Handle 0x002F, DMI type 9, 17 bytes System Slot Information Designation: PCI-Express 4 X1 Type: x1 PCI Express Current Usage: In Use Length: Short ID: 4 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Bus Address: 0000:00:1c.3 Handle 0x0030, DMI type 10, 6 bytes On Board Device Information Type: Video Status: Enabled Description: Intel(R) Extreme Graphics 3 Controller Handle 0x0031, DMI type 10, 6 bytes On Board Device Information Type: Sound Status: Enabled Description: Intel(R) Azalia Audio Device Handle 0x0032, DMI type 11, 5 bytes OEM Strings String 1: This is the Intel Braswell CRB Platform Handle 0x0033, DMI type 12, 5 bytes System Configuration Options Handle 0x0034, DMI type 13, 22 bytes BIOS Language Information Language Description Format: Abbreviated Installable Languages: 6 en-US fr-FR ja-JP ko-KR zh-CHT zh-CHS Currently Installed Language: en-US Handle 0x003F, DMI type 15, 31 bytes System Event Log Area Length: 27 bytes Header Start Offset: 0x0000 Header Length: 16 bytes Data Start Offset: 0x0010 Access Method: General-purpose non-volatile data functions Access Address: 0x00F0 Status: Valid, Not Full Change Token: 0x00000001 Header Format: Type 1 Supported Log Type Descriptors: 4 Descriptor 1: POST error Data Format 1: POST results bitmap Descriptor 2: PCI system error Data Format 2: None Descriptor 3: System reconfigured Data Format 3: None Descriptor 4: Log area reset/cleared Data Format 4: None Handle 0x0008, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 8 GB Error Information Handle: Not Provided Number Of Devices: 1 Handle 0x0009, DMI type 17, 34 bytes Memory Device Array Handle: 0x0008 Error Information Handle: Not Provided Total Width: 8 bits Data Width: 8 bits Size: 4096 MB Form Factor: SODIMM Set: None Locator: ChannelA-DIMM0 Bank Locator: BANK 0 Type: DDR3 Type Detail: Synchronous Speed: 1600 MHz Manufacturer: Samsung Serial Number: 53482188 Asset Tag: 9876543210 Part Number: Rank: Unknown Configured Clock Speed: Unknown Handle 0x000A, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000FFFFFFFF Range Size: 4 GB Physical Array Handle: 0x0008 Partition Width: 2 Handle 0x0035, DMI type 22, 26 bytes Portable Battery Location: Bottom Manufacturer: SMP Name: LNV-00HW44 Design Capacity: 42010 mWh Design Voltage: 11250 mV SBDS Version: 03.01 Maximum Error: Unknown SBDS Serial Number: 05CD SBDS Manufacture Date: 2017-04-06 SBDS Chemistry: LiP OEM-specific Information: 0x00000000 Handle 0x003E, DMI type 24, 5 bytes Hardware Security Power-On Password Status: Enabled Keyboard Password Status: Not Implemented Administrator Password Status: Disabled Front Panel Reset Status: Not Implemented Handle 0x0037, DMI type 32, 11 bytes System Boot Information Status: No errors detected Handle 0x0038, DMI type 131, 22 bytes OEM-specific Type Header and Data: 83 16 38 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 Strings: TVT-Enablement Handle 0x003D, DMI type 133, 5 bytes OEM-specific Type Header and Data: 85 05 3D 00 01 Strings: KHOIHGIUCCHHII Handle 0x000B, DMI type 134, 13 bytes OEM-specific Type Header and Data: 86 0D 0B 00 27 04 17 20 00 00 00 00 00 Handle 0x003B, DMI type 134, 16 bytes OEM-specific Type Header and Data: 86 10 3B 00 00 53 54 4D 20 01 01 00 00 03 01 02 Strings: TPM INFO System Reserved Handle 0x0039, DMI type 135, 34 bytes OEM-specific Type Header and Data: 87 22 39 00 54 50 07 04 01 06 01 01 02 00 02 01 02 00 03 01 02 00 04 01 02 00 05 01 02 00 06 01 02 00 Handle 0x003C, DMI type 135, 47 bytes OEM-specific Type Header and Data: 87 2F 3C 00 54 50 07 02 42 41 59 20 49 2F 4F 20 04 00 01 01 1C 00 13 00 02 00 00 00 00 01 00 00 00 00 00 00 00 00 01 01 FF 00 00 00 00 00 00 Handle 0x0040, DMI type 135, 18 bytes OEM-specific Type Header and Data: 87 12 40 00 54 50 07 01 01 00 01 00 00 00 01 00 00 00 Handle 0x0041, DMI type 140, 15 bytes OEM-specific Type Header and Data: 8C 0F 41 00 4C 45 4E 4F 56 4F 0B 07 01 01 02 Strings: R0AHT25W 04/20/2016 Handle 0x0042, DMI type 140, 43 bytes OEM-specific Type Header and Data: 8C 2B 42 00 4C 45 4E 4F 56 4F 0B 08 01 03 12 02 04 11 28 03 12 02 04 10 10 03 12 02 04 10 01 03 12 02 04 07 07 03 12 02 04 06 20 Handle 0x003A, DMI type 200, 7 bytes OEM-specific Type Header and Data: C8 07 3A 00 01 02 03 Strings: 152D LI8 BQ5A51 Handle 0xFEFF, DMI type 127, 4 bytes End Of Table