diff for duplicates of <20131031063000.108307682@linux.com> diff --git a/a/1.txt b/N1/1.txt index 3f44e9e..585dc22 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,121 +1,3 @@ -From: Domenico Andreoli <domenico.andreoli@linux.com> - -Proof of concept: bcm2835 as provider of reset hooks. - -Cc: Stephen Warren <swarren@wwwdotorg.org> -Cc: Russell King <linux@arm.linux.org.uk> -Cc: Arnd Bergmann <arnd@arndb.de> -Cc: Olof Johansson <olof@lixom.net> -Cc: linux-arm-kernel@lists.infradead.org -Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> ---- - arch/arm/mach-bcm2835/Kconfig | 1 + - arch/arm/mach-bcm2835/bcm2835.c | 30 ++++++++++++++++++------------ - 2 files changed, 19 insertions(+), 12 deletions(-) - -Index: b/arch/arm/mach-bcm2835/Kconfig -=================================================================== ---- a/arch/arm/mach-bcm2835/Kconfig -+++ b/arch/arm/mach-bcm2835/Kconfig -@@ -8,6 +8,7 @@ config ARCH_BCM2835 - select CLKSRC_OF - select CPU_V6 - select GENERIC_CLOCKEVENTS -+ select MACHINE_RESET - select PINCTRL - select PINCTRL_BCM2835 - help -Index: b/arch/arm/mach-bcm2835/bcm2835.c -=================================================================== ---- a/arch/arm/mach-bcm2835/bcm2835.c -+++ b/arch/arm/mach-bcm2835/bcm2835.c -@@ -19,6 +19,7 @@ - #include <linux/of_platform.h> - #include <linux/clk/bcm2835.h> - #include <linux/clocksource.h> -+#include <linux/machine_reset.h> - - #include <asm/mach/arch.h> - #include <asm/mach/map.h> -@@ -36,7 +37,8 @@ - #define BCM2835_PERIPH_VIRT 0xf0000000 - #define BCM2835_PERIPH_SIZE SZ_16M - --static void __iomem *wdt_regs; -+static void bcm2835_restart(void *dev, enum reboot_mode mode, const char *cmd); -+static void bcm2835_power_off(void *dev); - - /* - * The machine restart method can be called from an atomic context so we won't -@@ -44,21 +46,28 @@ static void __iomem *wdt_regs; - */ - static void bcm2835_setup_restart(void) - { -+ struct reset_hook hook; -+ void __iomem *wdt_regs; - struct device_node *np = of_find_compatible_node(NULL, NULL, - "brcm,bcm2835-pm-wdt"); - if (WARN(!np, "unable to setup watchdog restart")) - return; - - wdt_regs = of_iomap(np, 0); -- WARN(!wdt_regs, "failed to remap watchdog regs"); -+ if (WARN(!wdt_regs, "failed to remap watchdog regs")) -+ return; -+ -+ reset_hook_init(&hook); -+ hook.restart = bcm2835_restart; -+ set_machine_reset(RESET_RESTART, &hook, wdt_regs); -+ hook.power_off = bcm2835_power_off; -+ set_machine_reset(RESET_POWER_OFF, &hook, wdt_regs); - } - --static void bcm2835_restart(enum reboot_mode mode, const char *cmd) -+static void bcm2835_restart(void *dev, enum reboot_mode mode, const char *cmd) - { - u32 val; -- -- if (!wdt_regs) -- return; -+ void __iomem *wdt_regs = dev; - - /* use a timeout of 10 ticks (~150us) */ - writel_relaxed(10 | PM_PASSWORD, wdt_regs + PM_WDOG); -@@ -76,9 +85,10 @@ static void bcm2835_restart(enum reboot_ - * indicate to bootcode.bin not to reboot, then most of the chip will be - * powered off. - */ --static void bcm2835_power_off(void) -+static void bcm2835_power_off(void *dev) - { - u32 val; -+ void __iomem *wdt_regs = dev; - - /* - * We set the watchdog hard reset bit here to distinguish this reset -@@ -91,7 +101,7 @@ static void bcm2835_power_off(void) - writel_relaxed(val, wdt_regs + PM_RSTS); - - /* Continue with normal reset mechanism */ -- bcm2835_restart(REBOOT_HARD, ""); -+ bcm2835_restart(dev, REBOOT_HARD, ""); - } - - static struct map_desc io_map __initdata = { -@@ -111,9 +121,6 @@ static void __init bcm2835_init(void) - int ret; - - bcm2835_setup_restart(); -- if (wdt_regs) -- pm_power_off = bcm2835_power_off; -- - bcm2835_init_clocks(); - - ret = of_platform_populate(NULL, of_default_bus_match_table, NULL, -@@ -135,6 +142,5 @@ DT_MACHINE_START(BCM2835, "BCM2835") - .handle_irq = bcm2835_handle_irq, - .init_machine = bcm2835_init, - .init_time = clocksource_of_init, -- .restart = bcm2835_restart, - .dt_compat = bcm2835_compat - MACHINE_END +An embedded and charset-unspecified text was scrubbed... +Name: arm-machine-reset-bcm2835.patch +URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131031/0b56201b/attachment.ksh> diff --git a/a/content_digest b/N1/content_digest index 85e5067..f12cd24 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,139 +1,12 @@ "ref\020131031062708.520968323@linux.com\0" - "From\0Domenico Andreoli <domenico.andreoli@linux.com>\0" + "From\0domenico.andreoli@linux.com (Domenico Andreoli)\0" "Subject\0[PATCH 07/11] ARM: bcm2835: use the common machine reset handling\0" "Date\0Thu, 31 Oct 2013 07:27:15 +0100\0" - "To\0linux-arch@vger.kernel.org\0" - "Cc\0linux-arm-kernel@lists.infradead.org" - linux-mips@lvger.kernel.org - Russell King <linux@arm.linux.org.uk> - Arnd Bergmann <arnd@arndb.de> - Olof Johansson <olof@lixom.net> - Ralf Baechle <ralf@linux-mips.org> - Stephen Warren <swarren@wwwdotorg.org> - " Domenico Andreoli <domenico.andreoli@linux.com>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" - "fn\0arm-machine-reset-bcm2835.patch\0" "b\0" - "From: Domenico Andreoli <domenico.andreoli@linux.com>\n" - "\n" - "Proof of concept: bcm2835 as provider of reset hooks.\n" - "\n" - "Cc: Stephen Warren <swarren@wwwdotorg.org>\n" - "Cc: Russell King <linux@arm.linux.org.uk>\n" - "Cc: Arnd Bergmann <arnd@arndb.de>\n" - "Cc: Olof Johansson <olof@lixom.net>\n" - "Cc: linux-arm-kernel@lists.infradead.org\n" - "Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com>\n" - "---\n" - " arch/arm/mach-bcm2835/Kconfig | 1 +\n" - " arch/arm/mach-bcm2835/bcm2835.c | 30 ++++++++++++++++++------------\n" - " 2 files changed, 19 insertions(+), 12 deletions(-)\n" - "\n" - "Index: b/arch/arm/mach-bcm2835/Kconfig\n" - "===================================================================\n" - "--- a/arch/arm/mach-bcm2835/Kconfig\n" - "+++ b/arch/arm/mach-bcm2835/Kconfig\n" - "@@ -8,6 +8,7 @@ config ARCH_BCM2835\n" - " \tselect CLKSRC_OF\n" - " \tselect CPU_V6\n" - " \tselect GENERIC_CLOCKEVENTS\n" - "+\tselect MACHINE_RESET\n" - " \tselect PINCTRL\n" - " \tselect PINCTRL_BCM2835\n" - " \thelp\n" - "Index: b/arch/arm/mach-bcm2835/bcm2835.c\n" - "===================================================================\n" - "--- a/arch/arm/mach-bcm2835/bcm2835.c\n" - "+++ b/arch/arm/mach-bcm2835/bcm2835.c\n" - "@@ -19,6 +19,7 @@\n" - " #include <linux/of_platform.h>\n" - " #include <linux/clk/bcm2835.h>\n" - " #include <linux/clocksource.h>\n" - "+#include <linux/machine_reset.h>\n" - " \n" - " #include <asm/mach/arch.h>\n" - " #include <asm/mach/map.h>\n" - "@@ -36,7 +37,8 @@\n" - " #define BCM2835_PERIPH_VIRT\t0xf0000000\n" - " #define BCM2835_PERIPH_SIZE\tSZ_16M\n" - " \n" - "-static void __iomem *wdt_regs;\n" - "+static void bcm2835_restart(void *dev, enum reboot_mode mode, const char *cmd);\n" - "+static void bcm2835_power_off(void *dev);\n" - " \n" - " /*\n" - " * The machine restart method can be called from an atomic context so we won't\n" - "@@ -44,21 +46,28 @@ static void __iomem *wdt_regs;\n" - " */\n" - " static void bcm2835_setup_restart(void)\n" - " {\n" - "+\tstruct reset_hook hook;\n" - "+\tvoid __iomem *wdt_regs;\n" - " \tstruct device_node *np = of_find_compatible_node(NULL, NULL,\n" - " \t\t\t\t\t\t\"brcm,bcm2835-pm-wdt\");\n" - " \tif (WARN(!np, \"unable to setup watchdog restart\"))\n" - " \t\treturn;\n" - " \n" - " \twdt_regs = of_iomap(np, 0);\n" - "-\tWARN(!wdt_regs, \"failed to remap watchdog regs\");\n" - "+\tif (WARN(!wdt_regs, \"failed to remap watchdog regs\"))\n" - "+\t\treturn;\n" - "+\n" - "+\treset_hook_init(&hook);\n" - "+\thook.restart = bcm2835_restart;\n" - "+\tset_machine_reset(RESET_RESTART, &hook, wdt_regs);\n" - "+\thook.power_off = bcm2835_power_off;\n" - "+\tset_machine_reset(RESET_POWER_OFF, &hook, wdt_regs);\n" - " }\n" - " \n" - "-static void bcm2835_restart(enum reboot_mode mode, const char *cmd)\n" - "+static void bcm2835_restart(void *dev, enum reboot_mode mode, const char *cmd)\n" - " {\n" - " \tu32 val;\n" - "-\n" - "-\tif (!wdt_regs)\n" - "-\t\treturn;\n" - "+\tvoid __iomem *wdt_regs = dev;\n" - " \n" - " \t/* use a timeout of 10 ticks (~150us) */\n" - " \twritel_relaxed(10 | PM_PASSWORD, wdt_regs + PM_WDOG);\n" - "@@ -76,9 +85,10 @@ static void bcm2835_restart(enum reboot_\n" - " * indicate to bootcode.bin not to reboot, then most of the chip will be\n" - " * powered off.\n" - " */\n" - "-static void bcm2835_power_off(void)\n" - "+static void bcm2835_power_off(void *dev)\n" - " {\n" - " \tu32 val;\n" - "+\tvoid __iomem *wdt_regs = dev;\n" - " \n" - " \t/*\n" - " \t * We set the watchdog hard reset bit here to distinguish this reset\n" - "@@ -91,7 +101,7 @@ static void bcm2835_power_off(void)\n" - " \twritel_relaxed(val, wdt_regs + PM_RSTS);\n" - " \n" - " \t/* Continue with normal reset mechanism */\n" - "-\tbcm2835_restart(REBOOT_HARD, \"\");\n" - "+\tbcm2835_restart(dev, REBOOT_HARD, \"\");\n" - " }\n" - " \n" - " static struct map_desc io_map __initdata = {\n" - "@@ -111,9 +121,6 @@ static void __init bcm2835_init(void)\n" - " \tint ret;\n" - " \n" - " \tbcm2835_setup_restart();\n" - "-\tif (wdt_regs)\n" - "-\t\tpm_power_off = bcm2835_power_off;\n" - "-\n" - " \tbcm2835_init_clocks();\n" - " \n" - " \tret = of_platform_populate(NULL, of_default_bus_match_table, NULL,\n" - "@@ -135,6 +142,5 @@ DT_MACHINE_START(BCM2835, \"BCM2835\")\n" - " \t.handle_irq = bcm2835_handle_irq,\n" - " \t.init_machine = bcm2835_init,\n" - " \t.init_time = clocksource_of_init,\n" - "-\t.restart = bcm2835_restart,\n" - " \t.dt_compat = bcm2835_compat\n" - MACHINE_END + "An embedded and charset-unspecified text was scrubbed...\n" + "Name: arm-machine-reset-bcm2835.patch\n" + URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131031/0b56201b/attachment.ksh> -e229ee44022b5f200284aa7ae114be1bc0343bf17e44763d4c5fe0b47a62435e +87bdd6888e7d1d0f61ab6893fd9f3c1e84f7238ffc28a0e1bd10196b62196ddf
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.