media: rc: Convert timers to use timer_setup()
Subsystems (6)
PATCH 1/1 media: rc: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly.
Cc Maxim Levitsky <[email protected]>
Cc Mauro Carvalho Chehab <[email protected]>
Cc Sean Young <[email protected]>
Cc James Hogan <[email protected]>
Cc Hans Verkuil <[email protected]>
Cc "Antti Seppälä" <[email protected]>
Cc Heiner Kallweit <[email protected]>
Cc "David Härdeman" <[email protected]>
Cc Andi Shyti <[email protected]>
Signed-off-by Kees Cook <[email protected]>
--- drivers/media/rc/ene_ir.c | 7 +++---- drivers/media/rc/igorplugusb.c | 6 +++--- drivers/media/rc/img-ir/img-ir-hw.c | 13 ++++++------- drivers/media/rc/img-ir/img-ir-raw.c | 6 +++--- drivers/media/rc/imon.c | 7 +++---- drivers/media/rc/ir-mce_kbd-decoder.c | 7 +++---- drivers/media/rc/rc-ir-raw.c | 8 ++++---- drivers/media/rc/rc-main.c | 7 +++---- drivers/media/rc/sir_ir.c | 4 ++-- 9 files changed, 30 insertions(+), 35 deletions(-)
drivers/media/rc/ene_ir.c +3 -4
@@ -670,9 +670,9 @@ static void ene_tx_sample(struct ene_device *dev) }/* timer to simulate tx done interrupt */ -static void ene_tx_irqsim (unsigned long data) +static void ene_tx_irqsim (struct timer_list *t) { -struct ene_device *dev = (struct ene_device *)data; +struct ene_device *dev =from_timer (dev, t, tx_sim_timer);unsigned long flags;spin_lock_irqsave (&dev->hw_lock, flags);
@@ -1045,8 +1045,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)if (!dev->hw_learning_and_tx_capable && txsim) { dev->hw_learning_and_tx_capable = true; -setup_timer (&dev->tx_sim_timer, ene_tx_irqsim, - (long unsigned int )dev); +timer_setup (&dev->tx_sim_timer, ene_tx_irqsim,0 );pr_warn ("Simulation of TX activated\n" ); }
drivers/media/rc/igorplugusb.c +3 -3
@@ -137,9 +137,9 @@ static void igorplugusb_cmd(struct igorplugusb *ir, int cmd)dev_err (ir->dev,"submit urb failed: %d" , ret); } -static void igorplugusb_timer (unsigned long data) +static void igorplugusb_timer (struct timer_list *t) { -struct igorplugusb *ir = (struct igorplugusb *)data; +struct igorplugusb *ir =from_timer (ir, t, timer);igorplugusb_cmd (ir,GET_INFRACODE ); }
@@ -174,7 +174,7 @@ static int igorplugusb_probe(struct usb_interface *intf, ir->dev = &intf->dev; -setup_timer (&ir->timer, igorplugusb_timer, (unsigned long )ir); +timer_setup (&ir->timer, igorplugusb_timer,0 ); ir->request.bRequest =GET_INFRACODE ; ir->request.bRequestType =USB_TYPE_VENDOR |USB_DIR_IN ;
drivers/media/rc/img-ir/img-ir-hw.c +6 -7
@@ -867,9 +867,9 @@ static void img_ir_handle_data(struct img_ir_priv *priv, u32 len, u64 raw) }/* timer function to end waiting for repeat. */ -static void img_ir_end_timer (unsigned long arg) +static void img_ir_end_timer (struct timer_list *t) { -struct img_ir_priv *priv = (struct img_ir_priv *)arg; +struct img_ir_priv *priv =from_timer (priv, t, hw.end_timer);spin_lock_irq (&priv->lock);img_ir_end_repeat (priv);
@@ -881,9 +881,9 @@ static void img_ir_end_timer(unsigned long arg)* cleared when invalid interrupts were generated due to a quirk in the * img-ir decoder. */ -static void img_ir_suspend_timer (unsigned long arg) +static void img_ir_suspend_timer (struct timer_list *t) { -struct img_ir_priv *priv = (struct img_ir_priv *)arg; +struct img_ir_priv *priv =from_timer (priv, t, hw.suspend_timer);spin_lock_irq (&priv->lock);/*
@@ -1055,9 +1055,8 @@ int img_ir_probe_hw(struct img_ir_priv *priv)img_ir_probe_hw_caps (priv);/* Set up the end timer */ -setup_timer (&hw->end_timer, img_ir_end_timer, (unsigned long )priv); -setup_timer (&hw->suspend_timer, img_ir_suspend_timer, - (unsigned long )priv); +timer_setup (&hw->end_timer, img_ir_end_timer,0 ); +timer_setup (&hw->suspend_timer, img_ir_suspend_timer,0 );/* Register a clock notifier */ if (!IS_ERR (priv->clk)) {
drivers/media/rc/img-ir/img-ir-raw.c +3 -3
@@ -67,9 +67,9 @@ void img_ir_isr_raw(struct img_ir_priv *priv, u32 irq_status)* order to be assured of the final space. If there are no edges for a certain * time we use this timer to emit a final sample to satisfy them. */ -static void img_ir_echo_timer (unsigned long arg) +static void img_ir_echo_timer (struct timer_list *t) { -struct img_ir_priv *priv = (struct img_ir_priv *)arg; +struct img_ir_priv *priv =from_timer (priv, t, raw.timer);spin_lock_irq (&priv->lock);
@@ -107,7 +107,7 @@ int img_ir_probe_raw(struct img_ir_priv *priv)int error;/* Set up the echo timer */ -setup_timer (&raw->timer, img_ir_echo_timer, (unsigned long )priv); +timer_setup (&raw->timer, img_ir_echo_timer,0 );/* Allocate raw decoder */ raw->rdev = rdev =rc_allocate_device (RC_DRIVER_IR_RAW );
drivers/media/rc/imon.c +3 -4
@@ -1090,9 +1090,9 @@ static void usb_tx_callback(struct urb *urb)/** * report touchscreen input */ -static void imon_touch_display_timeout (unsigned long data) +static void imon_touch_display_timeout (struct timer_list *t) { -struct imon_context *ictx = (struct imon_context *)data; +struct imon_context *ictx =from_timer (ictx, t, ttimer);if (ictx->display_type !=IMON_DISPLAY_TYPE_VGA )return ;
@@ -2411,8 +2411,7 @@ static struct imon_context *imon_init_intf1(struct usb_interface *intf,mutex_lock (&ictx->lock);if (ictx->display_type ==IMON_DISPLAY_TYPE_VGA ) { -setup_timer (&ictx->ttimer, imon_touch_display_timeout, - (unsigned long )ictx); +timer_setup (&ictx->ttimer, imon_touch_display_timeout,0 ); } ictx->usbdev_intf1 =usb_get_dev (interface_to_usbdev (intf));
drivers/media/rc/ir-mce_kbd-decoder.c +3 -4
@@ -115,9 +115,9 @@ static unsigned char kbd_keycodes[256] = { KEY_RESERVED }; -static void mce_kbd_rx_timeout (unsigned long data) +static void mce_kbd_rx_timeout (struct timer_list *t) { -struct mce_kbd_dec *mce_kbd = (struct mce_kbd_dec *)data; +struct mce_kbd_dec *mce_kbd =from_timer (mce_kbd, t, rx_timeout);int i;unsigned char maskcode;
@@ -389,8 +389,7 @@ static int ir_mce_kbd_register(struct rc_dev *dev)set_bit (EV_MSC , idev->evbit);set_bit (MSC_SCAN , idev->mscbit); -setup_timer (&mce_kbd->rx_timeout, mce_kbd_rx_timeout, - (unsigned long )mce_kbd); +timer_setup (&mce_kbd->rx_timeout, mce_kbd_rx_timeout,0 );input_set_drvdata (idev, mce_kbd);
drivers/media/rc/rc-ir-raw.c +4 -4
@@ -471,9 +471,10 @@ int ir_raw_encode_scancode(enum rc_proto protocol, u32 scancode, }EXPORT_SYMBOL (ir_raw_encode_scancode); -static void edge_handle (unsigned long arg) +static void edge_handle (struct timer_list *t) { -struct rc_dev *dev = (struct rc_dev *)arg; +struct ir_raw_event_ctrl *raw =from_timer (raw, t, edge_handle); +struct rc_dev *dev = raw->dev;ktime_t interval =ktime_sub (ktime_get (), dev->raw->last_event);if (ktime_to_ns (interval) >= dev->timeout) {
@@ -513,8 +514,7 @@ int ir_raw_event_prepare(struct rc_dev *dev) dev->raw->dev = dev; dev->change_protocol = change_protocol; -setup_timer (&dev->raw->edge_handle, edge_handle, - (unsigned long )dev); +timer_setup (&dev->raw->edge_handle, edge_handle,0 );INIT_KFIFO (dev->raw->kfifo);return 0 ;
drivers/media/rc/rc-main.c +3 -4
@@ -630,9 +630,9 @@ EXPORT_SYMBOL_GPL(rc_keyup);* This routine will generate a keyup event some time after a keydown event * is generated when no further activity has been detected. */ -static void ir_timer_keyup (unsigned long cookie) +static void ir_timer_keyup (struct timer_list *t) { -struct rc_dev *dev = (struct rc_dev *)cookie; +struct rc_dev *dev =from_timer (dev, t, timer_keyup);unsigned long flags;/*
@@ -1570,8 +1570,7 @@ struct rc_dev *rc_allocate_device(enum rc_driver_type type) dev->input_dev->setkeycode = ir_setkeycode;input_set_drvdata (dev->input_dev, dev); -setup_timer (&dev->timer_keyup, ir_timer_keyup, - (unsigned long )dev); +timer_setup (&dev->timer_keyup, ir_timer_keyup,0 );spin_lock_init (&dev->rc_map.lock);spin_lock_init (&dev->keylock);
drivers/media/rc/sir_ir.c +2 -2
@@ -120,7 +120,7 @@ static void add_read_queue(int flag, unsigned long val) }/* SECTION: Hardware */ -static void sir_timeout (unsigned long data) +static void sir_timeout (struct timer_list *unused) {/* * if last received signal was a pulse, but receiving stopped
@@ -321,7 +321,7 @@ static int sir_ir_probe(struct platform_device *dev) rcdev->timeout =IR_DEFAULT_TIMEOUT ; rcdev->dev.parent = &sir_ir_dev->dev; -setup_timer (&timerlist, sir_timeout,0 ); +timer_setup (&timerlist, sir_timeout,0 );/* get I/O port access and IRQ line */ if (!devm_request_region (&sir_ir_dev->dev, io,8 ,KBUILD_MODNAME )) {
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security