pmos-work-a71/dev/NOTES.md

16 KiB

postmarketOS

The dma counter only increased when probing i2c7 (the not working one). Could be either that this i2c uses dma to transfer and it does not work or its a fault interrupt.

samsung-a715f:~$ cat /proc/interrupts | grep -i i2c
137:         72          0          0          0          0          0          0          0     GICv3 633 Level     880000.i2c
138:         72          0          0          0          0          0          0          0     GICv3 635 Level     888000.i2c
141:          0          0          0          0          0          0          0          0     GICv3 386 Level     a84000.i2c
142:        120          0          0          0          0          0          0          0     GICv3 388 Level     a8c000.i2c

samsung-a715f:~$ cat /proc/interrupts | grep -i dma
133:       1061          0          0          0          0          0          0          0     GICv3 311 Level     gpi-dma

samsung-a715f:~# cat /sys/kernel/debug/dmaengine/summary
dma0 (800000.dma-controller): number of channels: 8

dma1 (a00000.dma-controller): number of channels: 8
 dma1chan0    | a84000.i2c:tx
 dma1chan1    | a84000.i2c:rx

samsung-a715f:~# i2cdetect -l
i2c-0   i2c             Geni-I2C                                I2C adapter
i2c-2   i2c             Geni-I2C                                I2C adapter
i2c-7   i2c             Geni-I2C                                I2C adapter
i2c-9   i2c             Geni-I2C                                I2C adapter

samsung-a715f:~# i2cdetect -y -r 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

samsung-a715f:~# i2cdetect -y -r 2 # slow; might be broken
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

samsung-a715f:~# i2cdetect -y -r 7 # slow; broken
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

samsung-a715f:~# i2cdetect -y -r 9
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- 56 -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
[   41.251691] geni_i2c a84000.i2c: here: geni_i2c_gpi_xfer [Enter] @ drivers/i2c/busses/i2c-qcom-geni.c:615
[   41.251714] geni_i2c a84000.i2c: msg[0].len:1
[   41.251722] geni_i2c a84000.i2c: here: geni_i2c_gpi_xfer [Prepare I2C_WRITE] @ drivers/i2c/busses/i2c-qcom-geni.c:639
[   41.251753] gpi a00000.dma-controller: here: gpi_prep_slave_sg @ drivers/dma/qcom/gpi.c:1841
[   41.251765] gpi a00000.dma-controller: here: gpi_create_i2c_tre [TRE:set_config; low_count: 11, high_count: 10, cycle_count: 26, pack_enable: 3, clk_div: 7] @ drivers/dma/qcom/gpi.c:1647
[   41.251777] gpi a00000.dma-controller: here: gpi_create_i2c_tre [TRE:I2C_WRITE] @ drivers/dma/qcom/gpi.c:1674
[   41.251785] gpi a00000.dma-controller: here: gpi_create_i2c_tre [TRE:I2C_READ || !multi_msg; multi_msg: 0, address: 4294966848, length: 1] @ drivers/dma/qcom/gpi.c:1698
[   41.251797] gpi a00000.dma-controller: TRE:0 31a0a0b:0:7:220001
[   41.251805] gpi a00000.dma-controller: TRE:1 4801:0:1:200001
[   41.251814] gpi a00000.dma-controller: TRE:2 fffffe40:0:1:100200
[   41.251824] geni_i2c a84000.i2c: here: geni_i2c_gpi_xfer [Prepare I2C_READ] @ drivers/i2c/busses/i2c-qcom-geni.c:646
[   41.251835] gpi a00000.dma-controller: here: gpi_prep_slave_sg @ drivers/dma/qcom/gpi.c:1841
[   41.251843] gpi a00000.dma-controller: here: gpi_create_i2c_tre [TRE:set_config; low_count: 11, high_count: 10, cycle_count: 26, pack_enable: 3, clk_div: 7] @ drivers/dma/qcom/gpi.c:1647
[   41.251854] gpi a00000.dma-controller: here: gpi_create_i2c_tre [TRE:I2C_READ || !multi_msg; multi_msg: 0, address: 4294962760, length: 1] @ drivers/dma/qcom/gpi.c:1698
[   41.251864] gpi a00000.dma-controller: here: gpi_create_i2c_tre [TRE:GO TRE for I2C_READ] @ drivers/dma/qcom/gpi.c:1718
[   41.251871] gpi a00000.dma-controller: TRE:0 31a0a0b:0:7:220001
[   41.251880] gpi a00000.dma-controller: TRE:1 ffffee48:0:1:100200
[   41.251888] gpi a00000.dma-controller: TRE:2 4802:0:1:200001
[   41.251897] geni_i2c a84000.i2c: here: geni_i2c_gpi_xfer [Issue read dma] @ drivers/i2c/busses/i2c-qcom-geni.c:652
[   41.251906] gpi a00000.dma-controller: [Issuing] TRE:0 31a0a0b:0:7:220001
[   41.251915] gpi a00000.dma-controller: [Issuing] TRE:1 ffffee48:0:1:100200
[   41.251923] gpi a00000.dma-controller: [Issuing] TRE:2 4802:0:1:200001
[   41.251934] geni_i2c a84000.i2c: here: geni_i2c_gpi_xfer [Issue write dma] @ drivers/i2c/busses/i2c-qcom-geni.c:656
[   41.251941] gpi a00000.dma-controller: [Issuing] TRE:0 31a0a0b:0:7:220001
[   41.251950] gpi a00000.dma-controller: [Issuing] TRE:1 4801:0:1:200001
[   41.251958] gpi a00000.dma-controller: [Issuing] TRE:2 fffffe40:0:1:100200
[   42.279007] geni_i2c a84000.i2c: GPI transfer failed: -110
[   42.279054] gpi a00000.dma-controller: sending cmd: CH STOP:0
[   42.534719] gpi a00000.dma-controller: cmd: CH STOP completion timeout:0
[   42.534751] gpi a00000.dma-controller: Error with cmd:CH STOP ret:-5
[   42.534769] gpi a00000.dma-controller: sending cmd: CH STOP:1
[   42.534944] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.535160] gpi a00000.dma-controller: sending cmd: CH_RESET:0
[   42.535385] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.535457] gpi a00000.dma-controller: sending cmd: CH_RESET:1
[   42.535661] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.535723] gpi a00000.dma-controller: sending cmd: CH START:0
[   42.535985] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.536035] gpi a00000.dma-controller: sending cmd: CH START:1
[   42.536257] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.536313] gpi a00000.dma-controller: sending cmd: CH STOP:0
[   42.536527] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.536576] gpi a00000.dma-controller: sending cmd: CH STOP:1
[   42.536800] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.536847] gpi a00000.dma-controller: sending cmd: CH_RESET:0
[   42.537070] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.537124] gpi a00000.dma-controller: sending cmd: CH_RESET:1
[   42.537341] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.537399] gpi a00000.dma-controller: sending cmd: CH START:0
[   42.537612] gpi a00000.dma-controller: process CH CTRL interrupts
[   42.537660] gpi a00000.dma-controller: sending cmd: CH START:1
[   42.537883] gpi a00000.dma-controller: process CH CTRL interrupts

Android

a71:/ # cat /proc/interrupts | grep -i -e dma -e i2c
 18:       1141          0          0          0          0          0          0          0   PDC-GIC 311 Level     gpi_dmaa00000_gpii0
114:        941          0          0          0          0          0          0          0   PDC-GIC 633 Level     i2c_geni
115:       1198          0          0          0          0          0          0          0   PDC-GIC 635 Level     i2c_geni
119:          0          0          0          0          0          0          0          0   PDC-GIC 386 Level     i2c_geni
139:          0          0          0          0          0          0          0          0   PDC-GIC 507 Edge      jpegdma

a71:/ # i2cdetect -l
i2c-1   i2c             Geni-I2C                                I2C Adapter
i2c-27  i2c             soc:i2c@26                              I2C Adapter
i2c-25  i2c             soc:12c@13                              I2C Adapter
i2c-0   i2c             Geni-I2C                                I2C Adapter
i2c-28  i2c             soc:12c@14                              I2C Adapter
i2c-26  i2c             soc:i2c@17                              I2C Adapter
i2c-24  i2c             Geni-I2C                                I2C Adapter

a71:/ # i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
30: -- -- -- -- -- 35 -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- 67 -- -- -- -- -- -- -- --
70: -- -- -- 73 -- -- -- --

a71:/ # i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

a71:/ # i2cdetect -y 24
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- UU -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

a71:/ # i2cdetect -y 25
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- UU -- -- UU UU --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- UU -- -- --

a71:/ # i2cdetect -y 26
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

a71:/ # i2cdetect -y 27
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- UU -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

a71:/ # i2cdetect -y 28
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- UU UU -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
[  140.021880] i2c_geni a84000.i2c: here: geni_i2c_xfer [Enter] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:731
[  140.022154] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [Enter] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:474
[  140.022194] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [msg[0].len:1 R] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:586
[  140.022210] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [geni_se_iommu_map_buf worked] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:598
[  140.022225] gpi_dmaa00000_gpii0:1:gpi_prep_slave_sg: enter
[  140.022234] gpi_dmaa00000_gpii0:1:gpi_prep_slave_sg: 0 of 1 len:16
[  140.022244] gpi_dmaa00000_gpii0:1:gpi_prep_slave_sg: el avail:63 req:1
[  140.022257] gpi_dma a00000.qcom,gpi-dma: here: gpi_queue_xfer @ ../../../../../../kernel/samsung/a71/drivers/dma/qcom/gpi.c:2146
[  140.022268] gpi_dmaa00000_gpii0:1:gpi_prep_slave_sg: exit wp:0x1fe090 rp:0x1fe080
[  140.022278] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [Issue read DMA] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:630
[  140.022291] gpi_dmaa00000_gpii0:1:gpi_issue_pending: Enter
[  140.022300] gpi_dma a00000.qcom,gpi-dma: here: gpi_issue_pending [Enter] @ ../../../../../../kernel/samsung/a71/drivers/dma/qcom/gpi.c:2406
[  140.022316] gpi_dmaa00000_gpii0:0:gpi_prep_slave_sg: enter
[  140.022324] gpi_dmaa00000_gpii0:0:gpi_prep_slave_sg: 0 of 1 len:16
[  140.022331] gpi_dmaa00000_gpii0:0:gpi_prep_slave_sg: el avail:63 req:1
[  140.022339] gpi_dma a00000.qcom,gpi-dma: here: gpi_queue_xfer @ ../../../../../../kernel/samsung/a71/drivers/dma/qcom/gpi.c:2146
[  140.022351] gpi_dmaa00000_gpii0:0:gpi_prep_slave_sg: exit wp:0x1ff2e0 rp:0x1ff2d0
[  140.022361] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [Issue DMA] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:679
[  140.022373] gpi_dmaa00000_gpii0:0:gpi_issue_pending: Enter
[  140.022381] gpi_dma a00000.qcom,gpi-dma: here: gpi_issue_pending [Enter] @ ../../../../../../kernel/samsung/a71/drivers/dma/qcom/gpi.c:2406
[  140.022396] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [Wait for DMA] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:684
[  140.022425] gpi_dmaa00000_gpii0:99:gpi_handle_irq: enter
[  140.022436] gpi_dmaa00000_gpii0:99:gpi_handle_irq: CNTXT_TYPE_IRQ:0x00000008
[  140.022444] gpi_dmaa00000_gpii0:99:gpi_handle_irq: process IEOB interrupts
[  140.022453] gpi_dmaa00000_gpii0:99:gpi_process_ieob: processing events from isr
[  140.022465] gpi_dmaa00000_gpii0:99:gpi_process_events: cntxt_rp:0x00000000001fc030 local_rp:0x00000000001fc020
[  140.022477] gpi_dmaa00000_gpii0:99:gpi_process_events: chid:0 type:0x22 001ff2d0 00000000 04000000 00220000
[  140.022490] gpi_dmaa00000_gpii0:0:gpi_process_xfer_compl_event: cb_length:0 compl_code:0x4 status:0x0
[  140.022503] i2c_geni a84000.i2c: here: gi2c_gsi_tx_cb [Write DMA callback] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:447
[  140.022525] gpi_dmaa00000_gpii0:99:gpi_process_events: chid:1 type:0x22 001fe080 00000000 02000001 01220003
[  140.022536] gpi_dmaa00000_gpii0:1:gpi_process_xfer_compl_event: cb_length:1 compl_code:0x2 status:0x3
[  140.022549] i2c_geni a84000.i2c: here: gi2c_gsi_rx_cb [Read DMA callback] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:460
[  140.022576] gpi_dmaa00000_gpii0:99:gpi_process_events: exit: c_rp:0x00000000001fc040
[  140.022588] gpi_dmaa00000_gpii0:99:gpi_handle_irq: exit
[  140.022606] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [Done (time left: 51)] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:689
[  140.022621] i2c_geni a84000.i2c: here: geni_i2c_gsi_xfer [geni_i2c_gsi_xfer_out (ret: 0, err: 0)] @ ../../../../../../kernel/samsung/a71/drivers/i2c/busses/i2c-qcom-geni.c:716