AnsweredAssumed Answered

ad9889b goes into power down mode incorrectly

Question asked by rsun on Feb 8, 2013
Latest reply on Feb 8, 2013 by GuenterL

So, we've been using the AD9889B for a long time and never had any real issues with it, but recently, one of our customers connected a BENQ TL550 display and when we initialize the HDMI transmitter, it works for a few seconds and then goes into no-signal mode. As near as I can tell, the software that manages the transmitter programs it correctly and then goes into a polling loop looking for HPD to go away (we don't have support for interrupt driven operation in this product). This polling occurs every few seconds and involves reading register 0x42 (GPI1_RO) to check the HPD state and then reading register 0xc8 (HDCP STATUS). With these particular monitors (it's been tried on two different examples), after about 5 or so poll cycles, the transmitter goes into power down state (0x41 goes from 0x10 to 0x50) for no reason that I can find. If I manually write it back to 0x10, the display comes back on and stays on. Our transmitter is mapped @ i2c address 0x72.

 

For reference,  the register activity during startup when connected to one of these displays is attached below. In the dialog, there are lines like:

 

RR: 72 00 for 1: -> 50 50                    # Random Read, device 0x72, address 0x00, 1 byte, 0x72/0x41 reads before and after as 0x50

RR: 72 00 - 00                                   # Value(s) read back

RW: 72 41 for 1: -> 50 50                    # Random Write, device 0x72, address 0x41, 1 byte, 0x72/0x41 reads before and after as 0x50

RW: 72 41 - 50                                   # Value(s) writen

 

Turning off 5V output

INFO: /local/var/system/dev/video_out/0/active_source = NEXA_HD (124)

RR: 72 00 for 1: -> 50 50

RR: 72 00 - 00

ad9889[0]: Found chip revision 0.0 at 72

Enabled HDMI TX Chip

ad9889[0]: Enabling V5 output

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

ad9889[0]: Moving to WaitingHPD

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RW: 72 41 for 1: -> 50 50

RW: 72 41 - 50

RW: 72 98 for 4: -> 50 50

RW: 72 98 - 07 02 00 18

RW: 72 9c for 2: -> 50 50

RW: 72 9c - 38 61

RW: 72 9f for 1: -> 50 50

RW: 72 9f - 70

RW: 72 41 for 1: -> 50 10

RW: 72 41 - 10

RW: 72 43 for 1: -> 10 10

RW: 72 43 - 7e

RW: 72 c4 for 1: -> 10 10

RW: 72 c4 - 00

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 c5 for 1: -> 10 10

RR: 72 c5 - 00

RR: 72 c8 for 1: -> 10 10

RR: 72 c8 - 01

ad9889[0]: EDID/CEA not ready

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 c5 for 1: -> 10 10

RR: 72 c5 - 10

RR: 7e 00 for 256: -> 10 10

RR: 7e 00 - 00 ff ff ff ff ff ff 00 09 d1 04 81 00 00 00 00 03 16 01 03 80 78 44 78 2a 5e 78 a1 54 51 9e 26 0c 47 4a ad 4a 00 a9 40 81 80 81 40 01 01 01 01 01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c 45 00 b9 a8 42 00 00 1e 00 00 00 ff 00 45 54 44 4d 59 58 58 58 58 58 50 50 30 00 00 00 fd 00 32 4b 0f 4b 11 00 0a 20 20 20 20 20 20 00 00 00 fc 00 54 4c 35 35 30 0a 20 20 20 20 20 20 20 01 35 02 03 22 f1 4f 90 05 04 03 02 07 06 1f 14 13 12 11 16 15 01 23 09 07 07 83 01 00 00 65 03 0c 00 10 00 02 3a 80 18 71 38 2d 40 58 2c 45 00 b9 a8 42 00 00 1e 01 1d 80 18 71 1c 16 20 58 2c 25 00 b9 a8 42 00 00 9e 5f 0e 20 6e 30 e0 50 10 34 30 66 0c b9 a8 42 00 00 1a 01 1d 00 bc 52 d0 1e 20 b8 28 55 40 b9 a8 42 00 00 1e 02 3a 80 d0 72 38 2d 40 10 2c 45 80 b9 a8 42 00 00 1e 00 00 00 6d

ad9889[0]: Parsing EDID/CEA data for block 0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

ad9889[0]: Monitor detected - BNQ  � ETDMYXXXXXPP0 TL550

ad9889[0]: Monitor ranges   - V: 50-75Hz, H: 15-75kHz, Px: 170mHz

ad9889[0]: Monitor info     - Analog: No, HDMI: Yes, YPbPr: Yes, PCM: Yes, 32k: Yes

ad9889[0]: CEC Address      - 1.0.0.0

ad9889[0]: Most likely mode - 1920x1080 60 [Mode 5, rank 20]

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

ad9889[0]: Disabled splash mode

ad9889[0]: Digital Display 1 configured for hdmi 1280 720 p 60 by gui

ad9889[0]: Using mode entry 2 [1280 x 720] 60p

RW: 72 a1 for 1: -> 10 10

RW: 72 a1 - 3c

RW: 72 44 for 1: -> 10 10

RW: 72 44 - 04

RW: 72 0a for 4: -> 10 10

RW: 72 0a - 00 0e 04 10

RW: 72 12 for 1: -> 10 10

RW: 72 12 - 20

RW: 72 14 for 2: -> 10 10

RW: 72 14 - 04 30

RW: 72 50 for 1: -> 10 10

RW: 72 50 - 20

RW: 72 6a for 1: -> 10 10

RW: 72 6a - 09

RW: 72 40 for 2: -> 10 10

RW: 72 40 - 40 10

RW: 72 9c for 2: -> 10 10

RW: 72 9c - 38 61

RW: 72 a2 for 11: -> 10 10

RW: 72 a2 - 87 87 08 00 00 00 00 00 00 00 04

RW: 72 b9 for 3: -> 10 10

RW: 72 b9 - 00 00 ff

RW: 72 52 for 24: -> 10 10

RW: 72 52 - 4c 69 66 65 53 69 7a 65 52 6f 6f 6d 20 32 32 30 00 00 00 00 00 00 00 00

RW: 72 17 for 1: -> 10 10

RW: 72 17 - 07

RW: 72 30 for 7: -> 10 10

RW: 72 30 - 1b 82 80 14 05 40 d9

RW: 72 16 for 1: -> 10 10

RW: 72 16 - 30

RW: 72 3b for 1: -> 10 10

RW: 72 3b - 80

RW: 72 40 for 2: -> 10 10

RW: 72 40 - 40 10

RW: 72 46 for 2: -> 10 10

RW: 72 46 - 68 80

RW: 72 01 for 3: -> 10 10

RW: 72 01 - 00 10 00

RW: 72 07 for 3: -> 10 10

RW: 72 07 - 01 22 0a

RW: 72 37 for 4: -> 10 10

RW: 72 37 - 0a 00 2d 00

RW: 72 3c for 1: -> 10 10

RW: 72 3c - 04

RW: 72 44 for 2: -> 10 10

RW: 72 44 - 7c 08

RW: 72 a1 for 1: -> 10 10

RW: 72 a1 - 00

RW: 72 af for 1: -> 10 10

RW: 72 af - 06

ad9889[0]: Moving to state WaitingTMDS

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

ad9889[0]: Moving to ActiveTransmit

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RR: 72 42 for 1: -> 10 10

RR: 72 42 - e0

RW: 72 a1 for 1: -> 10 10

RW: 72 a1 - 00

ad9889[0]: Waking display from sleep

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

RR: 72 42 for 1: -> 50 50

RR: 72 42 - e0

 

The state of the chip (0x72 device only) at this point is:

00:  00 00 00 00 00 00 00 00 00 00 41 0e 3c 18 01 13

10:  25 37 00 00 00 00 00 00 06 62 04 a8 00 00 1c 84

20:  1c bf 04 a8 1e 70 02 1e 00 00 04 a8 08 12 1b ac

30:  00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00

40:  00 50 e0 7e 78 00 00 00 00 00 00 00 00 00 00 00

50:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

90:  00 00 00 00 c0 00 c0 00 07 02 00 18 38 61 00 70

a0:  00 00 87 87 08 00 00 00 00 00 00 00 00 00 40 14

b0:  00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00

c0:  00 00 00 00 00 00 04 00 00 03 00 00 02 00 00 70

d0:  70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70

e0:  70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70

f0:  70 70 70 70 70 70 70 70 70 70 7d aa 1c 00 b0 00

 

And just before the chip powers off it is:

00:  00 00 10 00 01 22 c9 01 22 0a 00 0e 04 10 01 13

10:  25 37 20 00 04 30 30 07 06 62 04 a8 00 00 1c 84

20:  1c bf 04 a8 1e 70 02 1e 00 00 04 a8 08 12 1b ac

30:  1b 82 80 14 05 40 d9 0a 00 2d 00 80 04 04 10 00

40:  40 10 e0 7e 7c 08 68 80 00 00 00 00 00 00 00 00

50:  20 00 4c 69 66 65 53 69 7a 65 52 6f 6f 6d 20 32

60:  32 30 00 00 00 00 00 00 00 00 09 00 00 00 00 00

70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

90:  00 00 00 00 c0 00 e4 00 07 02 00 18 38 61 12 70

a0:  00 00 87 87 08 00 00 00 00 00 00 00 00 00 40 06

b0:  51 b6 4d ef 0d fa dd b1 b0 00 00 ff 00 00 00 00

c0:  00 00 00 00 00 10 14 00 02 03 00 01 02 00 00 70

d0:  70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70

e0:  70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70

f0:  70 70 70 70 70 70 70 70 70 70 7d aa 1c 00 b0 00

 

All of this takes place over about 10 or so seconds. Any ideas on what's going on would be greatly appreciated.

Outcomes