The patch titled Subject: clk: rockchip: add restart handler has been added to the -mm tree. Its filename is clk-rockchip-add-restart-handler.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/clk-rockchip-add-restart-handler.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/clk-rockchip-add-restart-handler.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Heiko Stübner <heiko@xxxxxxxxx> Subject: clk: rockchip: add restart handler Add infrastructure to write the correct value to the restart register and register the restart notifier for both rk3188 (including rk3066) and rk3288. Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx> Cc: Dmitry Eremin-Solenikov <dbaryshkov@xxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Jonas Jensen <jonas.jensen@xxxxxxxxx> Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Cc: Russell King <linux@xxxxxxxxxxxxxxxx> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx> Cc: Tomasz Figa <t.figa@xxxxxxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Cc: Wim Van Sebroeck <wim@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/clk/rockchip/clk-rk3188.c | 2 ++ drivers/clk/rockchip/clk-rk3288.c | 2 ++ drivers/clk/rockchip/clk.c | 25 +++++++++++++++++++++++++ drivers/clk/rockchip/clk.h | 1 + 4 files changed, 30 insertions(+) diff -puN drivers/clk/rockchip/clk-rk3188.c~clk-rockchip-add-restart-handler drivers/clk/rockchip/clk-rk3188.c --- a/drivers/clk/rockchip/clk-rk3188.c~clk-rockchip-add-restart-handler +++ a/drivers/clk/rockchip/clk-rk3188.c @@ -631,6 +631,8 @@ static void __init rk3188_common_clk_ini rockchip_register_softrst(np, 9, reg_base + RK2928_SOFTRST_CON(0), ROCKCHIP_SOFTRST_HIWORD_MASK); + + rockchip_register_restart_notifier(RK2928_GLB_SRST_FST); } static void __init rk3066a_clk_init(struct device_node *np) diff -puN drivers/clk/rockchip/clk-rk3288.c~clk-rockchip-add-restart-handler drivers/clk/rockchip/clk-rk3288.c --- a/drivers/clk/rockchip/clk-rk3288.c~clk-rockchip-add-restart-handler +++ a/drivers/clk/rockchip/clk-rk3288.c @@ -713,5 +713,7 @@ static void __init rk3288_clk_init(struc rockchip_register_softrst(np, 9, reg_base + RK3288_SOFTRST_CON(0), ROCKCHIP_SOFTRST_HIWORD_MASK); + + rockchip_register_restart_notifier(RK3288_GLB_SRST_FST); } CLK_OF_DECLARE(rk3288_cru, "rockchip,rk3288-cru", rk3288_clk_init); diff -puN drivers/clk/rockchip/clk.c~clk-rockchip-add-restart-handler drivers/clk/rockchip/clk.c --- a/drivers/clk/rockchip/clk.c~clk-rockchip-add-restart-handler +++ a/drivers/clk/rockchip/clk.c @@ -25,6 +25,7 @@ #include <linux/clk-provider.h> #include <linux/mfd/syscon.h> #include <linux/regmap.h> +#include <linux/reboot.h> #include "clk.h" /** @@ -242,3 +243,27 @@ void __init rockchip_clk_register_branch rockchip_clk_add_lookup(clk, list->id); } } + +static unsigned int reg_restart; +static int rockchip_restart_notify(struct notifier_block *this, + unsigned long mode, void *cmd) +{ + writel(0xfdb9, reg_base + reg_restart); + return NOTIFY_DONE; +} + +static struct notifier_block rockchip_restart_handler = { + .notifier_call = rockchip_restart_notify, + .priority = 128, +}; + +void __init rockchip_register_restart_notifier(unsigned int reg) +{ + int ret; + + reg_restart = reg; + ret = register_restart_handler(&rockchip_restart_handler); + if (ret) + pr_err("%s: cannot register restart handler, %d\n", + __func__, ret); +} diff -puN drivers/clk/rockchip/clk.h~clk-rockchip-add-restart-handler drivers/clk/rockchip/clk.h --- a/drivers/clk/rockchip/clk.h~clk-rockchip-add-restart-handler +++ a/drivers/clk/rockchip/clk.h @@ -329,6 +329,7 @@ void rockchip_clk_register_branches(stru unsigned int nr_clk); void rockchip_clk_register_plls(struct rockchip_pll_clock *pll_list, unsigned int nr_pll, int grf_lock_offset); +void rockchip_register_restart_notifier(unsigned int reg); #define ROCKCHIP_SOFTRST_HIWORD_MASK BIT(0) _ Patches currently in -mm which might be from heiko@xxxxxxxxx are kernel-add-support-for-kernel-restart-handler-call-chain.patch power-restart-call-machine_restart-instead-of-arm_pm_restart.patch arm64-support-restart-through-restart-handler-call-chain.patch arm-support-restart-through-restart-handler-call-chain.patch watchdog-moxart-register-restart-handler-with-kernel-restart-handler.patch watchdog-alim7101-register-restart-handler-with-kernel-restart-handler.patch watchdog-sunxi-register-restart-handler-with-kernel-restart-handler.patch arm-arm64-unexport-restart-handlers.patch watchdog-s3c2410-add-restart-handler.patch clk-samsung-register-restart-handlers-for-s3c2412-and-s3c2443.patch clk-rockchip-add-restart-handler.patch linux-next.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html