Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1245120 > unrolled thread
| Started by | Luis de Bethencourt <luisbg@osg.samsung.com> |
|---|---|
| First post | 2015-10-12 22:50 +0200 |
| Last post | 2015-10-13 01:50 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] watchdog: Compile possible drivers with COMPILE_TEST Luis de Bethencourt <luisbg@osg.samsung.com> - 2015-10-12 22:50 +0200
Re: [PATCH] watchdog: Compile possible drivers with COMPILE_TEST kbuild test robot <lkp@intel.com> - 2015-10-13 01:50 +0200
| From | Luis de Bethencourt <luisbg@osg.samsung.com> |
|---|---|
| Date | 2015-10-12 22:50 +0200 |
| Subject | [PATCH] watchdog: Compile possible drivers with COMPILE_TEST |
| Message-ID | <qiScG-1MX-11@gated-at.bofh.it> |
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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | kbuild test robot <lkp@intel.com> |
|---|---|
| Date | 2015-10-13 01:50 +0200 |
| Message-ID | <qiV0R-5Qa-1@gated-at.bofh.it> |
| In reply to | #1245120 |
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web