• James Hogan's avatar
    [media] rc-main: Re-apply filter for no-op protocol change · 983c5bd2
    James Hogan authored
    Since commit da6e162d ("[media] rc-core: simplify sysfs code"), when
    the IR protocol is set using the sysfs interface to the same set of
    protocols that are already set, store_protocols() does not refresh the
    scancode filter with the new protocol, even if it has already called the
    change_protocol() callback successfully. This results in the filter
    being disabled in the hardware and not re-enabled until the filter is
    set again using sysfs.
    
    Fix in store_protocols() by still re-applying the filter whenever the
    change_protocol() driver callback succeeded.
    
    The problem can be reproduced with the img-ir driver by setting a
    filter, and then setting the protocol to the same protocol that is
    already set:
    $ echo nec > protocols
    $ echo 0xffff > filter_mask
    $ echo nec > protocols
    
    After this, messages which don't match the filter were still being
    received.
    
    Fixes: da6e162d ("[media] rc-core: simplify sysfs code")
    Reported-by: default avatarSifan Naeem <sifan.naeem@imgtec.com>
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: David Härdeman <david@hardeman.nu>
    Cc: <stable@vger.kernel.org> # v3.17+
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
    983c5bd2
rc-main.c 39.8 KB