[PATCHv9 07/15] cec: add HDMI CEC framework

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Oct 15 10:34:04 PDT 2015


On Wed, Oct 14, 2015 at 08:29:44AM +0200, Hans Verkuil wrote:
> On 10/14/2015 12:51 AM, Russell King - ARM Linux wrote:
> > On Mon, Oct 12, 2015 at 01:35:54PM +0200, Hans Verkuil wrote:
> >> On 10/06/2015 07:06 PM, Russell King - ARM Linux wrote:
> >>> Surely you aren't proposing that drivers should write directly to
> >>> adap->phys_addr without calling some notification function that the
> >>> physical address has changed?
> >>
> >> Userspace is informed through CEC_EVENT_STATE_CHANGE when the adapter is
> >> enabled/disabled. When the adapter is enabled and CEC_CAP_PHYS_ADDR is
> >> not set (i.e. the kernel takes care of this), then calling CEC_ADAP_G_PHYS_ADDR
> >> returns the new physical address.
> > 
> > Okay, so when I see the EDID arrive, I should be doing:
> > 
> >                 phys = parse_hdmi_addr(block->edid);
> >                 cec->adap->phys_addr = phys;
> >                 cec_enable(cec->adap, true);
> > 
> > IOW, you _are_ expecting adap->phys_addr to be written, but only while
> > the adapter is disabled?
> 
> Right.
> 
> And when the hotplug goes down you should call cec_enable(cec->adap, false).
> While the adapter is disabled, CEC_ADAP_G_PHYS_ADDR will always return
> CEC_PHYS_ADDR_INVALID regardless of the cec->adap->phys_addr value.

There seems to be a few bugs.  Is there a way to monitor (in a similar
way to tcpdump) the activity on the bus?

What I'm seeing is that if the TV is switched to the appropriate AV
input, and then I do:

	cec-ctl --playback

to use the kernel to pick up a playback logical address, I then can't
use the remote control media playback keys until I switch away from
the AV input and back to it.

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.


More information about the dri-devel mailing list