[PATCHv9 06/15] rc: Add HDMI CEC protocol handling
Hans Verkuil
hverkuil at xs4all.nl
Mon Oct 12 04:50:47 PDT 2015
On 10/06/2015 08:05 PM, Russell King - ARM Linux wrote:
> On Mon, Sep 07, 2015 at 03:44:35PM +0200, Hans Verkuil wrote:
>> From: Kamil Debski <kamil at wypas.org>
>>
>> Add handling of remote control events coming from the HDMI CEC bus.
>> This patch includes a new keymap that maps values found in the CEC
>> messages to the keys pressed and released. Also, a new protocol has
>> been added to the core.
>>
>> Signed-off-by: Kamil Debski <kamil at wypas.org>
>> Signed-off-by: Hans Verkuil <hans.verkuil at cisco.com>
>
> (Added Mauro)
>
> Hmm, how is rc-cec supposed to be loaded?
Is CONFIG_RC_MAP enabled in your config? Ran 'depmod -a'? (Sorry, I'm sure you've done
that, just checking...)
It's optional as I understand it, since you could configure the keytable from
userspace instead of using this module.
For the record (just tried it), it does load fine on my setup.
BTW, I am still on the fence whether using the kernel RC subsystem is the
right thing to do. There are a number of CEC RC commands that use extra parameters
that cannot be mapped to the RC API, so you still need to handle those manually.
I know Mauro would like to see this integration, but I am wondering whether it
really makes sense.
What is your opinion on this?
Perhaps I should split it off into a separate patch and keep it out from the initial
pull request once we're ready for that.
Regards,
Hans
>
> At boot, I see:
>
> [ 16.577704] IR keymap rc-cec not found
> [ 16.586675] Registered IR keymap rc-empty
> [ 16.591668] input: RC for dw_hdmi as /devices/soc0/soc/120000.hdmi/rc/rc1/input3
> [ 16.597769] rc1: RC for dw_hdmi as /devices/soc0/soc/120000.hdmi/rc/rc1
>
> Yet the rc-cec is a module in the filesystem, but it doesn't seem to
> be loaded automatically - even after the system has booted, the module
> hasn't been loaded.
>
> It looks like it _should_ be loaded, but this plainly isn't working:
>
> map = seek_rc_map(name);
> #ifdef MODULE
> if (!map) {
> int rc = request_module("%s", name);
> if (rc < 0) {
> printk(KERN_ERR "Couldn't load IR keymap %s\n", name);
> return NULL;
> }
> msleep(20); /* Give some time for IR to register */
>
> map = seek_rc_map(name);
> }
> #endif
> if (!map) {
> printk(KERN_ERR "IR keymap %s not found\n", name);
> return NULL;
> }
>
> Any ideas?
>
More information about the dri-devel
mailing list