On 11/14/18 14:00, Torbjorn Jansson wrote: <snip> > since there now is a patch that appears to be working and fixing this problem > i'd like to ask for some troubleshooting advice with another cec issue i have > that i haven't figured out why it is happening and exactly whats causing it. > > i'm not sure if it is a hardware issue or a software issue or both. > > this is what is happening: > i have a script that polls the tv for current status by running: > cec-ctl --to=0 --give-device-power-status > after a fresh reboot this works fine for a while then sometime later it stops > working and errors with: > - > # cec-ctl --to=0 --give-device-power-status > Driver Info: > Driver Name : pulse8-cec > Adapter Name : serio0 > Capabilities : 0x0000003f > Physical Address > Logical Addresses > Transmit > Passthrough > Remote Control Support > Monitor All > Driver version : 4.18.16 > Available Logical Addresses: 1 > Physical Address : 1.4.0.0 > Logical Address Mask : 0x0800 > CEC Version : 2.0 > Vendor ID : 0x000c03 > Logical Addresses : 1 (Allow RC Passthrough) > > Logical Address : 11 (Playback Device 3) > Primary Device Type : Playback > Logical Address Type : Playback > All Device Types : Playback > RC TV Profile : None > Device Features : > None > > > Transmit from Playback Device 3 to TV (11 to 0): > CEC_MSG_GIVE_DEVICE_POWER_STATUS (0x8f) > Sequence: 119437 Tx Timestamp: 865389.535s > Tx, Error (1), Max Retries > - > > once this happens i can never get back any status and also running: > cec-ctl -M > gives me a lot of: > Transmitted by Playback Device 3 to TV (11 to 0): > CEC_MSG_GIVE_DEVICE_POWER_STATUS (0x8f) > Tx, Error (1), Max Retries > once for every run of my status checking script. > > i know polling like this is not the best option and a better way would be to > listen for events and then take action when status changes but that's not > easily doable with what i need it for. > > anyway, once i start getting the above errors when i poll it will not give me > back any good status any more (everything errors out) > > also sending commands to tv to turn on or off like: > cec-ctl --to=0 --image-view-on > or > cec-ctl --to=0 --standby > doesn't work. > > BUT if i remove power to tv and wait for standby led to go out completely then > power it back on i can use above two commands to turn on/off the tv even when > they return errors and i still can't poll for current status. > > so even with the errors always returned at this stage the on/off commands still > gets sent and works. > > do you think this behavior is a sw or hw issue or both? Does 'cec-ctl --to=0 --give-device-power-status' eventually fail even if the TV is on all the time? Or does it only fail if the TV goes to standby or has been in standby for a very long time? This error ('Tx, Error (1), Max Retries') indicates that the pulse-eight returns transmit errors suggesting that the CEC line is locked (always high or low). > > > if i'm not mistaken i could unplug usb cable to pulse8 cec adapter and reinsert > to make it work properly again (no errors and correct response like a fresh start) > but i'm not 100% sure of this. > when i tried it now i get a new kernel oops: > - > [866129.392139] usb 7-2: USB disconnect, device number 3 > [866129.409568] cdc_acm 7-2:1.1: acm_start_wb - usb_submit_urb(write bulk) > failed: -19 > [866129.409576] cdc_acm 7-2:1.1: acm_start_wb - usb_submit_urb(write bulk) > failed: -19 > [866129.409635] WARNING: CPU: 10 PID: 1571 at drivers/media/cec/cec-adap.c:1243 Not a kernel oops, just a warning. The pulse-eight driver has a small bug that causes this warning, but it does not affect the CEC behavior in any way. I'll post a patch. Regards, Hans