Hi, Joseph Kogut <joseph.kogut@xxxxxxxxx> writes: > Well, after comparing the kernel log from both systems, it seems that > the device controller simply isn't being enumerated by the kernel for > some reason. > > Here's the relevant section from the Android kernel: > > <6>[ 0.612857] PCI host bridge to bus 0000:00 > <6>[ 0.612869] pci_bus 0000:00: root bus resource [bus 00-ff] > <6>[ 0.612877] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] > <6>[ 0.612885] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] > <6>[ 0.612893] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] > <6>[ 0.612900] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] > <6>[ 0.612908] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] > <6>[ 0.612915] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] > <6>[ 0.612923] pci_bus 0000:00: root bus resource [mem 0x7d000001-0x7f000000] > <6>[ 0.612931] pci_bus 0000:00: root bus resource [mem 0x80000000-0x90effffe] > <6>[ 0.612938] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] > <7>[ 0.612960] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 > <7>[ 0.613276] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 > <7>[ 0.613304] pci 0000:00:02.0: reg 10: [mem 0x90400000-0x907fffff] > <7>[ 0.613326] pci 0000:00:02.0: reg 18: [mem 0x80000000-0x8fffffff pref] > <7>[ 0.613346] pci 0000:00:02.0: reg 20: [io 0x1000-0x1007] > <7>[ 0.613672] pci 0000:00:03.0: [8086:0f38] type 00 class 0x048000 > <7>[ 0.613696] pci 0000:00:03.0: reg 10: [mem 0x90000000-0x903fffff] > <7>[ 0.614052] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 > <7>[ 0.614087] pci 0000:00:14.0: reg 10: [mem 0x90e00000-0x90e0ffff 64bit] > <7>[ 0.614179] pci 0000:00:14.0: PME# supported from D3hot D3cold > <7>[ 0.614473] pci 0000:00:16.0: [8086:0f37] type 00 class 0x0c0380 > <6>[ 0.614488] EM:OEM1 table found, size=64 > <6>[ 0.614493] OEM1 charging bit = 1 > <7>[ 0.614514] pci 0000:00:16.0: reg 10: [mem 0x90800000-0x909fffff] > <7>[ 0.614530] pci 0000:00:16.0: reg 14: [mem 0x90e2e000-0x90e2efff] > <7>[ 0.614611] pci 0000:00:16.0: PME# supported from D0 D3hot > <7>[ 0.614916] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 > <7>[ 0.614957] pci 0000:00:1a.0: reg 10: [mem 0x90d00000-0x90dfffff] > <7>[ 0.614979] pci 0000:00:1a.0: reg 14: [mem 0x90c00000-0x90cfffff] > <7>[ 0.615118] pci 0000:00:1a.0: PME# supported from D0 D3hot > <7>[ 0.615416] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 > <7>[ 0.615775] pci_bus 0000:00: on NUMA node 0 > > As you can see, our device controller is recognized and enumerated in > Android. I suppose this explains why it works there. :) > > Here's the relevant section from the mainline kernel: > > [ 0.636189] PCI host bridge to bus 0000:00 > [ 0.636196] pci_bus 0000:00: root bus resource [io 0x0070-0x0077] > [ 0.636201] pci_bus 0000:00: root bus resource [io 0x0000-0x006f window] > [ 0.636205] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7 window] > [ 0.636209] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] > [ 0.636213] pci_bus 0000:00: root bus resource [mem > 0x000a0000-0x000bffff window] > [ 0.636217] pci_bus 0000:00: root bus resource [mem > 0x000c0000-0x000dffff window] > [ 0.636221] pci_bus 0000:00: root bus resource [mem > 0x000e0000-0x000fffff window] > [ 0.636225] pci_bus 0000:00: root bus resource [mem > 0x90c00000-0x90ffffff window] > [ 0.636228] pci_bus 0000:00: root bus resource [mem > 0x7cf00001-0x7ef00000 window] > [ 0.636232] pci_bus 0000:00: root bus resource [mem > 0x80000000-0x908ffffe window] > [ 0.636236] pci_bus 0000:00: root bus resource [mem > 0xfed40000-0xfed40fff window] > [ 0.636241] pci_bus 0000:00: root bus resource [bus 00-ff] > [ 0.636258] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 > [ 0.636608] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 > [ 0.636627] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] > [ 0.636644] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] > [ 0.636659] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] > [ 0.637019] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 > [ 0.637045] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] > [ 0.637128] pci 0000:00:14.0: PME# supported from D3hot D3cold > [ 0.637451] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 > [ 0.637477] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] > [ 0.637491] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] > [ 0.637596] pci 0000:00:1a.0: PME# supported from D0 D3hot > [ 0.637915] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 > [ 0.638290] pci_bus 0000:00: on NUMA node 0 > > Here are the complete logs for both systems: > Mainline: https://gist.githubusercontent.com/jakogut/f726178f480b5daa1a917e3e41b46d9f/raw/80b0c273ec6a0b434c1ab0f9493283bbd0ab1635/dmesg.log > Android: https://gist.githubusercontent.com/jakogut/a0f77161ea3ae886bf31e2ca6c1c33a5/raw/2a2c4b6f9a5f11be15938f58161b77d730874c6d/dmesg.log > > I modified the _STA method from the OTG1 device to always return 0xF, > and the device controller still didn't show up on the PCI bus. I I don't think your kernel is using your DSDT. There's no "taint" message in your dmesg logs. Make sure you set CONFIG_ACPI_CUSTOM_DSDT_FILE properly. Have a look https://01.org/linux-acpi/documentation/overriding-dsdt for more details cheers -- balbi
Attachment:
signature.asc
Description: PGP signature