Skip to content

Commit

Permalink
[media] mceusb: allow a per-model RC map
Browse files Browse the repository at this point in the history
Especially when used with Polaris boards, devices may have different
types of remotes shipped. So, we need a per-model rc-map.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
  • Loading branch information
Mauro Carvalho Chehab committed Oct 22, 2010
1 parent 37dbd3a commit 17c2b1f
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions drivers/media/IR/mceusb.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,7 @@ struct mceusb_model {
u32 tx_mask_inverted:1;
u32 is_polaris:1;

/*
* Allow specify a per-board extra data, like
* device names, and per-device rc_maps
*/
const char *rc_map; /* Allow specify a per-board map */
};

static const struct mceusb_model mceusb_model[] = {
Expand All @@ -147,6 +144,12 @@ static const struct mceusb_model mceusb_model[] = {
},
[POLARIS_EVK] = {
.is_polaris = 1,
/*
* In fact, the EVK is shipped without
* remotes, but we should have something handy,
* to allow testing it
*/
.rc_map = RC_MAP_RC5_HAUPPAUGE_NEW,
},
};

Expand Down Expand Up @@ -951,6 +954,7 @@ static struct input_dev *mceusb_init_input_dev(struct mceusb_dev *ir)
struct input_dev *idev;
struct ir_dev_props *props;
struct device *dev = ir->dev;
const char *rc_map = RC_MAP_RC6_MCE;
int ret = -ENODEV;

idev = input_allocate_device();
Expand Down Expand Up @@ -985,7 +989,10 @@ static struct input_dev *mceusb_init_input_dev(struct mceusb_dev *ir)

ir->props = props;

ret = ir_input_register(idev, RC_MAP_RC6_MCE, props, DRIVER_NAME);
if (mceusb_model[ir->model].rc_map)
rc_map = mceusb_model[ir->model].rc_map;

ret = ir_input_register(idev, rc_map, props, DRIVER_NAME);
if (ret < 0) {
dev_err(dev, "remote input device register failed\n");
goto irdev_failed;
Expand Down

0 comments on commit 17c2b1f

Please sign in to comment.