diff for duplicates of <20170626211503.7471-3-f.fainelli@gmail.com> diff --git a/a/1.txt b/N1/1.txt index 084f599..4d4de17 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -11,8 +11,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/rtc/Kconfig | 11 ++ drivers/rtc/Makefile | 1 + - drivers/rtc/rtc-brcmstb-waketimer.c | 325 ++++++++++++++++++++++++++++++++= -++++ + drivers/rtc/rtc-brcmstb-waketimer.c | 325 ++++++++++++++++++++++++++++++++++++ 3 files changed, 337 insertions(+) create mode 100644 drivers/rtc/rtc-brcmstb-waketimer.c @@ -23,7 +22,7 @@ index 8d3b95728326..8e1aa67fe533 100644 @@ -197,6 +197,17 @@ config RTC_DRV_AC100 This driver can also be built as a module. If so, the module will be called rtc-ac100. -=20 + +config RTC_DRV_BRCMSTB + tristate "Broadcom STB wake-timer" + depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST @@ -42,23 +41,22 @@ diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile index 13857d2fce09..df89cac1f9ae 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile -@@ -36,6 +36,7 @@ obj-$(CONFIG_RTC_DRV_AT91RM9200)+=3D rtc-at91rm9200.o - obj-$(CONFIG_RTC_DRV_AT91SAM9) +=3D rtc-at91sam9.o - obj-$(CONFIG_RTC_DRV_AU1XXX) +=3D rtc-au1xxx.o - obj-$(CONFIG_RTC_DRV_BFIN) +=3D rtc-bfin.o -+obj-$(CONFIG_RTC_DRV_BRCMSTB) +=3D rtc-brcmstb-waketimer.o - obj-$(CONFIG_RTC_DRV_BQ32K) +=3D rtc-bq32k.o - obj-$(CONFIG_RTC_DRV_BQ4802) +=3D rtc-bq4802.o - obj-$(CONFIG_RTC_DRV_CMOS) +=3D rtc-cmos.o -diff --git a/drivers/rtc/rtc-brcmstb-waketimer.c b/drivers/rtc/rtc-brcmstb-= -waketimer.c +@@ -36,6 +36,7 @@ obj-$(CONFIG_RTC_DRV_AT91RM9200)+= rtc-at91rm9200.o + obj-$(CONFIG_RTC_DRV_AT91SAM9) += rtc-at91sam9.o + obj-$(CONFIG_RTC_DRV_AU1XXX) += rtc-au1xxx.o + obj-$(CONFIG_RTC_DRV_BFIN) += rtc-bfin.o ++obj-$(CONFIG_RTC_DRV_BRCMSTB) += rtc-brcmstb-waketimer.o + obj-$(CONFIG_RTC_DRV_BQ32K) += rtc-bq32k.o + obj-$(CONFIG_RTC_DRV_BQ4802) += rtc-bq4802.o + obj-$(CONFIG_RTC_DRV_CMOS) += rtc-cmos.o +diff --git a/drivers/rtc/rtc-brcmstb-waketimer.c b/drivers/rtc/rtc-brcmstb-waketimer.c new file mode 100644 index 000000000000..5dea6d0627d8 --- /dev/null +++ b/drivers/rtc/rtc-brcmstb-waketimer.c @@ -0,0 +1,325 @@ +/* -+ * Copyright =C2=A9 2014-2017 Broadcom ++ * Copyright © 2014-2017 Broadcom + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as @@ -108,8 +106,7 @@ index 000000000000..5dea6d0627d8 + +#define BRCMSTB_WKTMR_DEFAULT_FREQ 27000000 + -+static inline void brcmstb_waketmr_clear_alarm(struct brcmstb_waketmr *tim= -er) ++static inline void brcmstb_waketmr_clear_alarm(struct brcmstb_waketmr *timer) +{ + writel_relaxed(1, timer->base + BRCMSTB_WKTMR_EVENT); + (void)readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT); @@ -125,7 +122,7 @@ er) + +static irqreturn_t brcmstb_waketmr_irq(int irq, void *data) +{ -+ struct brcmstb_waketmr *timer =3D data; ++ struct brcmstb_waketmr *timer = data; + + pm_wakeup_event(timer->dev, 0); + @@ -143,20 +140,20 @@ er) + u32 tmp; + + do { -+ t->sec =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_COUNTER); -+ tmp =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_PRESCALER_VAL); -+ } while (tmp >=3D timer->rate); ++ t->sec = readl_relaxed(timer->base + BRCMSTB_WKTMR_COUNTER); ++ tmp = readl_relaxed(timer->base + BRCMSTB_WKTMR_PRESCALER_VAL); ++ } while (tmp >= timer->rate); + -+ t->pre =3D timer->rate - tmp; ++ t->pre = timer->rate - tmp; +} + +static int brcmstb_waketmr_prepare_suspend(struct brcmstb_waketmr *timer) +{ -+ struct device *dev =3D timer->dev; -+ int ret =3D 0; ++ struct device *dev = timer->dev; ++ int ret = 0; + + if (device_may_wakeup(dev)) { -+ ret =3D enable_irq_wake(timer->irq); ++ ret = enable_irq_wake(timer->irq); + if (ret) { + dev_err(dev, "failed to enable wake-up interrupt\n"); + return ret; @@ -172,10 +169,10 @@ er) +{ + struct brcmstb_waketmr *timer; + -+ timer =3D container_of(nb, struct brcmstb_waketmr, reboot_notifier); ++ timer = container_of(nb, struct brcmstb_waketmr, reboot_notifier); + + /* Set timer for cold boot */ -+ if (action =3D=3D SYS_POWER_OFF) ++ if (action == SYS_POWER_OFF) + brcmstb_waketmr_prepare_suspend(timer); + + return NOTIFY_DONE; @@ -184,7 +181,7 @@ er) +static int brcmstb_waketmr_gettime(struct device *dev, + struct rtc_time *tm) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + struct wktmr_time now; + + wktmr_read(timer, &now); @@ -197,7 +194,7 @@ er) +static int brcmstb_waketmr_settime(struct device *dev, + struct rtc_time *tm) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + unsigned long sec; + int ret; + @@ -211,19 +208,19 @@ er) +static int brcmstb_waketmr_getalarm(struct device *dev, + struct rtc_wkalrm *alarm) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + unsigned long sec; + u32 reg; + -+ sec =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_ALARM); -+ if (sec !=3D 0) { ++ sec = readl_relaxed(timer->base + BRCMSTB_WKTMR_ALARM); ++ if (sec != 0) { + /* Alarm is enabled */ -+ alarm->enabled =3D 1; ++ alarm->enabled = 1; + rtc_time_to_tm(sec, &alarm->time); + } + -+ reg =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT); -+ alarm->pending =3D !!(reg & 1); ++ reg = readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT); ++ alarm->pending = !!(reg & 1); + + return 0; +} @@ -231,13 +228,13 @@ er) +static int brcmstb_waketmr_setalarm(struct device *dev, + struct rtc_wkalrm *alarm) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + unsigned long sec; + + if (alarm->enabled) + rtc_tm_to_time(&alarm->time, &sec); + else -+ sec =3D 0; ++ sec = 0; + + brcmstb_waketmr_set_alarm(timer, sec); + @@ -254,30 +251,30 @@ er) + return 0; +} + -+static const struct rtc_class_ops brcmstb_waketmr_ops =3D { -+ .read_time =3D brcmstb_waketmr_gettime, -+ .set_time =3D brcmstb_waketmr_settime, -+ .read_alarm =3D brcmstb_waketmr_getalarm, -+ .set_alarm =3D brcmstb_waketmr_setalarm, -+ .alarm_irq_enable =3D brcmstb_waketmr_alarm_enable, ++static const struct rtc_class_ops brcmstb_waketmr_ops = { ++ .read_time = brcmstb_waketmr_gettime, ++ .set_time = brcmstb_waketmr_settime, ++ .read_alarm = brcmstb_waketmr_getalarm, ++ .set_alarm = brcmstb_waketmr_setalarm, ++ .alarm_irq_enable = brcmstb_waketmr_alarm_enable, +}; + +static int brcmstb_waketmr_probe(struct platform_device *pdev) +{ -+ struct device *dev =3D &pdev->dev; ++ struct device *dev = &pdev->dev; + struct brcmstb_waketmr *timer; + struct resource *res; + int ret; + -+ timer =3D devm_kzalloc(dev, sizeof(*timer), GFP_KERNEL); ++ timer = devm_kzalloc(dev, sizeof(*timer), GFP_KERNEL); + if (!timer) + return -ENOMEM; + + platform_set_drvdata(pdev, timer); -+ timer->dev =3D dev; ++ timer->dev = dev; + -+ res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); -+ timer->base =3D devm_ioremap_resource(dev, res); ++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ timer->base = devm_ioremap_resource(dev, res); + if (IS_ERR(timer->base)) + return PTR_ERR(timer->base); + @@ -288,32 +285,32 @@ er) + device_set_wakeup_capable(dev, true); + device_wakeup_enable(dev); + -+ timer->irq =3D platform_get_irq(pdev, 0); ++ timer->irq = platform_get_irq(pdev, 0); + if (timer->irq < 0) + return -ENODEV; + -+ timer->clk =3D devm_clk_get(dev, NULL); ++ timer->clk = devm_clk_get(dev, NULL); + if (!IS_ERR(timer->clk)) { -+ ret =3D clk_prepare_enable(timer->clk); ++ ret = clk_prepare_enable(timer->clk); + if (ret) + return ret; -+ timer->rate =3D clk_get_rate(timer->clk); ++ timer->rate = clk_get_rate(timer->clk); + if (!timer->rate) -+ timer->rate =3D BRCMSTB_WKTMR_DEFAULT_FREQ; ++ timer->rate = BRCMSTB_WKTMR_DEFAULT_FREQ; + } else { -+ timer->rate =3D BRCMSTB_WKTMR_DEFAULT_FREQ; -+ timer->clk =3D NULL; ++ timer->rate = BRCMSTB_WKTMR_DEFAULT_FREQ; ++ timer->clk = NULL; + } + -+ ret =3D devm_request_irq(dev, timer->irq, brcmstb_waketmr_irq, 0, ++ ret = devm_request_irq(dev, timer->irq, brcmstb_waketmr_irq, 0, + "brcmstb-waketimer", timer); + if (ret < 0) + return ret; + -+ timer->reboot_notifier.notifier_call =3D brcmstb_waketmr_reboot; ++ timer->reboot_notifier.notifier_call = brcmstb_waketmr_reboot; + register_reboot_notifier(&timer->reboot_notifier); + -+ timer->rtc =3D rtc_device_register("brcmstb-waketmr", dev, ++ timer->rtc = rtc_device_register("brcmstb-waketmr", dev, + &brcmstb_waketmr_ops, THIS_MODULE); + if (IS_ERR(timer->rtc)) { + dev_err(dev, "unable to register device\n"); @@ -328,7 +325,7 @@ er) + +static int brcmstb_waketmr_remove(struct platform_device *pdev) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(&pdev->dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(&pdev->dev); + + unregister_reboot_notifier(&timer->reboot_notifier); + rtc_device_unregister(timer->rtc); @@ -339,20 +336,20 @@ er) +#ifdef CONFIG_PM_SLEEP +static int brcmstb_waketmr_suspend(struct device *dev) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + + return brcmstb_waketmr_prepare_suspend(timer); +} + +static int brcmstb_waketmr_resume(struct device *dev) +{ -+ struct brcmstb_waketmr *timer =3D dev_get_drvdata(dev); ++ struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + int ret; + + if (!device_may_wakeup(dev)) + return 0; + -+ ret =3D disable_irq_wake(timer->irq); ++ ret = disable_irq_wake(timer->irq); + + brcmstb_waketmr_clear_alarm(timer); + @@ -363,18 +360,18 @@ er) +static SIMPLE_DEV_PM_OPS(brcmstb_waketmr_pm_ops, + brcmstb_waketmr_suspend, brcmstb_waketmr_resume); + -+static const struct of_device_id brcmstb_waketmr_of_match[] =3D { -+ { .compatible =3D "brcm,brcmstb-waketimer" }, ++static const struct of_device_id brcmstb_waketmr_of_match[] = { ++ { .compatible = "brcm,brcmstb-waketimer" }, + { /* sentinel */ }, +}; + -+static struct platform_driver brcmstb_waketmr_driver =3D { -+ .probe =3D brcmstb_waketmr_probe, -+ .remove =3D brcmstb_waketmr_remove, -+ .driver =3D { -+ .name =3D "brcmstb-waketimer", -+ .pm =3D &brcmstb_waketmr_pm_ops, -+ .of_match_table =3D of_match_ptr(brcmstb_waketmr_of_match), ++static struct platform_driver brcmstb_waketmr_driver = { ++ .probe = brcmstb_waketmr_probe, ++ .remove = brcmstb_waketmr_remove, ++ .driver = { ++ .name = "brcmstb-waketimer", ++ .pm = &brcmstb_waketmr_pm_ops, ++ .of_match_table = of_match_ptr(brcmstb_waketmr_of_match), + } +}; +module_platform_driver(brcmstb_waketmr_driver); @@ -383,17 +380,5 @@ er) +MODULE_AUTHOR("Brian Norris"); +MODULE_AUTHOR("Markus Mayer"); +MODULE_DESCRIPTION("Wake-up timer driver for STB chips"); ---=20 +-- 2.9.3 - ---=20 -You received this message because you are subscribed to "rtc-linux". -Membership options at http://groups.google.com/group/rtc-linux . -Please read http://groups.google.com/group/rtc-linux/web/checklist -before submitting a driver. ----=20 -You received this message because you are subscribed to the Google Groups "= -rtc-linux" group. -To unsubscribe from this group and stop receiving emails from it, send an e= -mail to rtc-linux+unsubscribe@googlegroups.com. -For more options, visit https://groups.google.com/d/optout. diff --git a/a/content_digest b/N1/content_digest index e0b935d..4684f32 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,6 +1,6 @@ "ref\020170626211503.7471-1-f.fainelli@gmail.com\0" "From\0Florian Fainelli <f.fainelli@gmail.com>\0" - "Subject\0[rtc-linux] [PATCH v2 2/2] rtc: brcmstb-waketimer: Add Broadcom STB wake-timer\0" + "Subject\0[PATCH v2 2/2] rtc: brcmstb-waketimer: Add Broadcom STB wake-timer\0" "Date\0Mon, 26 Jun 2017 14:15:03 -0700\0" "To\0linux-arm-kernel@lists.infradead.org\0" "Cc\0Brian Norris <computersforpeace@gmail.com>" @@ -30,8 +30,7 @@ "---\n" " drivers/rtc/Kconfig | 11 ++\n" " drivers/rtc/Makefile | 1 +\n" - " drivers/rtc/rtc-brcmstb-waketimer.c | 325 ++++++++++++++++++++++++++++++++=\n" - "++++\n" + " drivers/rtc/rtc-brcmstb-waketimer.c | 325 ++++++++++++++++++++++++++++++++++++\n" " 3 files changed, 337 insertions(+)\n" " create mode 100644 drivers/rtc/rtc-brcmstb-waketimer.c\n" "\n" @@ -42,7 +41,7 @@ "@@ -197,6 +197,17 @@ config RTC_DRV_AC100\n" " \t This driver can also be built as a module. If so, the module\n" " \t will be called rtc-ac100.\n" - "=20\n" + " \n" "+config RTC_DRV_BRCMSTB\n" "+\ttristate \"Broadcom STB wake-timer\"\n" "+\tdepends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST\n" @@ -61,23 +60,22 @@ "index 13857d2fce09..df89cac1f9ae 100644\n" "--- a/drivers/rtc/Makefile\n" "+++ b/drivers/rtc/Makefile\n" - "@@ -36,6 +36,7 @@ obj-$(CONFIG_RTC_DRV_AT91RM9200)+=3D rtc-at91rm9200.o\n" - " obj-$(CONFIG_RTC_DRV_AT91SAM9)\t+=3D rtc-at91sam9.o\n" - " obj-$(CONFIG_RTC_DRV_AU1XXX)\t+=3D rtc-au1xxx.o\n" - " obj-$(CONFIG_RTC_DRV_BFIN)\t+=3D rtc-bfin.o\n" - "+obj-$(CONFIG_RTC_DRV_BRCMSTB)\t+=3D rtc-brcmstb-waketimer.o\n" - " obj-$(CONFIG_RTC_DRV_BQ32K)\t+=3D rtc-bq32k.o\n" - " obj-$(CONFIG_RTC_DRV_BQ4802)\t+=3D rtc-bq4802.o\n" - " obj-$(CONFIG_RTC_DRV_CMOS)\t+=3D rtc-cmos.o\n" - "diff --git a/drivers/rtc/rtc-brcmstb-waketimer.c b/drivers/rtc/rtc-brcmstb-=\n" - "waketimer.c\n" + "@@ -36,6 +36,7 @@ obj-$(CONFIG_RTC_DRV_AT91RM9200)+= rtc-at91rm9200.o\n" + " obj-$(CONFIG_RTC_DRV_AT91SAM9)\t+= rtc-at91sam9.o\n" + " obj-$(CONFIG_RTC_DRV_AU1XXX)\t+= rtc-au1xxx.o\n" + " obj-$(CONFIG_RTC_DRV_BFIN)\t+= rtc-bfin.o\n" + "+obj-$(CONFIG_RTC_DRV_BRCMSTB)\t+= rtc-brcmstb-waketimer.o\n" + " obj-$(CONFIG_RTC_DRV_BQ32K)\t+= rtc-bq32k.o\n" + " obj-$(CONFIG_RTC_DRV_BQ4802)\t+= rtc-bq4802.o\n" + " obj-$(CONFIG_RTC_DRV_CMOS)\t+= rtc-cmos.o\n" + "diff --git a/drivers/rtc/rtc-brcmstb-waketimer.c b/drivers/rtc/rtc-brcmstb-waketimer.c\n" "new file mode 100644\n" "index 000000000000..5dea6d0627d8\n" "--- /dev/null\n" "+++ b/drivers/rtc/rtc-brcmstb-waketimer.c\n" "@@ -0,0 +1,325 @@\n" "+/*\n" - "+ * Copyright =C2=A9 2014-2017 Broadcom\n" + "+ * Copyright \302\251 2014-2017 Broadcom\n" "+ *\n" "+ * This program is free software; you can redistribute it and/or modify\n" "+ * it under the terms of the GNU General Public License version 2 as\n" @@ -127,8 +125,7 @@ "+\n" "+#define BRCMSTB_WKTMR_DEFAULT_FREQ\t27000000\n" "+\n" - "+static inline void brcmstb_waketmr_clear_alarm(struct brcmstb_waketmr *tim=\n" - "er)\n" + "+static inline void brcmstb_waketmr_clear_alarm(struct brcmstb_waketmr *timer)\n" "+{\n" "+\twritel_relaxed(1, timer->base + BRCMSTB_WKTMR_EVENT);\n" "+\t(void)readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT);\n" @@ -144,7 +141,7 @@ "+\n" "+static irqreturn_t brcmstb_waketmr_irq(int irq, void *data)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D data;\n" + "+\tstruct brcmstb_waketmr *timer = data;\n" "+\n" "+\tpm_wakeup_event(timer->dev, 0);\n" "+\n" @@ -162,20 +159,20 @@ "+\tu32 tmp;\n" "+\n" "+\tdo {\n" - "+\t\tt->sec =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_COUNTER);\n" - "+\t\ttmp =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_PRESCALER_VAL);\n" - "+\t} while (tmp >=3D timer->rate);\n" + "+\t\tt->sec = readl_relaxed(timer->base + BRCMSTB_WKTMR_COUNTER);\n" + "+\t\ttmp = readl_relaxed(timer->base + BRCMSTB_WKTMR_PRESCALER_VAL);\n" + "+\t} while (tmp >= timer->rate);\n" "+\n" - "+\tt->pre =3D timer->rate - tmp;\n" + "+\tt->pre = timer->rate - tmp;\n" "+}\n" "+\n" "+static int brcmstb_waketmr_prepare_suspend(struct brcmstb_waketmr *timer)\n" "+{\n" - "+\tstruct device *dev =3D timer->dev;\n" - "+\tint ret =3D 0;\n" + "+\tstruct device *dev = timer->dev;\n" + "+\tint ret = 0;\n" "+\n" "+\tif (device_may_wakeup(dev)) {\n" - "+\t\tret =3D enable_irq_wake(timer->irq);\n" + "+\t\tret = enable_irq_wake(timer->irq);\n" "+\t\tif (ret) {\n" "+\t\t\tdev_err(dev, \"failed to enable wake-up interrupt\\n\");\n" "+\t\t\treturn ret;\n" @@ -191,10 +188,10 @@ "+{\n" "+\tstruct brcmstb_waketmr *timer;\n" "+\n" - "+\ttimer =3D container_of(nb, struct brcmstb_waketmr, reboot_notifier);\n" + "+\ttimer = container_of(nb, struct brcmstb_waketmr, reboot_notifier);\n" "+\n" "+\t/* Set timer for cold boot */\n" - "+\tif (action =3D=3D SYS_POWER_OFF)\n" + "+\tif (action == SYS_POWER_OFF)\n" "+\t\tbrcmstb_waketmr_prepare_suspend(timer);\n" "+\n" "+\treturn NOTIFY_DONE;\n" @@ -203,7 +200,7 @@ "+static int brcmstb_waketmr_gettime(struct device *dev,\n" "+\t\t\t\t struct rtc_time *tm)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(dev);\n" "+\tstruct wktmr_time now;\n" "+\n" "+\twktmr_read(timer, &now);\n" @@ -216,7 +213,7 @@ "+static int brcmstb_waketmr_settime(struct device *dev,\n" "+\t\t\t\t struct rtc_time *tm)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(dev);\n" "+\tunsigned long sec;\n" "+\tint ret;\n" "+\n" @@ -230,19 +227,19 @@ "+static int brcmstb_waketmr_getalarm(struct device *dev,\n" "+\t\t\t\t struct rtc_wkalrm *alarm)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(dev);\n" "+\tunsigned long sec;\n" "+\tu32 reg;\n" "+\n" - "+\tsec =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_ALARM);\n" - "+\tif (sec !=3D 0) {\n" + "+\tsec = readl_relaxed(timer->base + BRCMSTB_WKTMR_ALARM);\n" + "+\tif (sec != 0) {\n" "+\t\t/* Alarm is enabled */\n" - "+\t\talarm->enabled =3D 1;\n" + "+\t\talarm->enabled = 1;\n" "+\t\trtc_time_to_tm(sec, &alarm->time);\n" "+\t}\n" "+\n" - "+\treg =3D readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT);\n" - "+\talarm->pending =3D !!(reg & 1);\n" + "+\treg = readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT);\n" + "+\talarm->pending = !!(reg & 1);\n" "+\n" "+\treturn 0;\n" "+}\n" @@ -250,13 +247,13 @@ "+static int brcmstb_waketmr_setalarm(struct device *dev,\n" "+\t\t\t\t struct rtc_wkalrm *alarm)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(dev);\n" "+\tunsigned long sec;\n" "+\n" "+\tif (alarm->enabled)\n" "+\t\trtc_tm_to_time(&alarm->time, &sec);\n" "+\telse\n" - "+\t\tsec =3D 0;\n" + "+\t\tsec = 0;\n" "+\n" "+\tbrcmstb_waketmr_set_alarm(timer, sec);\n" "+\n" @@ -273,30 +270,30 @@ "+\treturn 0;\n" "+}\n" "+\n" - "+static const struct rtc_class_ops brcmstb_waketmr_ops =3D {\n" - "+\t.read_time\t=3D brcmstb_waketmr_gettime,\n" - "+\t.set_time\t=3D brcmstb_waketmr_settime,\n" - "+\t.read_alarm\t=3D brcmstb_waketmr_getalarm,\n" - "+\t.set_alarm\t=3D brcmstb_waketmr_setalarm,\n" - "+\t.alarm_irq_enable =3D brcmstb_waketmr_alarm_enable,\n" + "+static const struct rtc_class_ops brcmstb_waketmr_ops = {\n" + "+\t.read_time\t= brcmstb_waketmr_gettime,\n" + "+\t.set_time\t= brcmstb_waketmr_settime,\n" + "+\t.read_alarm\t= brcmstb_waketmr_getalarm,\n" + "+\t.set_alarm\t= brcmstb_waketmr_setalarm,\n" + "+\t.alarm_irq_enable = brcmstb_waketmr_alarm_enable,\n" "+};\n" "+\n" "+static int brcmstb_waketmr_probe(struct platform_device *pdev)\n" "+{\n" - "+\tstruct device *dev =3D &pdev->dev;\n" + "+\tstruct device *dev = &pdev->dev;\n" "+\tstruct brcmstb_waketmr *timer;\n" "+\tstruct resource *res;\n" "+\tint ret;\n" "+\n" - "+\ttimer =3D devm_kzalloc(dev, sizeof(*timer), GFP_KERNEL);\n" + "+\ttimer = devm_kzalloc(dev, sizeof(*timer), GFP_KERNEL);\n" "+\tif (!timer)\n" "+\t\treturn -ENOMEM;\n" "+\n" "+\tplatform_set_drvdata(pdev, timer);\n" - "+\ttimer->dev =3D dev;\n" + "+\ttimer->dev = dev;\n" "+\n" - "+\tres =3D platform_get_resource(pdev, IORESOURCE_MEM, 0);\n" - "+\ttimer->base =3D devm_ioremap_resource(dev, res);\n" + "+\tres = platform_get_resource(pdev, IORESOURCE_MEM, 0);\n" + "+\ttimer->base = devm_ioremap_resource(dev, res);\n" "+\tif (IS_ERR(timer->base))\n" "+\t\treturn PTR_ERR(timer->base);\n" "+\n" @@ -307,32 +304,32 @@ "+\tdevice_set_wakeup_capable(dev, true);\n" "+\tdevice_wakeup_enable(dev);\n" "+\n" - "+\ttimer->irq =3D platform_get_irq(pdev, 0);\n" + "+\ttimer->irq = platform_get_irq(pdev, 0);\n" "+\tif (timer->irq < 0)\n" "+\t\treturn -ENODEV;\n" "+\n" - "+\ttimer->clk =3D devm_clk_get(dev, NULL);\n" + "+\ttimer->clk = devm_clk_get(dev, NULL);\n" "+\tif (!IS_ERR(timer->clk)) {\n" - "+\t\tret =3D clk_prepare_enable(timer->clk);\n" + "+\t\tret = clk_prepare_enable(timer->clk);\n" "+\t\tif (ret)\n" "+\t\t\treturn ret;\n" - "+\t\ttimer->rate =3D clk_get_rate(timer->clk);\n" + "+\t\ttimer->rate = clk_get_rate(timer->clk);\n" "+\t\tif (!timer->rate)\n" - "+\t\t\ttimer->rate =3D BRCMSTB_WKTMR_DEFAULT_FREQ;\n" + "+\t\t\ttimer->rate = BRCMSTB_WKTMR_DEFAULT_FREQ;\n" "+\t} else {\n" - "+\t\ttimer->rate =3D BRCMSTB_WKTMR_DEFAULT_FREQ;\n" - "+\t\ttimer->clk =3D NULL;\n" + "+\t\ttimer->rate = BRCMSTB_WKTMR_DEFAULT_FREQ;\n" + "+\t\ttimer->clk = NULL;\n" "+\t}\n" "+\n" - "+\tret =3D devm_request_irq(dev, timer->irq, brcmstb_waketmr_irq, 0,\n" + "+\tret = devm_request_irq(dev, timer->irq, brcmstb_waketmr_irq, 0,\n" "+\t\t\t \"brcmstb-waketimer\", timer);\n" "+\tif (ret < 0)\n" "+\t\treturn ret;\n" "+\n" - "+\ttimer->reboot_notifier.notifier_call =3D brcmstb_waketmr_reboot;\n" + "+\ttimer->reboot_notifier.notifier_call = brcmstb_waketmr_reboot;\n" "+\tregister_reboot_notifier(&timer->reboot_notifier);\n" "+\n" - "+\ttimer->rtc =3D rtc_device_register(\"brcmstb-waketmr\", dev,\n" + "+\ttimer->rtc = rtc_device_register(\"brcmstb-waketmr\", dev,\n" "+\t\t\t\t\t &brcmstb_waketmr_ops, THIS_MODULE);\n" "+\tif (IS_ERR(timer->rtc)) {\n" "+\t\tdev_err(dev, \"unable to register device\\n\");\n" @@ -347,7 +344,7 @@ "+\n" "+static int brcmstb_waketmr_remove(struct platform_device *pdev)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(&pdev->dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(&pdev->dev);\n" "+\n" "+\tunregister_reboot_notifier(&timer->reboot_notifier);\n" "+\trtc_device_unregister(timer->rtc);\n" @@ -358,20 +355,20 @@ "+#ifdef CONFIG_PM_SLEEP\n" "+static int brcmstb_waketmr_suspend(struct device *dev)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(dev);\n" "+\n" "+\treturn brcmstb_waketmr_prepare_suspend(timer);\n" "+}\n" "+\n" "+static int brcmstb_waketmr_resume(struct device *dev)\n" "+{\n" - "+\tstruct brcmstb_waketmr *timer =3D dev_get_drvdata(dev);\n" + "+\tstruct brcmstb_waketmr *timer = dev_get_drvdata(dev);\n" "+\tint ret;\n" "+\n" "+\tif (!device_may_wakeup(dev))\n" "+\t\treturn 0;\n" "+\n" - "+\tret =3D disable_irq_wake(timer->irq);\n" + "+\tret = disable_irq_wake(timer->irq);\n" "+\n" "+\tbrcmstb_waketmr_clear_alarm(timer);\n" "+\n" @@ -382,18 +379,18 @@ "+static SIMPLE_DEV_PM_OPS(brcmstb_waketmr_pm_ops,\n" "+\t\t\t brcmstb_waketmr_suspend, brcmstb_waketmr_resume);\n" "+\n" - "+static const struct of_device_id brcmstb_waketmr_of_match[] =3D {\n" - "+\t{ .compatible =3D \"brcm,brcmstb-waketimer\" },\n" + "+static const struct of_device_id brcmstb_waketmr_of_match[] = {\n" + "+\t{ .compatible = \"brcm,brcmstb-waketimer\" },\n" "+\t{ /* sentinel */ },\n" "+};\n" "+\n" - "+static struct platform_driver brcmstb_waketmr_driver =3D {\n" - "+\t.probe\t\t\t=3D brcmstb_waketmr_probe,\n" - "+\t.remove\t\t\t=3D brcmstb_waketmr_remove,\n" - "+\t.driver =3D {\n" - "+\t\t.name\t\t=3D \"brcmstb-waketimer\",\n" - "+\t\t.pm\t\t=3D &brcmstb_waketmr_pm_ops,\n" - "+\t\t.of_match_table\t=3D of_match_ptr(brcmstb_waketmr_of_match),\n" + "+static struct platform_driver brcmstb_waketmr_driver = {\n" + "+\t.probe\t\t\t= brcmstb_waketmr_probe,\n" + "+\t.remove\t\t\t= brcmstb_waketmr_remove,\n" + "+\t.driver = {\n" + "+\t\t.name\t\t= \"brcmstb-waketimer\",\n" + "+\t\t.pm\t\t= &brcmstb_waketmr_pm_ops,\n" + "+\t\t.of_match_table\t= of_match_ptr(brcmstb_waketmr_of_match),\n" "+\t}\n" "+};\n" "+module_platform_driver(brcmstb_waketmr_driver);\n" @@ -402,19 +399,7 @@ "+MODULE_AUTHOR(\"Brian Norris\");\n" "+MODULE_AUTHOR(\"Markus Mayer\");\n" "+MODULE_DESCRIPTION(\"Wake-up timer driver for STB chips\");\n" - "--=20\n" - "2.9.3\n" - "\n" - "--=20\n" - "You received this message because you are subscribed to \"rtc-linux\".\n" - "Membership options at http://groups.google.com/group/rtc-linux .\n" - "Please read http://groups.google.com/group/rtc-linux/web/checklist\n" - "before submitting a driver.\n" - "---=20\n" - "You received this message because you are subscribed to the Google Groups \"=\n" - "rtc-linux\" group.\n" - "To unsubscribe from this group and stop receiving emails from it, send an e=\n" - "mail to rtc-linux+unsubscribe@googlegroups.com.\n" - For more options, visit https://groups.google.com/d/optout. + "-- \n" + 2.9.3 -8f6add349cc19c05c7e3172fdb01e410ddd81799c45bdfdbd4dc5f9ae30db629 +7c344da329afa8a81e041b673ab5b2c8e8000a17ee160698356ecb9c463ba4bf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox