Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17c2b1fd authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] mceusb: allow a per-model RC map



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: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
parent 37dbd3a6
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -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[] = {
@@ -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,
	},
};

@@ -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();
@@ -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;