Commit adb3aba
usb: typec: tcpm: fix panic when pd disabled in dt
The pd revision can't be initialized when the 'pd-disable' property
is added in DT, and the negotiated_rev becomes be invalid, which
causes kernel panics.
The Kernel panic has the following stack trace:
[ 4.262221][ T182] Unable to handle kernel paging request at virtual address ffffffc8096bf508
[ 4.264702][ T182] Mem abort info:
[ 4.265014][ T182] ESR = 0x0000000096000005
[ 4.265411][ T182] EC = 0x25: DABT (current EL), IL = 32 bits
[ 4.265939][ T182] SET = 0, FnV = 0
[ 4.266271][ T182] EA = 0, S1PTW = 0
[ 4.266612][ T182] FSC = 0x05: level 1 translation fault
[ 4.267107][ T182] Data abort info:
[ 4.267426][ T182] ISV = 0, ISS = 0x00000005
[ 4.267823][ T182] CM = 0, WnR = 0
[ 4.268152][ T182] swapper pgtable: 4k pages, 39-bit VAs, pgdp=000000004217e000
[ 4.268802][ T182] [ffffffc8096bf508] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
[ 4.269633][ T182] Internal error: Oops: 0000000096000005 [friendlyarm#1] PREEMPT SMP
[ 4.270250][ T182] Modules linked in:
[ 4.270584][ T182] CPU: 5 PID: 182 Comm: 2-004e Not tainted 6.1.99 friendlyarm#7
[ 4.271158][ T182] Hardware name: Rockchip RK3576 EVB1 V10 Board (DT)
[ 4.271730][ T182] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 4.272402][ T182] pc : tcpm_set_state+0x6c/0x11c
[ 4.272834][ T182] lr : tcpm_set_state+0x40/0x11c
[ 4.273254][ T182] sp : ffffffc00beebd70
[ 4.273606][ T182] x29: ffffffc00beebd70 x28: 0000000000000000 x27: ffffffc009f59e00
[ 4.274303][ T182] x26: ffffffc009f27008 x25: 0000000000000001 x24: ffffff80c7dc7148
[ 4.274996][ T182] x23: ffffffc008c22ee8 x22: 0000000000000011 x21: 0000000000000000
[ 4.275689][ T182] x20: 0000000000000012 x19: ffffff80c4f8c040 x18: ffffffc00bd45028
[ 4.276372][ T182] x17: 3a736d61202c312d x16: ffffffffffffffff x15: 0000000000000004
[ 4.277065][ T182] x14: ffffffc009fdc100 x13: 0000000000003fff x12: 0000000000000003
[ 4.277757][ T182] x11: ffffffc0096bf510 x10: 00000000ffffffff x9 : ffffffc0096bf528
[ 4.278450][ T182] x8 : 0000000000000000 x7 : 205b5d3430323236 x6 : 322e34202020205b
[ 4.279143][ T182] x5 : ffffffc00a3fb617 x4 : ffffffc00beebac7 x3 : ffffffc009ba7471
[ 4.279836][ T182] x2 : ffffffc009bc41de x1 : ffffffc00beebb30 x0 : 0000000000000058
[ 4.280528][ T182] Call trace:
[ 4.280805][ T182] tcpm_set_state+0x6c/0x11c
[ 4.281204][ T182] run_state_machine+0x108c/0x1908
[ 4.281645][ T182] tcpm_state_machine_work+0x84/0xcc
[ 4.282097][ T182] kthread_worker_fn+0xf4/0x228
[ 4.282517][ T182] kthread+0xec/0x1b8
[ 4.282860][ T182] ret_from_fork+0x10/0x20
Signed-off-by: Frank Wang <[email protected]>
Change-Id: I7039c541039e17199f1db6b42ecf23af7f3179631 parent 559aa0e commit adb3aba
1 file changed
+2
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6249 | 6249 | | |
6250 | 6250 | | |
6251 | 6251 | | |
6252 | | - | |
6253 | | - | |
6254 | | - | |
6255 | | - | |
| 6252 | + | |
| 6253 | + | |
6256 | 6254 | | |
6257 | 6255 | | |
6258 | 6256 | | |
| |||
0 commit comments