From: kbuild test robot <lkp@intel.com>
To: Guenter Roeck <patchwork@patchwork.roeck-us.net>
Cc: kbuild-all@01.org, linux-watchdog@vger.kernel.org,
"Wim Van Sebroeck" <wim@iguana.be>,
linux-kernel@vger.kernel.org,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Doug Anderson" <dianders@chromium.org>,
"Guenter Roeck" <linux@roeck-us.net>
Subject: Re: [RFT PATCH] watchdog: gpio: Convert to use infrastructure triggered keepalives
Date: Tue, 26 Jan 2016 23:40:53 +0800 [thread overview]
Message-ID: <201601262354.VRXiACmT%fengguang.wu@intel.com> (raw)
In-Reply-To: <1453821126-24646-1-git-send-email-patchwork@patchwork.roeck-us.net>
[-- Attachment #1: Type: text/plain, Size: 4495 bytes --]
Hi Guenter,
[auto build test ERROR on v4.5-rc1]
[also build test ERROR on next-20160125]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Guenter-Roeck/watchdog-gpio-Convert-to-use-infrastructure-triggered-keepalives/20160126-231612
config: i386-randconfig-x005-01261041 (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
drivers/watchdog/gpio_wdt.c: In function 'gpio_wdt_start':
>> drivers/watchdog/gpio_wdt.c:72:10: error: 'WDOG_HW_RUNNING' undeclared (first use in this function)
set_bit(WDOG_HW_RUNNING, &wdd->status);
^
drivers/watchdog/gpio_wdt.c:72:10: note: each undeclared identifier is reported only once for each function it appears in
drivers/watchdog/gpio_wdt.c: In function 'gpio_wdt_stop':
drivers/watchdog/gpio_wdt.c:83:13: error: 'WDOG_HW_RUNNING' undeclared (first use in this function)
clear_bit(WDOG_HW_RUNNING, &wdd->status);
^
drivers/watchdog/gpio_wdt.c: In function 'gpio_wdt_probe':
>> drivers/watchdog/gpio_wdt.c:155:11: error: 'struct watchdog_device' has no member named 'max_hw_timeout_ms'
priv->wdd.max_hw_timeout_ms = hw_margin;
^
vim +/WDOG_HW_RUNNING +72 drivers/watchdog/gpio_wdt.c
66 {
67 struct gpio_wdt_priv *priv = watchdog_get_drvdata(wdd);
68
69 priv->state = priv->active_low;
70 gpio_direction_output(priv->gpio, priv->state);
71
> 72 set_bit(WDOG_HW_RUNNING, &wdd->status);
73
74 return gpio_wdt_ping(wdd);
75 }
76
77 static int gpio_wdt_stop(struct watchdog_device *wdd)
78 {
79 struct gpio_wdt_priv *priv = watchdog_get_drvdata(wdd);
80
81 if (!priv->always_running) {
82 gpio_wdt_disable(priv);
83 clear_bit(WDOG_HW_RUNNING, &wdd->status);
84 }
85
86 return 0;
87 }
88
89 static const struct watchdog_info gpio_wdt_ident = {
90 .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING |
91 WDIOF_SETTIMEOUT,
92 .identity = "GPIO Watchdog",
93 };
94
95 static const struct watchdog_ops gpio_wdt_ops = {
96 .owner = THIS_MODULE,
97 .start = gpio_wdt_start,
98 .stop = gpio_wdt_stop,
99 .ping = gpio_wdt_ping,
100 };
101
102 static int gpio_wdt_probe(struct platform_device *pdev)
103 {
104 struct gpio_wdt_priv *priv;
105 enum of_gpio_flags flags;
106 unsigned int hw_margin;
107 unsigned long f = 0;
108 const char *algo;
109 int ret;
110
111 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
112 if (!priv)
113 return -ENOMEM;
114
115 priv->gpio = of_get_gpio_flags(pdev->dev.of_node, 0, &flags);
116 if (!gpio_is_valid(priv->gpio))
117 return priv->gpio;
118
119 priv->active_low = flags & OF_GPIO_ACTIVE_LOW;
120
121 ret = of_property_read_string(pdev->dev.of_node, "hw_algo", &algo);
122 if (ret)
123 return ret;
124 if (!strcmp(algo, "toggle")) {
125 priv->hw_algo = HW_ALGO_TOGGLE;
126 f = GPIOF_IN;
127 } else if (!strcmp(algo, "level")) {
128 priv->hw_algo = HW_ALGO_LEVEL;
129 f = priv->active_low ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
130 } else {
131 return -EINVAL;
132 }
133
134 ret = devm_gpio_request_one(&pdev->dev, priv->gpio, f,
135 dev_name(&pdev->dev));
136 if (ret)
137 return ret;
138
139 ret = of_property_read_u32(pdev->dev.of_node,
140 "hw_margin_ms", &hw_margin);
141 if (ret)
142 return ret;
143 /* Disallow values lower than 2 and higher than 65535 ms */
144 if (hw_margin < 2 || hw_margin > 65535)
145 return -EINVAL;
146
147 priv->always_running = of_property_read_bool(pdev->dev.of_node,
148 "always-running");
149
150 watchdog_set_drvdata(&priv->wdd, priv);
151
152 priv->wdd.info = &gpio_wdt_ident;
153 priv->wdd.ops = &gpio_wdt_ops;
154 priv->wdd.min_timeout = SOFT_TIMEOUT_MIN;
> 155 priv->wdd.max_hw_timeout_ms = hw_margin;
156 priv->wdd.parent = &pdev->dev;
157
158 if (watchdog_init_timeout(&priv->wdd, 0, &pdev->dev) < 0)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 23545 bytes --]
next prev parent reply other threads:[~2016-01-26 15:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-26 15:12 Guenter Roeck
2016-01-26 15:40 ` kbuild test robot [this message]
2016-01-26 16:22 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201601262354.VRXiACmT%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=dianders@chromium.org \
--cc=kbuild-all@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=patchwork@patchwork.roeck-us.net \
--cc=u.kleine-koenig@pengutronix.de \
--cc=wim@iguana.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome