• David Härdeman's avatar
    [media] dib0700: NEC scancode cleanup · af3a4a9b
    David Härdeman authored
    the RC RX packet is defined as:
    
            struct dib0700_rc_response {
    		...
                                    u8 not_system;
                                    u8 system;
    		...
                    u8 data;
                    u8 not_data;
    
    The NEC protocol transmits in the order:
            system
            not_system
            data
            not_data
    
    Note that the code defines the NEC extended scancode as:
    
            scancode = be16_to_cpu(poll_reply->system16) << 8 | poll_reply->data;
    
    i.e.
    
            scancode = poll_reply->not_system << 16 |
                       poll_reply->system     << 8  |
                       poll_reply->data;
    
    Which, if the order *is* reversed, would mean that the scancode that
    gets defined is in reality:
    
            scancode = poll_reply->system     << 16 |
                       poll_reply->not_system << 8  |
                       poll_reply->data;
    
    Which is the same as the order used in drivers/media/rc/ir-nec-decoder.c.
    
    This patch changes the code to match my assumption (the generated scancode
    should, however, not change).
    
    [m.chehab@samsung.com: rebased and fixed the decoding error message]
    Signed-off-by: default avatarDavid Härdeman <david@hardeman.nu>
    CC: Patrick Boettcher <pboettcher@kernellabs.com>
    Tested-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
    af3a4a9b
dib0700_core.c 22.2 KB