diff mbox

[LEDE-DEV,v2] cns3xxx: remove deprecated mpcore watchdog device

Message ID 1483906465-4178-1-git-send-email-koen.vandeputte@ncentric.com
State Superseded
Delegated to: Felix Fietkau
Headers show

Commit Message

Koen Vandeputte Jan. 8, 2017, 8:14 p.m. UTC
This code was exclusively used by the mpcore_wdt
driver which got removed from the kernel mid 2013.

https://www.spinics.net/lists/linux-watchdog/msg02724.html

Tested on Laguna GW2388

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
---
 .../cns3xxx/base-files/lib/upgrade/platform.sh     |  2 +-
 .../cns3xxx/files/arch/arm/mach-cns3xxx/laguna.c   | 21 --------
 .../cns3xxx/patches-4.4/020-watchdog_support.patch | 59 ----------------------
 .../cns3xxx/patches-4.4/095-gpio_support.patch     |  2 +-
 .../patches-4.4/097-l2x0_cmdline_disable.patch     |  2 +-
 5 files changed, 3 insertions(+), 83 deletions(-)
 delete mode 100644 target/linux/cns3xxx/patches-4.4/020-watchdog_support.patch

Comments

Felix Fietkau Jan. 8, 2017, 8:27 p.m. UTC | #1
On 2017-01-08 21:14, Koen Vandeputte wrote:
> This code was exclusively used by the mpcore_wdt
> driver which got removed from the kernel mid 2013.
> 
> https://www.spinics.net/lists/linux-watchdog/msg02724.html
> 
> Tested on Laguna GW2388
> 
> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Interesting. I hadn't noticed that the driver got removed. Instead of
removing this, I'd prefer to restore the watchdog driver instead.
It seems that the IRQ that they were talking about is completely
irrelevant and used for testing mode only, so theoretically it should be
easy to make this driver work again.

- Felix
Koen Vandeputte Jan. 9, 2017, 10:31 a.m. UTC | #2
On 2017-01-08 21:27, Felix Fietkau wrote:
> On 2017-01-08 21:14, Koen Vandeputte wrote:
>> This code was exclusively used by the mpcore_wdt
>> driver which got removed from the kernel mid 2013.
>>
>> https://www.spinics.net/lists/linux-watchdog/msg02724.html
>>
>> Tested on Laguna GW2388
>>
>> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
> Interesting. I hadn't noticed that the driver got removed. Instead of
> removing this, I'd prefer to restore the watchdog driver instead.
Even better :)

To ensure we are on the same track:
--> Locally in LEDE or upstream in kernel?
> It seems that the IRQ that they were talking about is completely
> irrelevant and used for testing mode only, so theoretically it should be
> easy to make this driver work again.
- Felix
Felix Fietkau Jan. 9, 2017, 10:52 a.m. UTC | #3
On 2017-01-09 11:31, Koen Vandeputte wrote:
> 
> 
> On 2017-01-08 21:27, Felix Fietkau wrote:
>> On 2017-01-08 21:14, Koen Vandeputte wrote:
>>> This code was exclusively used by the mpcore_wdt
>>> driver which got removed from the kernel mid 2013.
>>>
>>> https://www.spinics.net/lists/linux-watchdog/msg02724.html
>>>
>>> Tested on Laguna GW2388
>>>
>>> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
>> Interesting. I hadn't noticed that the driver got removed. Instead of
>> removing this, I'd prefer to restore the watchdog driver instead.
> Even better :)
> 
> To ensure we are on the same track:
> --> Locally in LEDE or upstream in kernel?
>> It seems that the IRQ that they were talking about is completely
>> irrelevant and used for testing mode only, so theoretically it should be
>> easy to make this driver work again.
Preferably both.

- Felix
diff mbox

Patch

diff --git a/target/linux/cns3xxx/base-files/lib/upgrade/platform.sh b/target/linux/cns3xxx/base-files/lib/upgrade/platform.sh
index 4efa47d..0becdd2 100644
--- a/target/linux/cns3xxx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/cns3xxx/base-files/lib/upgrade/platform.sh
@@ -27,5 +27,5 @@  disable_watchdog() {
 	}
 }
 
-# CONFIG_WATCHDOG_NOWAYOUT=y - can't kill watchdog unless kernel cmdline has a mpcore_wdt.nowayout=0
+# CONFIG_WATCHDOG_NOWAYOUT=y - can't kill watchdog
 #append sysupgrade_pre_upgrade disable_watchdog
diff --git a/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/laguna.c b/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/laguna.c
index 4a59612..58a0a70 100644
--- a/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/laguna.c
+++ b/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/laguna.c
@@ -628,25 +628,6 @@  static struct i2c_board_info __initdata laguna_i2c_devices[] = {
 };
 
 /*
- * Watchdog
- */
-
-static struct resource laguna_watchdog_resources[] = {
-	[0] = {
-		.start	= CNS3XXX_TC11MP_TWD_BASE + 0x100, // CPU0 watchdog
-		.end	= CNS3XXX_TC11MP_TWD_BASE + SZ_4K - 1,
-		.flags	= IORESOURCE_MEM,
-	},
-};
-
-static struct platform_device laguna_watchdog = {
-	.name		= "mpcore_wdt",
-	.id		= -1,
-	.num_resources	= ARRAY_SIZE(laguna_watchdog_resources),
-	.resource	= laguna_watchdog_resources,
-};
-
-/*
  * GPS PPS
  */
 static struct pps_gpio_platform_data laguna_pps_data = {
@@ -816,8 +797,6 @@  static void __init laguna_init(void)
 				      cns3xxx_cpu_clock() * (1000000 / 8));
 	clk_register_clkdev(clk, "cpu", NULL);
 
-	platform_device_register(&laguna_watchdog);
-
 	platform_device_register(&laguna_i2c_controller);
 
 	/* Set I2C 0-3 drive strength to 21 mA */
diff --git a/target/linux/cns3xxx/patches-4.4/020-watchdog_support.patch b/target/linux/cns3xxx/patches-4.4/020-watchdog_support.patch
deleted file mode 100644
index 74ffcc3..0000000
--- a/target/linux/cns3xxx/patches-4.4/020-watchdog_support.patch
+++ /dev/null
@@ -1,59 +0,0 @@ 
-1. Made the connection between CNS3xxx SOCs(ARCH_CNS3xxx) and MPcore watchdog
-   since the CNS3xxx SOCs have ARM11 MPcore CPU.
-2. Enable mpcore_watchdog option as module to default configuration at
-   arch/arm/configs/cns3420vb_defconfig.
-
-Signed-off-by: Tommy Lin <tommy.lin@caviumnetworks.com>
-
----
-arch/arm/Kconfig                     |    1 +
- arch/arm/configs/cns3420vb_defconfig |    2 ++
- arch/arm/mach-cns3xxx/cns3420vb.c    |   22 ++++++++++++++++++++++
- 3 files changed, 25 insertions(+), 0 deletions(-)
-
---- a/arch/arm/configs/cns3420vb_defconfig
-+++ b/arch/arm/configs/cns3420vb_defconfig
-@@ -56,6 +56,8 @@ CONFIG_LEGACY_PTY_COUNT=16
- # CONFIG_HW_RANDOM is not set
- # CONFIG_HWMON is not set
- # CONFIG_VGA_CONSOLE is not set
-+CONFIG_WATCHDOG=y
-+CONFIG_MPCORE_WATCHDOG=m
- # CONFIG_HID_SUPPORT is not set
- # CONFIG_USB_SUPPORT is not set
- CONFIG_MMC=y
---- a/arch/arm/mach-cns3xxx/cns3420vb.c
-+++ b/arch/arm/mach-cns3xxx/cns3420vb.c
-@@ -206,10 +206,32 @@ static struct platform_device cns3xxx_us
- 	},
- };
- 
-+/* Watchdog */
-+static struct resource cns3xxx_watchdog_resources[] = {
-+	[0] = {
-+		.start = CNS3XXX_TC11MP_TWD_BASE,
-+		.end   = CNS3XXX_TC11MP_TWD_BASE + PAGE_SIZE - 1,
-+		.flags = IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start = IRQ_LOCALWDOG,
-+		.end   = IRQ_LOCALWDOG,
-+		.flags = IORESOURCE_IRQ,
-+	}
-+};
-+
-+static struct platform_device cns3xxx_watchdog_device = {
-+	.name		= "mpcore_wdt",
-+	.id		= -1,
-+	.num_resources	= ARRAY_SIZE(cns3xxx_watchdog_resources),
-+	.resource	= cns3xxx_watchdog_resources,
-+};
-+
- /*
-  * Initialization
-  */
- static struct platform_device *cns3420_pdevs[] __initdata = {
-+	&cns3xxx_watchdog_device,
- 	&cns3420_nor_pdev,
- 	&cns3xxx_usb_ehci_device,
- 	&cns3xxx_usb_ohci_device,
diff --git a/target/linux/cns3xxx/patches-4.4/095-gpio_support.patch b/target/linux/cns3xxx/patches-4.4/095-gpio_support.patch
index 79a937a..cece982 100644
--- a/target/linux/cns3xxx/patches-4.4/095-gpio_support.patch
+++ b/target/linux/cns3xxx/patches-4.4/095-gpio_support.patch
@@ -1,6 +1,6 @@ 
 --- a/arch/arm/mach-cns3xxx/cns3420vb.c
 +++ b/arch/arm/mach-cns3xxx/cns3420vb.c
-@@ -245,6 +245,10 @@ static void __init cns3420_init(void)
+@@ -223,6 +223,10 @@ static void __init cns3420_init(void)
  
  	cns3xxx_ahci_init();
  	cns3xxx_sdhci_init();
diff --git a/target/linux/cns3xxx/patches-4.4/097-l2x0_cmdline_disable.patch b/target/linux/cns3xxx/patches-4.4/097-l2x0_cmdline_disable.patch
index 25d3005..b4720b1 100644
--- a/target/linux/cns3xxx/patches-4.4/097-l2x0_cmdline_disable.patch
+++ b/target/linux/cns3xxx/patches-4.4/097-l2x0_cmdline_disable.patch
@@ -43,7 +43,7 @@ 
  
 --- a/arch/arm/mach-cns3xxx/cns3420vb.c
 +++ b/arch/arm/mach-cns3xxx/cns3420vb.c
-@@ -239,8 +239,6 @@ static struct platform_device *cns3420_p
+@@ -217,8 +217,6 @@ static struct platform_device *cns3420_p
  
  static void __init cns3420_init(void)
  {