You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[media] rc: abstract access to allowed/enabled protocols
The allowed and enabled protocol masks need to be expanded to be per filter type in order to support wakeup filter protocol selection. To ease that process abstract access to the rc_dev::allowed_protos and rc_dev::enabled_protocols members with inline functions. Signed-off-by: James Hogan <james.hogan@imgtec.com> Reviewed-by: Antti Seppälä <a.seppala@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
b8c7d91508
commit
1a1934fab0
@@ -114,7 +114,7 @@ int picolcd_init_cir(struct picolcd_data *data, struct hid_report *report)
|
||||
|
||||
rdev->priv = data;
|
||||
rdev->driver_type = RC_DRIVER_IR_RAW;
|
||||
rdev->allowed_protos = RC_BIT_ALL;
|
||||
rc_set_allowed_protocols(rdev, RC_BIT_ALL);
|
||||
rdev->open = picolcd_cir_open;
|
||||
rdev->close = picolcd_cir_close;
|
||||
rdev->input_name = data->hdev->name;
|
||||
|
||||
@@ -88,7 +88,7 @@ int sms_ir_init(struct smscore_device_t *coredev)
|
||||
|
||||
dev->priv = coredev;
|
||||
dev->driver_type = RC_DRIVER_IR_RAW;
|
||||
dev->allowed_protos = RC_BIT_ALL;
|
||||
rc_set_allowed_protocols(dev, RC_BIT_ALL);
|
||||
dev->map_name = sms_get_board(board_id)->rc_codes;
|
||||
dev->driver_name = MODULE_NAME;
|
||||
|
||||
|
||||
@@ -431,8 +431,8 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||
* Initialize the other fields of rc_dev
|
||||
*/
|
||||
rc->map_name = ir->ir_codes;
|
||||
rc->allowed_protos = rc_type;
|
||||
rc->enabled_protocols = rc_type;
|
||||
rc_set_allowed_protocols(rc, rc_type);
|
||||
rc_set_enabled_protocols(rc, rc_type);
|
||||
if (!rc->driver_name)
|
||||
rc->driver_name = MODULE_NAME;
|
||||
|
||||
|
||||
@@ -346,7 +346,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
|
||||
}
|
||||
rc->dev.parent = &dev->pci->dev;
|
||||
rc->driver_type = driver_type;
|
||||
rc->allowed_protos = allowed_protos;
|
||||
rc_set_allowed_protocols(rc, allowed_protos);
|
||||
rc->priv = kernel_ir;
|
||||
rc->open = cx23885_input_ir_open;
|
||||
rc->close = cx23885_input_ir_close;
|
||||
|
||||
@@ -469,7 +469,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
|
||||
dev->timeout = 10 * 1000 * 1000; /* 10 ms */
|
||||
} else {
|
||||
dev->driver_type = RC_DRIVER_SCANCODE;
|
||||
dev->allowed_protos = rc_type;
|
||||
rc_set_allowed_protocols(dev, rc_type);
|
||||
}
|
||||
|
||||
ir->core = core;
|
||||
|
||||
@@ -784,7 +784,7 @@ static void ati_remote_rc_init(struct ati_remote *ati_remote)
|
||||
|
||||
rdev->priv = ati_remote;
|
||||
rdev->driver_type = RC_DRIVER_SCANCODE;
|
||||
rdev->allowed_protos = RC_BIT_OTHER;
|
||||
rc_set_allowed_protocols(rdev, RC_BIT_OTHER);
|
||||
rdev->driver_name = "ati_remote";
|
||||
|
||||
rdev->open = ati_remote_rc_open;
|
||||
|
||||
@@ -1059,7 +1059,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
|
||||
learning_mode_force = false;
|
||||
|
||||
rdev->driver_type = RC_DRIVER_IR_RAW;
|
||||
rdev->allowed_protos = RC_BIT_ALL;
|
||||
rc_set_allowed_protocols(rdev, RC_BIT_ALL);
|
||||
rdev->priv = dev;
|
||||
rdev->open = ene_open;
|
||||
rdev->close = ene_close;
|
||||
|
||||
@@ -541,7 +541,7 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
|
||||
/* Set up the rc device */
|
||||
rdev->priv = fintek;
|
||||
rdev->driver_type = RC_DRIVER_IR_RAW;
|
||||
rdev->allowed_protos = RC_BIT_ALL;
|
||||
rc_set_allowed_protocols(rdev, RC_BIT_ALL);
|
||||
rdev->open = fintek_open;
|
||||
rdev->close = fintek_close;
|
||||
rdev->input_name = FINTEK_DESCRIPTION;
|
||||
|
||||
@@ -145,9 +145,9 @@ static int gpio_ir_recv_probe(struct platform_device *pdev)
|
||||
rcdev->dev.parent = &pdev->dev;
|
||||
rcdev->driver_name = GPIO_IR_DRIVER_NAME;
|
||||
if (pdata->allowed_protos)
|
||||
rcdev->allowed_protos = pdata->allowed_protos;
|
||||
rc_set_allowed_protocols(rcdev, pdata->allowed_protos);
|
||||
else
|
||||
rcdev->allowed_protos = RC_BIT_ALL;
|
||||
rc_set_allowed_protocols(rcdev, RC_BIT_ALL);
|
||||
rcdev->map_name = pdata->map_name ?: RC_MAP_EMPTY;
|
||||
|
||||
gpio_dev->rcdev = rcdev;
|
||||
|
||||
@@ -495,7 +495,7 @@ static int iguanair_probe(struct usb_interface *intf,
|
||||
usb_to_input_id(ir->udev, &rc->input_id);
|
||||
rc->dev.parent = &intf->dev;
|
||||
rc->driver_type = RC_DRIVER_IR_RAW;
|
||||
rc->allowed_protos = RC_BIT_ALL;
|
||||
rc_set_allowed_protocols(rc, RC_BIT_ALL);
|
||||
rc->priv = ir;
|
||||
rc->open = iguanair_open;
|
||||
rc->close = iguanair_close;
|
||||
|
||||
@@ -1017,7 +1017,7 @@ static int imon_ir_change_protocol(struct rc_dev *rc, u64 *rc_type)
|
||||
unsigned char ir_proto_packet[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86 };
|
||||
|
||||
if (*rc_type && !(*rc_type & rc->allowed_protos))
|
||||
if (*rc_type && !rc_protocols_allowed(rc, *rc_type))
|
||||
dev_warn(dev, "Looks like you're trying to use an IR protocol "
|
||||
"this device does not support\n");
|
||||
|
||||
@@ -1867,7 +1867,8 @@ static struct rc_dev *imon_init_rdev(struct imon_context *ictx)
|
||||
|
||||
rdev->priv = ictx;
|
||||
rdev->driver_type = RC_DRIVER_SCANCODE;
|
||||
rdev->allowed_protos = RC_BIT_OTHER | RC_BIT_RC6_MCE; /* iMON PAD or MCE */
|
||||
/* iMON PAD or MCE */
|
||||
rc_set_allowed_protocols(rdev, RC_BIT_OTHER | RC_BIT_RC6_MCE);
|
||||
rdev->change_protocol = imon_ir_change_protocol;
|
||||
rdev->driver_name = MOD_NAME;
|
||||
|
||||
@@ -1880,7 +1881,7 @@ static struct rc_dev *imon_init_rdev(struct imon_context *ictx)
|
||||
|
||||
if (ictx->product == 0xffdc) {
|
||||
imon_get_ffdc_type(ictx);
|
||||
rdev->allowed_protos = ictx->rc_type;
|
||||
rc_set_allowed_protocols(rdev, ictx->rc_type);
|
||||
}
|
||||
|
||||
imon_set_display_type(ictx);
|
||||
|
||||
@@ -47,7 +47,7 @@ static int ir_jvc_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
{
|
||||
struct jvc_dec *data = &dev->raw->jvc;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_JVC))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_JVC))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
|
||||
@@ -35,7 +35,7 @@ static int ir_lirc_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
struct lirc_codec *lirc = &dev->raw->lirc;
|
||||
int sample;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_LIRC))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_LIRC))
|
||||
return 0;
|
||||
|
||||
if (!dev->raw->lirc.drv || !dev->raw->lirc.drv->rbuf)
|
||||
|
||||
@@ -216,7 +216,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
unsigned long delay;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_MCE_KBD))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_MCE_KBD))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
|
||||
@@ -52,7 +52,7 @@ static int ir_nec_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u8 address, not_address, command, not_command;
|
||||
bool send_32bits = false;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_NEC))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_NEC))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
|
||||
@@ -256,7 +256,7 @@ int ir_raw_event_register(struct rc_dev *dev)
|
||||
return -ENOMEM;
|
||||
|
||||
dev->raw->dev = dev;
|
||||
dev->enabled_protocols = ~0;
|
||||
rc_set_enabled_protocols(dev, ~0);
|
||||
rc = kfifo_alloc(&dev->raw->kfifo,
|
||||
sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE,
|
||||
GFP_KERNEL);
|
||||
|
||||
@@ -52,7 +52,7 @@ static int ir_rc5_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u8 toggle;
|
||||
u32 scancode;
|
||||
|
||||
if (!(dev->enabled_protocols & (RC_BIT_RC5 | RC_BIT_RC5X)))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_RC5 | RC_BIT_RC5X))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
@@ -128,7 +128,7 @@ again:
|
||||
if (data->wanted_bits == RC5X_NBITS) {
|
||||
/* RC5X */
|
||||
u8 xdata, command, system;
|
||||
if (!(dev->enabled_protocols & RC_BIT_RC5X)) {
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_RC5X)) {
|
||||
data->state = STATE_INACTIVE;
|
||||
return 0;
|
||||
}
|
||||
@@ -145,7 +145,7 @@ again:
|
||||
} else {
|
||||
/* RC5 */
|
||||
u8 command, system;
|
||||
if (!(dev->enabled_protocols & RC_BIT_RC5)) {
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_RC5)) {
|
||||
data->state = STATE_INACTIVE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ static int ir_rc5_sz_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u8 toggle, command, system;
|
||||
u32 scancode;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_RC5_SZ))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_RC5_SZ))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
|
||||
@@ -89,9 +89,9 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
u8 toggle;
|
||||
|
||||
if (!(dev->enabled_protocols &
|
||||
(RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 |
|
||||
RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE)))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 |
|
||||
RC_BIT_RC6_6A_24 | RC_BIT_RC6_6A_32 |
|
||||
RC_BIT_RC6_MCE))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
|
||||
@@ -58,7 +58,7 @@ static int ir_sanyo_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
u8 address, command, not_command;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_SANYO))
|
||||
if (!rc_protocols_enabled(dev, RC_BIT_SANYO))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user