OSDN Git Service

[media] media: rc: change 32bit NEC scancode format
authorJames Hogan <james.hogan@imgtec.com>
Fri, 17 Jan 2014 13:58:50 +0000 (10:58 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 6 Feb 2014 11:20:07 +0000 (09:20 -0200)
commit18bc17448147e93f31cc9b1a83be49f1224657b2
tree3e80fccb07b65eb43faefa75d6518f96b48bfdaa
parent00942d1a1bd93ac108c1b92d504c568a37be1833
[media] media: rc: change 32bit NEC scancode format

Change 32bit NEC scancode format (used by Apple and TiVo remotes) to
encode the data with the correct bit order. Previously the raw bits were
used without being bit reversed, now each 16bit half is bit reversed
compared to before.

So for the raw NEC data:
  (LSB/First) 0xAAaaCCcc (MSB/Last)
(where traditionally AA=address, aa=~address, CC=command, cc=~command)

We now generate the scancodes:
  (MSB) 0x0000AACC (LSB) (normal NEC)
  (MSB) 0x00AAaaCC (LSB) (extended NEC, address check wrong)
  (MSB) 0xaaAAccCC (LSB) (32-bit NEC, command check wrong)

Note that the address byte order in 32-bit NEC scancodes is different to
that of the extended NEC scancodes. I chose this way as it maintains the
order of the bits in the address/command fields, and CC is clearly
intended to be the LSB of the command if the TiVo codes are anything to
go by so it makes sense for AA to also be the LSB.

The TiVo keymap is updated accordingly.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: Jarod Wilson <jarod@redhat.com>
Cc: linux-media@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/rc/ir-nec-decoder.c
drivers/media/rc/keymaps/rc-tivo.c