* [PATCH] watchdog: Compile possible drivers with COMPILE_TEST
@ 2015-10-12 20:46 Luis de Bethencourt
2015-10-12 23:41 ` kbuild test robot
0 siblings, 1 reply; 2+ messages in thread
From: Luis de Bethencourt @ 2015-10-12 20:46 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-watchdog, wim, javier, Luis de Bethencourt
These drivers have depends that aren't build dependencies, so it's
a good idea to allow these drivers to always be built when the
COMPILE_TEST option is enabled.
That way, the drivers can be built with a config generated by make
allyesconfig and check if a patch would break the build.
Signed-off-by: Luis de Bethencourt <luisbg@osg.samsung.com>
---
drivers/watchdog/Kconfig | 48 ++++++++++++++++++++++++------------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 79e1aa1..c741bb9 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -190,7 +190,7 @@ config AT91SAM9X_WATCHDOG
config SAMA5D4_WATCHDOG
tristate "Atmel SAMA5D4 Watchdog Timer"
- depends on ARCH_AT91
+ depends on ARCH_AT91 || COMPILE_TEST
select WATCHDOG_CORE
help
Atmel SAMA5D4 watchdog timer is embedded into SAMA5D4 chips.
@@ -261,7 +261,7 @@ config HAVE_S3C2410_WATCHDOG
config S3C2410_WATCHDOG
tristate "S3C2410 Watchdog"
- depends on HAVE_S3C2410_WATCHDOG
+ depends on HAVE_S3C2410_WATCHDOG || COMPILE_TEST
select WATCHDOG_CORE
select MFD_SYSCON if ARCH_EXYNOS5
help
@@ -299,7 +299,7 @@ config DW_WATCHDOG
config EP93XX_WATCHDOG
tristate "EP93xx Watchdog"
- depends on ARCH_EP93XX
+ depends on ARCH_EP93XX || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here if to include support for the watchdog timer
@@ -310,7 +310,7 @@ config EP93XX_WATCHDOG
config OMAP_WATCHDOG
tristate "OMAP Watchdog"
- depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS
+ depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || COMPILE_TEST
select WATCHDOG_CORE
help
Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog. Say 'Y'
@@ -346,7 +346,7 @@ config IOP_WATCHDOG
config DAVINCI_WATCHDOG
tristate "DaVinci watchdog"
- depends on ARCH_DAVINCI || ARCH_KEYSTONE
+ depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here if to include support for the watchdog timer
@@ -380,7 +380,7 @@ config RN5T618_WATCHDOG
config SUNXI_WATCHDOG
tristate "Allwinner SoCs watchdog support"
- depends on ARCH_SUNXI
+ depends on ARCH_SUNXI || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here to include support for the watchdog timer
@@ -409,7 +409,7 @@ config TWL4030_WATCHDOG
config STMP3XXX_RTC_WATCHDOG
tristate "Freescale STMP3XXX & i.MX23/28 watchdog"
- depends on RTC_DRV_STMP
+ depends on RTC_DRV_STMP || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here to include support for the watchdog timer inside
@@ -419,7 +419,7 @@ config STMP3XXX_RTC_WATCHDOG
config NUC900_WATCHDOG
tristate "Nuvoton NUC900 watchdog"
- depends on ARCH_W90X900
+ depends on ARCH_W90X900 || COMPILE_TEST
help
Say Y here if to include support for the watchdog timer
for the Nuvoton NUC900 series SoCs.
@@ -428,7 +428,7 @@ config NUC900_WATCHDOG
config TS72XX_WATCHDOG
tristate "TS-72XX SBC Watchdog"
- depends on MACH_TS72XX
+ depends on MACH_TS72XX || COMPILE_TEST
help
Technologic Systems TS-7200, TS-7250 and TS-7260 boards have
watchdog timer implemented in a external CPLD chip. Say Y here
@@ -446,7 +446,7 @@ config MAX63XX_WATCHDOG
config IMX2_WDT
tristate "IMX2+ Watchdog"
- depends on ARCH_MXC
+ depends on ARCH_MXC || COMPILE_TEST
select REGMAP_MMIO
select WATCHDOG_CORE
help
@@ -484,7 +484,7 @@ config RETU_WATCHDOG
config MOXART_WDT
tristate "MOXART watchdog"
- depends on ARCH_MOXART
+ depends on ARCH_MOXART || COMPILE_TEST
help
Say Y here to include Watchdog timer support for the watchdog
existing on the MOXA ART SoC series platforms.
@@ -494,7 +494,7 @@ config MOXART_WDT
config SIRFSOC_WATCHDOG
tristate "SiRFSOC watchdog"
- depends on ARCH_SIRF
+ depends on ARCH_SIRF || COMPILE_TEST
select WATCHDOG_CORE
default y
help
@@ -503,7 +503,7 @@ config SIRFSOC_WATCHDOG
config ST_LPC_WATCHDOG
tristate "STMicroelectronics LPC Watchdog"
- depends on ARCH_STI
+ depends on ARCH_STI || COMPILE_TEST
depends on OF
select WATCHDOG_CORE
help
@@ -539,7 +539,7 @@ config QCOM_WDT
config MESON_WATCHDOG
tristate "Amlogic Meson SoCs watchdog support"
- depends on ARCH_MESON
+ depends on ARCH_MESON || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here to include support for the watchdog timer
@@ -549,7 +549,7 @@ config MESON_WATCHDOG
config MEDIATEK_WATCHDOG
tristate "Mediatek SoCs watchdog support"
- depends on ARCH_MEDIATEK
+ depends on ARCH_MEDIATEK || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here to include support for the watchdog timer
@@ -559,7 +559,7 @@ config MEDIATEK_WATCHDOG
config DIGICOLOR_WATCHDOG
tristate "Conexant Digicolor SoCs watchdog support"
- depends on ARCH_DIGICOLOR
+ depends on ARCH_DIGICOLOR || COMPILE_TEST
select WATCHDOG_CORE
help
Say Y here to include support for the watchdog timer
@@ -582,7 +582,7 @@ config LPC18XX_WATCHDOG
config AT32AP700X_WDT
tristate "AT32AP700x watchdog"
- depends on CPU_AT32AP700X
+ depends on CPU_AT32AP700X || COMPILE_TEST
help
Watchdog timer embedded into AT32AP700x devices. This will reboot
your system when the timeout is reached.
@@ -690,7 +690,7 @@ config GEODE_WDT
config SC520_WDT
tristate "AMD Elan SC520 processor Watchdog"
- depends on MELAN
+ depends on MELAN || COMPILE_TEST
help
This is the driver for the hardware watchdog built in to the
AMD "Elan" SC520 microcomputer commonly used in embedded systems.
@@ -963,7 +963,7 @@ config NV_TCO
config RDC321X_WDT
tristate "RDC R-321x SoC watchdog"
- depends on X86_RDC321X
+ depends on X86_RDC321X || COMPILE_TEST
help
This is the driver for the built in hardware watchdog
in the RDC R-321x SoC.
@@ -987,7 +987,7 @@ config 60XX_WDT
config SBC8360_WDT
tristate "SBC8360 Watchdog Timer"
- depends on X86_32
+ depends on X86_32 || COMPILE_TEST
---help---
This is the driver for the hardware watchdog on the SBC8360 Single
@@ -1178,7 +1178,7 @@ config ATH79_WDT
config BCM47XX_WDT
tristate "Broadcom BCM47xx Watchdog Timer"
- depends on BCM47XX || ARCH_BCM_5301X
+ depends on BCM47XX || ARCH_BCM_5301X || COMPILE_TEST
select WATCHDOG_CORE
help
Hardware driver for the Broadcom BCM47xx Watchdog Timer.
@@ -1293,7 +1293,7 @@ config BCM2835_WDT
config BCM_KONA_WDT
tristate "BCM Kona Watchdog"
- depends on ARCH_BCM_MOBILE
+ depends on ARCH_BCM_MOBILE || COMPILE_TEST
select WATCHDOG_CORE
help
Support for the watchdog timer on the following Broadcom BCM281xx
@@ -1368,7 +1368,7 @@ config 8xxx_WDT
config MV64X60_WDT
tristate "MV64X60 (Marvell Discovery) Watchdog Timer"
- depends on MV64X60
+ depends on MV64X60 || COMPILE_TEST
config PIKA_WDT
tristate "PIKA FPGA Watchdog"
@@ -1533,7 +1533,7 @@ config PCWATCHDOG
config MIXCOMWD
tristate "Mixcom Watchdog"
- depends on ISA
+ depends on ISA || COMPILE_TEST
---help---
This is a driver for the Mixcom hardware watchdog cards. This
watchdog simply watches your kernel to make sure it doesn't freeze,
--
2.5.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] watchdog: Compile possible drivers with COMPILE_TEST
2015-10-12 20:46 [PATCH] watchdog: Compile possible drivers with COMPILE_TEST Luis de Bethencourt
@ 2015-10-12 23:41 ` kbuild test robot
0 siblings, 0 replies; 2+ messages in thread
From: kbuild test robot @ 2015-10-12 23:41 UTC (permalink / raw)
To: Luis de Bethencourt
Cc: kbuild-all, linux-kernel, linux-watchdog, wim, javier,
Luis de Bethencourt
Hi Luis,
[auto build test WARNING on v4.3-rc5 -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Luis-de-Bethencourt/watchdog-Compile-possible-drivers-with-COMPILE_TEST/20151013-044814
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
>> drivers/watchdog/sirfsoc_wdt.c:48:18: sparse: incorrect type in assignment (different address spaces)
drivers/watchdog/sirfsoc_wdt.c:48:18: expected void [noderef] <asn:2>*wdt_base
drivers/watchdog/sirfsoc_wdt.c:48:18: got void *
drivers/watchdog/sirfsoc_wdt.c:64:18: sparse: incorrect type in assignment (different address spaces)
drivers/watchdog/sirfsoc_wdt.c:64:18: expected void [noderef] <asn:2>*wdt_base
drivers/watchdog/sirfsoc_wdt.c:64:18: got void *
>> drivers/watchdog/sirfsoc_wdt.c:82:54: sparse: incorrect type in initializer (different address spaces)
drivers/watchdog/sirfsoc_wdt.c:82:54: expected void [noderef] <asn:2>*wdt_base
drivers/watchdog/sirfsoc_wdt.c:82:54: got void *
drivers/watchdog/sirfsoc_wdt.c:99:54: sparse: incorrect type in initializer (different address spaces)
drivers/watchdog/sirfsoc_wdt.c:99:54: expected void [noderef] <asn:2>*wdt_base
drivers/watchdog/sirfsoc_wdt.c:99:54: got void *
>> drivers/watchdog/sirfsoc_wdt.c:153:44: sparse: incorrect type in argument 2 (different address spaces)
drivers/watchdog/sirfsoc_wdt.c:153:44: expected void *data
drivers/watchdog/sirfsoc_wdt.c:153:44: got void [noderef] <asn:2>*[assigned] base
vim +48 drivers/watchdog/sirfsoc_wdt.c
f0fcbdbf Xianglong Du 2013-10-02 42 static unsigned int sirfsoc_wdt_gettimeleft(struct watchdog_device *wdd)
f0fcbdbf Xianglong Du 2013-10-02 43 {
f0fcbdbf Xianglong Du 2013-10-02 44 u32 counter, match;
f0fcbdbf Xianglong Du 2013-10-02 45 void __iomem *wdt_base;
f0fcbdbf Xianglong Du 2013-10-02 46 int time_left;
f0fcbdbf Xianglong Du 2013-10-02 47
f0fcbdbf Xianglong Du 2013-10-02 @48 wdt_base = watchdog_get_drvdata(wdd);
f0fcbdbf Xianglong Du 2013-10-02 49 counter = readl(wdt_base + SIRFSOC_TIMER_COUNTER_LO);
f0fcbdbf Xianglong Du 2013-10-02 50 match = readl(wdt_base +
f0fcbdbf Xianglong Du 2013-10-02 51 SIRFSOC_TIMER_MATCH_0 + (SIRFSOC_TIMER_WDT_INDEX << 2));
f0fcbdbf Xianglong Du 2013-10-02 52
f0fcbdbf Xianglong Du 2013-10-02 53 time_left = match - counter;
f0fcbdbf Xianglong Du 2013-10-02 54
b0df38dd Uwe Kleine-König 2013-11-11 55 return time_left / CLOCK_FREQ;
f0fcbdbf Xianglong Du 2013-10-02 56 }
f0fcbdbf Xianglong Du 2013-10-02 57
f0fcbdbf Xianglong Du 2013-10-02 58 static int sirfsoc_wdt_updatetimeout(struct watchdog_device *wdd)
f0fcbdbf Xianglong Du 2013-10-02 59 {
f0fcbdbf Xianglong Du 2013-10-02 60 u32 counter, timeout_ticks;
f0fcbdbf Xianglong Du 2013-10-02 61 void __iomem *wdt_base;
f0fcbdbf Xianglong Du 2013-10-02 62
b0df38dd Uwe Kleine-König 2013-11-11 63 timeout_ticks = wdd->timeout * CLOCK_FREQ;
f0fcbdbf Xianglong Du 2013-10-02 @64 wdt_base = watchdog_get_drvdata(wdd);
f0fcbdbf Xianglong Du 2013-10-02 65
f0fcbdbf Xianglong Du 2013-10-02 66 /* Enable the latch before reading the LATCH_LO register */
f0fcbdbf Xianglong Du 2013-10-02 67 writel(1, wdt_base + SIRFSOC_TIMER_LATCH);
f0fcbdbf Xianglong Du 2013-10-02 68
f0fcbdbf Xianglong Du 2013-10-02 69 /* Set the TO value */
f0fcbdbf Xianglong Du 2013-10-02 70 counter = readl(wdt_base + SIRFSOC_TIMER_LATCHED_LO);
f0fcbdbf Xianglong Du 2013-10-02 71
f0fcbdbf Xianglong Du 2013-10-02 72 counter += timeout_ticks;
f0fcbdbf Xianglong Du 2013-10-02 73
f0fcbdbf Xianglong Du 2013-10-02 74 writel(counter, wdt_base +
f0fcbdbf Xianglong Du 2013-10-02 75 SIRFSOC_TIMER_MATCH_0 + (SIRFSOC_TIMER_WDT_INDEX << 2));
f0fcbdbf Xianglong Du 2013-10-02 76
f0fcbdbf Xianglong Du 2013-10-02 77 return 0;
f0fcbdbf Xianglong Du 2013-10-02 78 }
f0fcbdbf Xianglong Du 2013-10-02 79
f0fcbdbf Xianglong Du 2013-10-02 80 static int sirfsoc_wdt_enable(struct watchdog_device *wdd)
f0fcbdbf Xianglong Du 2013-10-02 81 {
f0fcbdbf Xianglong Du 2013-10-02 @82 void __iomem *wdt_base = watchdog_get_drvdata(wdd);
f0fcbdbf Xianglong Du 2013-10-02 83 sirfsoc_wdt_updatetimeout(wdd);
f0fcbdbf Xianglong Du 2013-10-02 84
f0fcbdbf Xianglong Du 2013-10-02 85 /*
f0fcbdbf Xianglong Du 2013-10-02 86 * NOTE: If interrupt is not enabled
f0fcbdbf Xianglong Du 2013-10-02 87 * then WD-Reset doesn't get generated at all.
f0fcbdbf Xianglong Du 2013-10-02 88 */
f0fcbdbf Xianglong Du 2013-10-02 89 writel(readl(wdt_base + SIRFSOC_TIMER_INT_EN)
f0fcbdbf Xianglong Du 2013-10-02 90 | (1 << SIRFSOC_TIMER_WDT_INDEX),
f0fcbdbf Xianglong Du 2013-10-02 91 wdt_base + SIRFSOC_TIMER_INT_EN);
f0fcbdbf Xianglong Du 2013-10-02 92 writel(1, wdt_base + SIRFSOC_TIMER_WATCHDOG_EN);
f0fcbdbf Xianglong Du 2013-10-02 93
f0fcbdbf Xianglong Du 2013-10-02 94 return 0;
f0fcbdbf Xianglong Du 2013-10-02 95 }
f0fcbdbf Xianglong Du 2013-10-02 96
f0fcbdbf Xianglong Du 2013-10-02 97 static int sirfsoc_wdt_disable(struct watchdog_device *wdd)
f0fcbdbf Xianglong Du 2013-10-02 98 {
f0fcbdbf Xianglong Du 2013-10-02 99 void __iomem *wdt_base = watchdog_get_drvdata(wdd);
f0fcbdbf Xianglong Du 2013-10-02 100
f0fcbdbf Xianglong Du 2013-10-02 101 writel(0, wdt_base + SIRFSOC_TIMER_WATCHDOG_EN);
f0fcbdbf Xianglong Du 2013-10-02 102 writel(readl(wdt_base + SIRFSOC_TIMER_INT_EN)
f0fcbdbf Xianglong Du 2013-10-02 103 & (~(1 << SIRFSOC_TIMER_WDT_INDEX)),
f0fcbdbf Xianglong Du 2013-10-02 104 wdt_base + SIRFSOC_TIMER_INT_EN);
f0fcbdbf Xianglong Du 2013-10-02 105
f0fcbdbf Xianglong Du 2013-10-02 106 return 0;
f0fcbdbf Xianglong Du 2013-10-02 107 }
f0fcbdbf Xianglong Du 2013-10-02 108
f0fcbdbf Xianglong Du 2013-10-02 109 static int sirfsoc_wdt_settimeout(struct watchdog_device *wdd, unsigned int to)
f0fcbdbf Xianglong Du 2013-10-02 110 {
f0fcbdbf Xianglong Du 2013-10-02 111 wdd->timeout = to;
f0fcbdbf Xianglong Du 2013-10-02 112 sirfsoc_wdt_updatetimeout(wdd);
f0fcbdbf Xianglong Du 2013-10-02 113
f0fcbdbf Xianglong Du 2013-10-02 114 return 0;
f0fcbdbf Xianglong Du 2013-10-02 115 }
f0fcbdbf Xianglong Du 2013-10-02 116
f0fcbdbf Xianglong Du 2013-10-02 117 #define OPTIONS (WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE)
f0fcbdbf Xianglong Du 2013-10-02 118
f0fcbdbf Xianglong Du 2013-10-02 119 static const struct watchdog_info sirfsoc_wdt_ident = {
f0fcbdbf Xianglong Du 2013-10-02 120 .options = OPTIONS,
f0fcbdbf Xianglong Du 2013-10-02 121 .firmware_version = 0,
f0fcbdbf Xianglong Du 2013-10-02 122 .identity = "SiRFSOC Watchdog",
f0fcbdbf Xianglong Du 2013-10-02 123 };
f0fcbdbf Xianglong Du 2013-10-02 124
f0fcbdbf Xianglong Du 2013-10-02 125 static struct watchdog_ops sirfsoc_wdt_ops = {
f0fcbdbf Xianglong Du 2013-10-02 126 .owner = THIS_MODULE,
f0fcbdbf Xianglong Du 2013-10-02 127 .start = sirfsoc_wdt_enable,
f0fcbdbf Xianglong Du 2013-10-02 128 .stop = sirfsoc_wdt_disable,
f0fcbdbf Xianglong Du 2013-10-02 129 .get_timeleft = sirfsoc_wdt_gettimeleft,
f0fcbdbf Xianglong Du 2013-10-02 130 .ping = sirfsoc_wdt_updatetimeout,
f0fcbdbf Xianglong Du 2013-10-02 131 .set_timeout = sirfsoc_wdt_settimeout,
f0fcbdbf Xianglong Du 2013-10-02 132 };
f0fcbdbf Xianglong Du 2013-10-02 133
f0fcbdbf Xianglong Du 2013-10-02 134 static struct watchdog_device sirfsoc_wdd = {
f0fcbdbf Xianglong Du 2013-10-02 135 .info = &sirfsoc_wdt_ident,
f0fcbdbf Xianglong Du 2013-10-02 136 .ops = &sirfsoc_wdt_ops,
f0fcbdbf Xianglong Du 2013-10-02 137 .timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT,
f0fcbdbf Xianglong Du 2013-10-02 138 .min_timeout = SIRFSOC_WDT_MIN_TIMEOUT,
f0fcbdbf Xianglong Du 2013-10-02 139 .max_timeout = SIRFSOC_WDT_MAX_TIMEOUT,
f0fcbdbf Xianglong Du 2013-10-02 140 };
f0fcbdbf Xianglong Du 2013-10-02 141
f0fcbdbf Xianglong Du 2013-10-02 142 static int sirfsoc_wdt_probe(struct platform_device *pdev)
f0fcbdbf Xianglong Du 2013-10-02 143 {
f0fcbdbf Xianglong Du 2013-10-02 144 struct resource *res;
f0fcbdbf Xianglong Du 2013-10-02 145 int ret;
f0fcbdbf Xianglong Du 2013-10-02 146 void __iomem *base;
f0fcbdbf Xianglong Du 2013-10-02 147
f0fcbdbf Xianglong Du 2013-10-02 148 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
f0fcbdbf Xianglong Du 2013-10-02 149 base = devm_ioremap_resource(&pdev->dev, res);
f0fcbdbf Xianglong Du 2013-10-02 150 if (IS_ERR(base))
f0fcbdbf Xianglong Du 2013-10-02 151 return PTR_ERR(base);
f0fcbdbf Xianglong Du 2013-10-02 152
f0fcbdbf Xianglong Du 2013-10-02 @153 watchdog_set_drvdata(&sirfsoc_wdd, base);
f0fcbdbf Xianglong Du 2013-10-02 154
f0fcbdbf Xianglong Du 2013-10-02 155 watchdog_init_timeout(&sirfsoc_wdd, timeout, &pdev->dev);
f0fcbdbf Xianglong Du 2013-10-02 156 watchdog_set_nowayout(&sirfsoc_wdd, nowayout);
:::::: The code at line 48 was first introduced by commit
:::::: f0fcbdbf202e2be36c8eb6d1f5c01f95805777de watchdog: sirf: add watchdog driver of CSR SiRFprimaII and SiRFatlasVI
:::::: TO: Xianglong Du <Xianglong.Du@csr.com>
:::::: CC: Wim Van Sebroeck <wim@iguana.be>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-10-12 23:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-12 20:46 [PATCH] watchdog: Compile possible drivers with COMPILE_TEST Luis de Bethencourt
2015-10-12 23:41 ` kbuild test robot
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.