@
zkiifreak
from the logs comes this:
1) RPI gets 1100 phys address what would mean that RPI is in port1 of Denon which is in port1 of TV.
2) but as XBMC is initing CEC, there is no other device on the bus answering pings(poll) on any address (01-15)
3) RPI adopts 01
4) later on RPI changes phys add from 1100 to 1000 via HDMI_ATTACHED event - normally that would mean that TV went through OFF/ON cycle (or rather hdmi cable was re-attached). but before TV was turned on already and after is no event that TV is going standby.
if you didn't change the cabling (
) (so Denon still P1 on TV and RPI P1 on denon) then 1000 is WRONG address (and any later actions / results are consequently (more or less) wrong.
tell me, is even the 1xxx address ok? (so your cec tree ends up in Samsung TV in HDMI1)? if yes, is there a reason for that? Samsungs have generally HDMI1 port meant as DVI only - so not suited for HDMI communications.
what is also not quite ok is that Denon do not propagate itself at all (regardless of being On/Off, it MUST).
now when looking again at log I see the deattach/attach event is repeating 3 or 4 times within 5 seconds what looks like Samsung's standard time for OFF/ON cycle (what would be correct). the address is cycling between 1000 and 1100 and settles at 1100. but on HDMI signalling there should be just 1 or 2 those events and of course physaddr should not change (please check again that your HDMI port is not 1 at samsung).
((without the PA changes, libCEC will not resend "active source" command and TV will not turn ON then)). with this conditions libCEC is doing OK (if RPI is active source and one would reconnect it to other HDMI port, it has to send active source command again (to signal PA changed, and TV should change HDMI input). and TV should turn-on o "active source" command).
I remember I had also some troubles with calling GetPhysicalAddress() on HDMI_ATTACH event - considered it to remove - but having Samsung's TVs only also I can't be sure it is working/not working with other brands.
answer my questions and then based on them we can test libcec without the PA refresh on HDMI events.
edited mine config.txt (normally I use)
Code:
hdmi_force_hotplug=1
hdmi_ignore_cec_init=1
so I removed them (with any of them RPIs FW has not generated the HDMI_X events), rebooted and tested HDMI1, HDMIX, both via AVR and direct attachment to TV.
I get the same result as you get when RPI attached VIA another CEC switch (AVR). then PA loops xtimes through correct one (X100) and wrong (1000). that means when RPI fw is changing PA, it is reseting to 1000 first (and obviously this event should not be reported as it is just temporary step). we can report that to Popcornmix - although he is not with Broadcom anymore.
I could not replicate this wrong behaviour when directly attached to TV, nor even HDMI1. But when at HDMI1(DVI), RPI wasn't able to detect AVR device - so TV is obviously filtering some traffic on DVI port.
that means, put to config.txt
Code:
hdmi_force_hotplug=1
hdmi_ignore_cec_init=1
(and feel free to report this raspberry github issue tracker - although I have feeling you get answer about editing config.txt).
((and if the Denon has ARC sound routing, put it into HDMI2. then you can stick RPI into any other HDMI port (not DVI) and your TV will route the HDMI sound to AVR - according to "receiver on/off" setting in Samsung's CEC hotkey menu).