]> git.baikalelectronics.ru Git - kernel.git/commitdiff
arm: pxa: Convert timers to use timer_setup()
authorKees Cook <keescook@chromium.org>
Wed, 11 Oct 2017 00:13:01 +0000 (17:13 -0700)
committerKees Cook <keescook@chromium.org>
Thu, 2 Nov 2017 22:50:35 +0000 (15:50 -0700)
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. Adds a static variable to hold the
interrupt private data pointer.

Cc: Daniel Mack <daniel@zonque.org>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Russell King <linux@armlinux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Kees Cook <keescook@chromium.org>
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/sharpsl_pm.c

index d6159f8ef0c245405d5b0c00d32497562f280a05..df45682e99a54e0b44d4c34cd2632e7b7f78c358 100644 (file)
@@ -381,14 +381,11 @@ static struct pxafb_mach_info sharp_lm8v31 = {
 
 #define        MMC_POLL_RATE           msecs_to_jiffies(1000)
 
-static void lubbock_mmc_poll(unsigned long);
 static irq_handler_t mmc_detect_int;
+static void *mmc_detect_int_data;
+static struct timer_list mmc_timer;
 
-static struct timer_list mmc_timer = {
-       .function       = lubbock_mmc_poll,
-};
-
-static void lubbock_mmc_poll(unsigned long data)
+static void lubbock_mmc_poll(struct timer_list *unused)
 {
        unsigned long flags;
 
@@ -401,7 +398,7 @@ static void lubbock_mmc_poll(unsigned long data)
        if (LUB_IRQ_SET_CLR & (1 << 0))
                mod_timer(&mmc_timer, jiffies + MMC_POLL_RATE);
        else {
-               (void) mmc_detect_int(LUBBOCK_SD_IRQ, (void *)data);
+               (void) mmc_detect_int(LUBBOCK_SD_IRQ, mmc_detect_int_data);
                enable_irq(LUBBOCK_SD_IRQ);
        }
 }
@@ -421,8 +418,8 @@ static int lubbock_mci_init(struct device *dev,
 {
        /* detect card insert/eject */
        mmc_detect_int = detect_int;
-       init_timer(&mmc_timer);
-       mmc_timer.data = (unsigned long) data;
+       mmc_detect_int_data = data;
+       timer_setup(&mmc_timer, lubbock_mmc_poll, 0);
        return request_irq(LUBBOCK_SD_IRQ, lubbock_detect_int,
                           0, "lubbock-sd-detect", data);
 }
index 249b7bd5fbc4cf1c2b4b94dbb7a163f9b62a9b39..398ba9ba26327c9cb415282ca94bfb88802dbebf 100644 (file)
@@ -341,7 +341,7 @@ static void sharpsl_charge_toggle(struct work_struct *private_)
        sharpsl_pm.charge_start_time = jiffies;
 }
 
-static void sharpsl_ac_timer(unsigned long data)
+static void sharpsl_ac_timer(struct timer_list *unused)
 {
        int acin = sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN);
 
@@ -366,7 +366,7 @@ static irqreturn_t sharpsl_ac_isr(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-static void sharpsl_chrg_full_timer(unsigned long data)
+static void sharpsl_chrg_full_timer(struct timer_list *unused)
 {
        dev_dbg(sharpsl_pm.dev, "Charge Full at time: %lx\n", jiffies);
 
@@ -841,9 +841,9 @@ static int sharpsl_pm_probe(struct platform_device *pdev)
        sharpsl_pm.charge_mode = CHRG_OFF;
        sharpsl_pm.flags = 0;
 
-       setup_timer(&sharpsl_pm.ac_timer, sharpsl_ac_timer, 0UL);
+       timer_setup(&sharpsl_pm.ac_timer, sharpsl_ac_timer, 0);
 
-       setup_timer(&sharpsl_pm.chrg_full_timer, sharpsl_chrg_full_timer, 0UL);
+       timer_setup(&sharpsl_pm.chrg_full_timer, sharpsl_chrg_full_timer, 0);
 
        led_trigger_register_simple("sharpsl-charge", &sharpsl_charge_led_trigger);