video/drm: analogix_dp: Workaround async issue between pclk clock and 24m clock
Background: - EDP software register bank is on the EDP 24m clock domain; - CPU access EDP software register bank, need to go through EDP APB read/write bus and EDP internal read/write bus; - EDP APB read/write bus is on the EDP pclk clock domain; - EDP internal read/write bus is on the EDP 24m clock domain; - Asynchronous logic circuit is added between APB read/write bus and Internal read/write bus; Issue: There is a bug on the Asynchronous logic circuit between APB read/write bus and Internal read/write bus; This bug will be random to cause the following wrong control/address signals sequence happen; - For write, maybe wrong register address is wrote in; - For read, maybe wrong register address is read out; Workaround: - For CPU write EDP register operation, write any register need following three steps, 1): Read EDP_BASE+0x00 dummy register firstly, latch the dummy register address on Reg_Address bus, to avoid next step write to wrong register to cause function register overrun; 2): 1st time to write the EDP register you want to operate, to latch the real write address on Reg_Address bus; 3): 2nd time to write the EDP register you want to operate, to make sure the data is write on the real write address; - For CPU read EDP register operation, read any register need following two steps, 1): 1st time to read the EDP register you want to operate, to latch the real read address on Reg_Address bus; 2): 2nd time to read the EDP register you want to operate, to make sure the data is read out from the real read address; Change-Id: I42613145b1d414321ac1aef290a35969a1461e36 Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
parent
faf4a351fc
commit
52db8715b4