OSDN Git Service

PM / devfreq: tegra: Set drvdata before enabling the irq
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Tue, 17 Mar 2015 09:36:16 +0000 (10:36 +0100)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Tue, 31 Mar 2015 04:17:14 +0000 (13:17 +0900)
To avoid a race in which the interrupt will be handled before the
drvdata has been set up.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
drivers/devfreq/tegra-devfreq.c

index 5ba35cc..7fa1bd4 100644 (file)
@@ -697,6 +697,8 @@ static int tegra_devfreq_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
+       platform_set_drvdata(pdev, tegra);
+
        err = devm_request_threaded_irq(&pdev->dev, irq, actmon_isr,
                                        actmon_thread_isr, IRQF_SHARED,
                                        "tegra-devfreq", tegra);
@@ -705,8 +707,6 @@ static int tegra_devfreq_probe(struct platform_device *pdev)
                return err;
        }
 
-       platform_set_drvdata(pdev, tegra);
-
        tegra_devfreq_profile.initial_freq = clk_get_rate(tegra->emc_clock);
        tegra->devfreq = devm_devfreq_add_device(&pdev->dev,
                                                 &tegra_devfreq_profile,