From: Fu Wei <fu.wei@linaro.org>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>,
Linaro ACPI Mailman List <linaro-acpi@lists.linaro.org>,
linux-watchdog@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
Wei Fu <tekkamanninja@gmail.com>,
G Gregory <graeme.gregory@linaro.org>,
Al Stone <al.stone@linaro.org>,
Hanjun Guo <hanjun.guo@linaro.org>,
Timur Tabi <timur@codeaurora.org>,
Ashwin Chaugule <ashwin.chaugule@linaro.org>,
Arnd Bergmann <arnd@arndb.de>,
vgandhi@codeaurora.org, wim@iguana.be,
Jon Masters <jcm@redhat.com>, Leo Duran <leo.duran@amd.com>,
Jon Corbet <corbet@lwn.net>, Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
rjw@rjwysocki.net
Subject: Re: [PATCH v4 4/7] Watchdog: introdouce "pretimeout" into framework
Date: Tue, 9 Jun 2015 00:44:58 +0800 [thread overview]
Message-ID: <CADyBb7sfAMhcPe2QL3pmwshduW9TC_v0VyBnoZ7xhtY3y3k9vQ@mail.gmail.com> (raw)
In-Reply-To: <556DD5E1.9000104@roeck-us.net>
Hi Guenter,
Great thanks for your review,
On 3 June 2015 at 00:12, Guenter Roeck <linux@roeck-us.net> wrote:
> On 06/01/2015 09:05 PM, fu.wei@linaro.org wrote:
>>
>> From: Fu Wei <fu.wei@linaro.org>
>>
>> Also update Documentation/watchdog/watchdog-kernel-api.txt to
>> introduce:
>> (1)the new elements in the watchdog_device and watchdog_ops struct;
>> (2)the new API "watchdog_init_timeouts"
>>
>> Reasons:
>> (1)kernel already has two watchdog drivers are using "pretimeout":
>> drivers/char/ipmi/ipmi_watchdog.c
>> drivers/watchdog/kempld_wdt.c(but the definition is different)
>> (2)some other drivers are going to use this: ARM SBSA Generic Watchdog
>>
>> Signed-off-by: Fu Wei <fu.wei@linaro.org>
>> ---
>> Documentation/watchdog/watchdog-kernel-api.txt | 47 ++++++++--
>> drivers/watchdog/watchdog_core.c | 115
>> +++++++++++++++++++------
>> drivers/watchdog/watchdog_dev.c | 53 ++++++++++++
>> include/linux/watchdog.h | 33 ++++++-
>> 4 files changed, 212 insertions(+), 36 deletions(-)
>>
>> diff --git a/Documentation/watchdog/watchdog-kernel-api.txt
>> b/Documentation/watchdog/watchdog-kernel-api.txt
>> index a0438f3..95b355d 100644
>> --- a/Documentation/watchdog/watchdog-kernel-api.txt
>> +++ b/Documentation/watchdog/watchdog-kernel-api.txt
>> @@ -49,6 +49,9 @@ struct watchdog_device {
>> unsigned int timeout;
>> unsigned int min_timeout;
>> unsigned int max_timeout;
>> + unsigned int pretimeout;
>> + unsigned int min_pretimeout;
>> + unsigned int max_pretimeout;
>> void *driver_data;
>> struct mutex lock;
>> unsigned long status;
>> @@ -70,6 +73,9 @@ It contains following fields:
>> * timeout: the watchdog timer's timeout value (in seconds).
>> * min_timeout: the watchdog timer's minimum timeout value (in seconds).
>> * max_timeout: the watchdog timer's maximum timeout value (in seconds).
>> +* pretimeout: the watchdog timer's pretimeout value (in seconds).
>> +* min_pretimeout: the watchdog timer's minimum pretimeout value (in
>> seconds).
>> +* max_pretimeout: the watchdog timer's maximum pretimeout value (in
>> seconds).
>> * bootstatus: status of the device after booting (reported with watchdog
>> WDIOF_* status bits).
>> * driver_data: a pointer to the drivers private data of a watchdog
>> device.
>> @@ -92,6 +98,7 @@ struct watchdog_ops {
>> int (*ping)(struct watchdog_device *);
>> unsigned int (*status)(struct watchdog_device *);
>> int (*set_timeout)(struct watchdog_device *, unsigned int);
>> + int (*set_pretimeout)(struct watchdog_device *, unsigned int);
>> unsigned int (*get_timeleft)(struct watchdog_device *);
>> void (*ref)(struct watchdog_device *);
>> void (*unref)(struct watchdog_device *);
>> @@ -153,9 +160,19 @@ they are supported. These optional
>> routines/operations are:
>> and -EIO for "could not write value to the watchdog". On success this
>> routine should set the timeout value of the watchdog_device to the
>> achieved timeout value (which may be different from the requested one
>> - because the watchdog does not necessarily has a 1 second resolution).
>> + because the watchdog does not necessarily has a 1 second resolution;
>> + If the driver supports pretimeout, then the timeout value must be
>> greater
>> + than that).
>> (Note: the WDIOF_SETTIMEOUT needs to be set in the options field of
>> the
>> watchdog's info structure).
>> +* set_pretimeout: this routine checks and changes the pretimeout of the
>> + watchdog timer device. It returns 0 on success, -EINVAL for "parameter
>> out of
>> + range" and -EIO for "could not write value to the watchdog". On success
>> this
>> + routine should set the pretimeout value of the watchdog_device to the
>> + achieved pretimeout value (which may be different from the requested
>> one
>> + because the watchdog does not necessarily has a 1 second resolution).
>> + (Note: the WDIOF_PRETIMEOUT needs to be set in the options field of the
>> + watchdog's info structure).
>> * get_timeleft: this routines returns the time that's left before a
>> reset.
>> * ref: the operation that calls kref_get on the kref of a dynamically
>> allocated watchdog_device struct.
>> @@ -219,8 +236,28 @@ extern int watchdog_init_timeout(struct
>> watchdog_device *wdd,
>> unsigned int timeout_parm, struct
>> device *dev);
>>
>> The watchdog_init_timeout function allows you to initialize the timeout
>> field
>> -using the module timeout parameter or by retrieving the timeout-sec
>> property from
>> -the device tree (if the module timeout parameter is invalid). Best
>> practice is
>> -to set the default timeout value as timeout value in the watchdog_device
>> and
>> -then use this function to set the user "preferred" timeout value.
>> +using the module timeout parameter or by retrieving the first element of
>> +the timeout-sec property from the device tree (if the module timeout
>> parameter
>> +is invalid). Best practice is to set the default timeout value as timeout
>> value
>> +in the watchdog_device and then use this function to set the user
>> "preferred"
>> +timeout value.
>> +This routine returns zero on success and a negative errno code for
>> failure.
>> +
>> +Some watchdog timers have two stage of timeouts(timeout and pretimeout),
>> +to initialize the timeout and pretimeout fields at the same time, the
>> following
>> +function can be used:
>> +
>> +extern int watchdog_init_timeouts(struct watchdog_device *wdd,
>> + unsigned int pretimeout_parm,
>> + unsigned int timeout_parm,
>> + struct device *dev);
>> +
>> +The watchdog_init_timeouts function allows you to initialize the
>> pretimeout and
>> +timeout fields using the module pretimeout and timeout parameter or by
>> +retrieving the elements in the timeout-sec property(the first element is
>> for
>> +timeout, the second one is for pretimeout) from the device tree(if the
>> module
>> +pretimeout and timeout parameter are invalid).
>> +Best practice is to set the default pretimeout and timeout value as
>> pretimeout
>> +and timeout value in the watchdog_device and then use this function to
>> set the
>> +user "preferred" pretimeout value.
>> This routine returns zero on success and a negative errno code for
>> failure.
>> diff --git a/drivers/watchdog/watchdog_core.c
>> b/drivers/watchdog/watchdog_core.c
>> index cec9b55..ff18db3 100644
>> --- a/drivers/watchdog/watchdog_core.c
>> +++ b/drivers/watchdog/watchdog_core.c
>> @@ -43,60 +43,119 @@
>> static DEFINE_IDA(watchdog_ida);
>> static struct class *watchdog_class;
>>
>> -static void watchdog_check_min_max_timeout(struct watchdog_device *wdd)
>> +static void watchdog_check_min_max_timeouts(struct watchdog_device *wdd)
>> {
>> /*
>> - * Check that we have valid min and max timeout values, if
>> - * not reset them both to 0 (=not used or unknown)
>> + * Check that we have valid min and max pretimeout and timeout
>> values,
>> + * if not reset them both to 0 (=not used or unknown)
>> */
>> + if (wdd->min_pretimeout > wdd->max_pretimeout) {
>> + pr_info("Invalid min and max pretimeout, resetting to
>> 0\n");
>> + wdd->min_pretimeout = 0;
>> + wdd->max_pretimeout = 0;
>> + }
>> if (wdd->min_timeout > wdd->max_timeout) {
>> pr_info("Invalid min and max timeout values, resetting to
>> 0!\n");
>> wdd->min_timeout = 0;
>> wdd->max_timeout = 0;
>> }
>> + /*
>> + * Check that we have valid min timeout and max pretimeout values,
>> + * if not reset them.
>> + */
>> + if (wdd->min_pretimeout && wdd->min_timeout < wdd->min_pretimeout)
>> {
>> + pr_info("Invalid min_timeout, resetting to
>> min_pretimeout+1\n");
>> + wdd->min_timeout = wdd->min_pretimeout + 1;
>> + }
>
>
> min_timeout = 10
> max_timeout = 20
> min_pretimeout = 30
> max_pretimeout = 40
>
> will result in min_timeout set to 31.
>
>> + if (wdd->max_pretimeout && wdd->max_timeout < wdd->max_pretimeout)
>> {
>> + pr_info("Invalid max_pretimeout, resetting to
>> max_timeout-1\n");
>> + wdd->max_pretimeout = wdd->max_timeout - 1;
>
>
> and then you set max_pretimeout to 19.
>
> So we'll end up with
>
> min_timeout = 31
> max_timeout = 20
> min_pretimeout = 30
> max_pretimeout = 19
>
> Another example: max_pretimeout = 10, max_timeout = 0 -> max_pretimeout =
> -1.
>
>> + }
>
>
> You'll need to determine valid ranges and then enforce those.
> Maybe something like
> min_pretimeout < min_timeout < max_timeout
> and
> min_pretimeout < max_pretimeout < max_timeout
>
> Not sure if we should adjust anything to a value different to 0.
> Seems to me this is just asking for trouble.
yes, this is a new problem, but let me fix this in my new patchset:
(1)these values is set by driver in the initialization procedure,
according to hardware info.
(2) I thinks there is not any driver should call this function after
initialization.
So if we find any incorrect value, I think the hardware info we got
is wrong , maybe we can just give up
any suggestion ?
>
>> }
>>
>> /**
>> - * watchdog_init_timeout() - initialize the timeout field
>> + * watchdog_init_timeouts() - initialize the pretimeout and timeout field
>> + * @pretimeout_parm: pretimeout module parameter
>> * @timeout_parm: timeout module parameter
>> * @dev: Device that stores the timeout-sec property
>> *
>> - * Initialize the timeout field of the watchdog_device struct with either
>> the
>> - * timeout module parameter (if it is valid value) or the timeout-sec
>> property
>> - * (only if it is a valid value and the timeout_parm is out of bounds).
>> - * If none of them are valid then we keep the old value (which should
>> normally
>> - * be the default timeout value.
>> + * Initialize the pretimeout and timeout field of the watchdog_device
>> struct
>> + * with either the pretimeout and timeout module parameter (if it is
>> valid
>> + * value) or the timeout-sec property (only if it is a valid value and
>> the
>
>
> just 'if it is valid', or 'if it is a valid value' in both cases.
OK. np,. Thanks
>
>> + * pretimeout_parm and timeout_parm is out of bounds). If none of them
>> are
>
>
> s/and/or/
Thanks , fixed
>
>
>> + * valid, then we keep the old value (which should normally be the
>> default
>> + * timeout value).
>> *
>> * A zero is returned on success and -EINVAL for failure.
>> */
>> -int watchdog_init_timeout(struct watchdog_device *wdd,
>> - unsigned int timeout_parm, struct device
>> *dev)
>> +int watchdog_init_timeouts(struct watchdog_device *wdd,
>> + unsigned int pretimeout_parm,
>> + unsigned int timeout_parm,
>> + struct device *dev)
>> {
>> - unsigned int t = 0;
>> - int ret = 0;
>> + int ret = 0, length = 0;
>> + u32 timeouts[2] = {0};
>>
>> - watchdog_check_min_max_timeout(wdd);
>> + watchdog_check_min_max_timeouts(wdd);
>>
>> - /* try to get the timeout module parameter first */
>> - if (!watchdog_timeout_invalid(wdd, timeout_parm) && timeout_parm)
>> {
>> - wdd->timeout = timeout_parm;
>> - return ret;
>> + /*
>> + * Try to get the pretimeout module parameter first,
>> + * but it can be "0", that means we don't use pretimeout.
>> + */
>> + if (pretimeout_parm) {
>> + if (!watchdog_pretimeout_invalid(wdd, pretimeout_parm))
>> + timeouts[1] = pretimeout_parm;
>> + ret = -EINVAL; /* pretimeout_parm is not "0", and invalid
>> */
>
>
> pretimeout_parm is always invalid ? Why ?
Sorry, I lost a "else" , this is a bug/typo
>
>> }
>> - if (timeout_parm)
>> +
>> + /*
>> + * Try to get the timeout module parameter,
>> + * if it's valid and pretimeout is ont invalid(ret == 0),
>
>
> s/ont/not/
Thanks , fixed
>
>> + * assignment and return zero. Otherwise, try dtb.
>> + */
>> + if (timeout_parm) {
>> + if (!watchdog_timeout_invalid(wdd, timeout_parm) && !ret)
>> {
>
>
> Unless I am missing something, you'll never get here if the pretimeout
> module
> parameter is set.
yes, because of the bug above.
Will fix it in my next patchset , thanks :-)
>
>> + wdd->timeout = timeout_parm;
>> + wdd->pretimeout = timeouts[1];
>> + return 0;
>> + }
>> ret = -EINVAL;
>> + }
>>
>> - /* try to get the timeout_sec property */
>> + /*
>> + * We get here, the situation is one of them:
>> + * (1)at least one of parameters is invalid(ret = -EINVAL);
>> + * (2)both of them are 0.(ret = 0)
>> + * So give up the module parameter(at least drop the invalid one),
>> + * try to get the timeout_sec property from dtb.
>
>
> Please simplify the comment.
>
> Either at least one of the module parameters is invalid,
> or both of them are 0. Try to get the timeout_sec property.
Thanks , will do.
>
>> + */
>> if (dev == NULL || dev->of_node == NULL)
>> return ret;
>> - of_property_read_u32(dev->of_node, "timeout-sec", &t);
>> - if (!watchdog_timeout_invalid(wdd, t) && t)
>> - wdd->timeout = t;
>> - else
>> - ret = -EINVAL;
>>
>> - return ret;
>> + /*
>> + * We get here, that means maybe we can get timeouts from dtb,
>> + * if "timeout-sec" is available and the data is valid.
>> + */
>
>
> That comment is not needed; it is obvious.
OK, will remove it
>
>> + of_find_property(dev->of_node, "timeout-sec", &length);
>> + if (length > 0 && length <= sizeof(u32) * 2) {
>
>
> You need to check the return value of of_find_property() instead of assuming
> that length will be 0 if it is not found.
you are right, will do, thanks
>
>> + of_property_read_u32_array(dev->of_node,
>> + "timeout-sec", timeouts,
>> + length / sizeof(u32));
>> + if (length == sizeof(u32) * 2 && timeouts[1] &&
>> + watchdog_pretimeout_invalid(wdd, timeouts[1]))
>> + return -EINVAL; /* pretimeout is invalid
>> */
>
>
> Obvious comment.
OK, will remove it
>
>
>> +
>> + if (!watchdog_timeout_invalid(wdd, timeouts[0]) &&
>> + timeouts[0]) {
>> + wdd->timeout = timeouts[0];
>> + wdd->pretimeout = timeouts[1];
>> + return 0;
>> + }
>> + }
>> +
>> + return -EINVAL;
>> }
>> -EXPORT_SYMBOL_GPL(watchdog_init_timeout);
>> +EXPORT_SYMBOL_GPL(watchdog_init_timeouts);
>>
>> /**
>> * watchdog_register_device() - register a watchdog device
>> @@ -119,7 +178,7 @@ int watchdog_register_device(struct watchdog_device
>> *wdd)
>> if (wdd->ops->start == NULL || wdd->ops->stop == NULL)
>> return -EINVAL;
>>
>> - watchdog_check_min_max_timeout(wdd);
>> + watchdog_check_min_max_timeouts(wdd);
>>
>> /*
>> * Note: now that all watchdog_device data has been verified, we
>> diff --git a/drivers/watchdog/watchdog_dev.c
>> b/drivers/watchdog/watchdog_dev.c
>> index 6aaefba..af0777e 100644
>> --- a/drivers/watchdog/watchdog_dev.c
>> +++ b/drivers/watchdog/watchdog_dev.c
>> @@ -218,6 +218,38 @@ out_timeout:
>> }
>>
>> /*
>> + * watchdog_set_pretimeout: set the watchdog timer pretimeout
>> + * @wddev: the watchdog device to set the timeout for
>> + * @pretimeout: pretimeout to set in seconds
>> + */
>> +
>> +static int watchdog_set_pretimeout(struct watchdog_device *wddev,
>> + unsigned int pretimeout)
>> +{
>> + int err;
>> +
>> + if (!wddev->ops->set_pretimeout ||
>> + !(wddev->info->options & WDIOF_PRETIMEOUT))
>> + return -EOPNOTSUPP;
>> +
>> + if (watchdog_pretimeout_invalid(wddev, pretimeout))
>> + return -EINVAL;
>> +
>> + mutex_lock(&wddev->lock);
>> +
>> + if (test_bit(WDOG_UNREGISTERED, &wddev->status)) {
>> + err = -ENODEV;
>> + goto out_pretimeout;
>> + }
>> +
>> + err = wddev->ops->set_pretimeout(wddev, pretimeout);
>> +
>> +out_pretimeout:
>> + mutex_unlock(&wddev->lock);
>> + return err;
>> +}
>> +
>> +/*
>> * watchdog_get_timeleft: wrapper to get the time left before a
>> reboot
>> * @wddev: the watchdog device to get the remaining time from
>> * @timeleft: the time that's left
>> @@ -388,6 +420,27 @@ static long watchdog_ioctl(struct file *file,
>> unsigned int cmd,
>> if (wdd->timeout == 0)
>> return -EOPNOTSUPP;
>> return put_user(wdd->timeout, p);
>> + case WDIOC_SETPRETIMEOUT:
>> + /* check if we support the pretimeout */
>> + if (!(wdd->info->options & WDIOF_PRETIMEOUT))
>> + return -EOPNOTSUPP;
>> + if (get_user(val, p))
>> + return -EFAULT;
>> + err = watchdog_set_pretimeout(wdd, val);
>> + if (err < 0)
>> + return err;
>> + /*
>> + * If the watchdog is active then we send a keepalive ping
>> + * to make sure that the watchdog keeps running (and if
>> + * possible that it takes the new pretimeout)
>> + */
>> + watchdog_ping(wdd);
>> + /* Fall */
>> + case WDIOC_GETPRETIMEOUT:
>> + /* check if we support the pretimeout */
>> + if (wdd->info->options & WDIOF_PRETIMEOUT)
>> + return put_user(wdd->pretimeout, p);
>> + return -EOPNOTSUPP;
>> case WDIOC_GETTIMELEFT:
>> err = watchdog_get_timeleft(wdd, &val);
>> if (err)
>> diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h
>> index a746bf5..b1e325d 100644
>> --- a/include/linux/watchdog.h
>> +++ b/include/linux/watchdog.h
>> @@ -25,6 +25,7 @@ struct watchdog_device;
>> * @ping: The routine that sends a keepalive ping to the watchdog
>> device.
>> * @status: The routine that shows the status of the watchdog device.
>> * @set_timeout:The routine for setting the watchdog devices timeout
>> value.
>> + * @set_pretimeout:The routine for setting the watchdog devices
>> pretimeout value
>> * @get_timeleft:The routine that get's the time that's left before a
>> reset.
>> * @ref: The ref operation for dyn. allocated watchdog_device
>> structs
>> * @unref: The unref operation for dyn. allocated watchdog_device
>> structs
>> @@ -44,6 +45,7 @@ struct watchdog_ops {
>> int (*ping)(struct watchdog_device *);
>> unsigned int (*status)(struct watchdog_device *);
>> int (*set_timeout)(struct watchdog_device *, unsigned int);
>> + int (*set_pretimeout)(struct watchdog_device *, unsigned int);
>> unsigned int (*get_timeleft)(struct watchdog_device *);
>> void (*ref)(struct watchdog_device *);
>> void (*unref)(struct watchdog_device *);
>> @@ -62,6 +64,9 @@ struct watchdog_ops {
>> * @timeout: The watchdog devices timeout value.
>> * @min_timeout:The watchdog devices minimum timeout value.
>> * @max_timeout:The watchdog devices maximum timeout value.
>> + * @pretimeout: The watchdog devices pretimeout value.
>> + * @min_pretimeout:The watchdog devices minimum pretimeout value.
>> + * @max_pretimeout:The watchdog devices maximum pretimeout value.
>> * @driver-data:Pointer to the drivers private data.
>> * @lock: Lock for watchdog core internal use only.
>> * @status: Field that contains the devices internal status bits.
>> @@ -86,6 +91,9 @@ struct watchdog_device {
>> unsigned int timeout;
>> unsigned int min_timeout;
>> unsigned int max_timeout;
>> + unsigned int pretimeout;
>> + unsigned int min_pretimeout;
>> + unsigned int max_pretimeout;
>> void *driver_data;
>> struct mutex lock;
>> unsigned long status;
>> @@ -117,7 +125,17 @@ static inline void watchdog_set_nowayout(struct
>> watchdog_device *wdd, bool noway
>> static inline bool watchdog_timeout_invalid(struct watchdog_device *wdd,
>> unsigned int t)
>> {
>> return ((wdd->max_timeout != 0) &&
>> - (t < wdd->min_timeout || t > wdd->max_timeout));
>> + (t < wdd->min_timeout || t > wdd->max_timeout ||
>> + t <= wdd->pretimeout));
>> +}
>> +
>> +/* Use the following function to check if a pretimeout value is invalid
>> */
>> +static inline bool watchdog_pretimeout_invalid(struct watchdog_device
>> *wdd,
>> + unsigned int t)
>> +{
>> + return (wdd->max_pretimeout != 0 &&
>> + (t < wdd->min_pretimeout || t > wdd->max_pretimeout ||
>> + (wdd->timeout != 0 && t >= wdd->timeout)));
>
>
> This validates a pretimeout as valid if max_pretimeout == 0,
> no matter what timeout is set to.
>
> Do we really need to check if timeout == 0 ? Can that ever happen ?
(wdd->timeout != 0 && t >= wdd->timeout)
if we have set timeout(wdd->timeout != 0), and t(pretimeout) >
wdd->timeout, t is a invalid value.
Am I correct?
the reason of adding "wdd->timeout != 0": if driver calls this
function before setting up wdd->timeout.
>
>> }
>>
>> /* Use the following functions to manipulate watchdog driver specific
>> data */
>> @@ -132,11 +150,20 @@ static inline void *watchdog_get_drvdata(struct
>> watchdog_device *wdd)
>> }
>>
>> /* drivers/watchdog/watchdog_core.c */
>> -extern int watchdog_init_timeout(struct watchdog_device *wdd,
>> - unsigned int timeout_parm, struct device
>> *dev);
>> +extern int watchdog_init_timeouts(struct watchdog_device *wdd,
>> + unsigned int pretimeout_parm,
>> + unsigned int timeout_parm,
>> + struct device *dev);
>
>
> No 'extern' here, please. Yes, we'll need to fix that for the other
> function declarations, but that is not a reason to introduce new ones.
OK, I do agree with you on this, have fixed it in my next patchset.
>
> Thanks,
> Guenter
>
--
Best regards,
Fu Wei
Software Engineer
Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch
Ph: +86 21 61221326(direct)
Ph: +86 186 2020 4684 (mobile)
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021
next prev parent reply other threads:[~2015-06-08 16:44 UTC|newest]
Thread overview: 312+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <=fu.wei@linaro.org>
2015-05-15 11:08 ` [PATCH 0/6] Watchdog: introdouce ARM SBSA watchdog driver fu.wei
2015-05-15 11:08 ` [PATCH 1/6] Documentation: add sbsa-gwdt.txt documentation fu.wei
[not found] ` <1431688090-2145-2-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-15 14:06 ` Arnd Bergmann
2015-05-15 14:14 ` Fu Wei
2015-05-16 10:29 ` Fu Wei
2015-05-15 11:08 ` [PATCH 2/6] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
[not found] ` <1431688090-2145-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-15 11:08 ` [PATCH 3/6] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-05-15 14:07 ` [Linaro-acpi] [PATCH 0/6] Watchdog: introdouce ARM SBSA watchdog driver Arnd Bergmann
2015-05-16 10:33 ` Fu Wei
2015-05-15 11:24 ` [PATCH 4/6] Watchdog: introdouce "pretimeout" into framework fu.wei
2015-05-15 11:24 ` [PATCH 5/6] Watchdog: introdouce ARM SBSA watchdog driver fu.wei
2015-05-15 13:57 ` Arnd Bergmann
2015-05-16 12:01 ` Fu Wei
2015-05-16 12:26 ` Timur Tabi
[not found] ` <1431689090-3125-2-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-15 22:57 ` Guenter Roeck
[not found] ` <555679DE.4080502-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-18 17:38 ` Fu Wei
2015-05-15 11:24 ` [PATCH 6/6] ACPI: import watchdog info of GTDT into platform device fu.wei
2015-05-15 13:33 ` [PATCH 4/6] Watchdog: introdouce "pretimeout" into framework Guenter Roeck
2015-05-15 13:49 ` Fu Wei
2015-05-15 13:55 ` Timur Tabi
2015-05-15 17:59 ` Guenter Roeck
2015-05-15 18:01 ` Guenter Roeck
[not found] ` <20150515180105.GB19230-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-18 17:22 ` Fu Wei
2015-05-15 14:04 ` Arnd Bergmann
2015-05-18 17:19 ` Fu Wei
2015-05-18 17:23 ` Guenter Roeck
2015-05-18 17:39 ` Fu Wei
2015-05-18 20:03 ` Arnd Bergmann
2015-05-18 20:14 ` Guenter Roeck
[not found] ` <20150518201445.GA21230-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-19 1:12 ` Fu Wei
2015-06-02 4:05 ` [PATCH v4 0/7] Watchdog: introduce ARM SBSA watchdog driver fu.wei
2015-06-02 4:05 ` [PATCH v4 1/7] Documentation: add sbsa-gwdt.txt documentation fu.wei
2015-06-02 4:05 ` [PATCH v4 2/7] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
[not found] ` <1433217907-928-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-02 4:05 ` [PATCH v4 3/7] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-02 4:05 ` [PATCH v4 4/7] Watchdog: introdouce "pretimeout" into framework fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1433217907-928-5-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-02 16:12 ` Guenter Roeck
2015-06-08 16:44 ` Fu Wei [this message]
2015-06-02 4:05 ` [PATCH v4 5/7] Watchdog: introduce ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1433217907-928-6-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-02 15:32 ` Timur Tabi
[not found] ` <556DCC95.806-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-02 15:37 ` Guenter Roeck
2015-06-02 16:55 ` Fu Wei
[not found] ` <CADyBb7sXiMNtrH+Eu1Qj00TPNLMMr5cCTPObzFmKnHLsbWH79Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-02 17:07 ` Guenter Roeck
[not found] ` <556DE2D5.3090906-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-08 16:05 ` Fu Wei
[not found] ` <CADyBb7uT=gFJkK8s-QF1n4Z+Zov9Lurp1nvBO-C-qszTqbMYXQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-08 18:26 ` Guenter Roeck
2015-06-09 3:59 ` Fu Wei
[not found] ` <CADyBb7sYPnvDVEJYVQm65B1JV=yvq10+ezs2x3f8F=TJCZ+OJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-09 4:37 ` Guenter Roeck
[not found] ` <55766D74.2060401-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-09 6:37 ` Fu Wei
[not found] ` <CADyBb7vR-jP6ZjzMSnprrSXbNayk8umx+cXV3TsGypfhZcCwTw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-09 8:04 ` Guenter Roeck
2015-06-09 10:46 ` Fu Wei
2015-06-09 16:22 ` Guenter Roeck
[not found] ` <557712CF.8010802-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-09 16:29 ` Timur Tabi
2015-06-09 16:45 ` Guenter Roeck
[not found] ` <5577180E.4070804-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-09 16:53 ` Timur Tabi
2015-06-10 3:41 ` Fu Wei
2015-06-10 4:20 ` Fu Wei
[not found] ` <CADyBb7s7NpQJFiFFGbbjCTQ0+bNCZoVMC4KwaZbWwGs_Wa=mLg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-10 14:22 ` Timur Tabi
[not found] ` <5578482E.70307-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-10 14:36 ` Fu Wei
[not found] ` <CADyBb7sT=NbtNVfR4wPYi2gbWq73CDY-fu+XAURS_yTY6sL_mQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-10 14:41 ` Fu Wei
[not found] ` <CADyBb7sVd5nLwb3eHRPiNt-WTynfaJonOyuE_bD694dayyvevA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-10 15:38 ` Fu Wei
[not found] ` <CADyBb7tSkdRc0GHbX_vAdDAeFGVS=CFCdC_jMCm5LYmg9m1Qow-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-10 17:54 ` Fu Wei
2015-06-11 0:22 ` Timur Tabi
2015-06-11 3:00 ` Fu Wei
2015-06-11 3:45 ` Timur Tabi
2015-06-11 5:13 ` Guenter Roeck
2015-06-11 5:33 ` Fu Wei
[not found] ` <55790455.7090809-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-11 5:32 ` Fu Wei
2015-06-02 17:21 ` Timur Tabi
2015-06-03 18:16 ` Timur Tabi
[not found] ` <556F4489.6030206-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-03 18:25 ` Guenter Roeck
[not found] ` <20150603182503.GD6460-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-03 18:53 ` Timur Tabi
2015-06-03 19:29 ` Arnd Bergmann
2015-09-10 22:45 ` Jon Masters
2015-09-14 4:21 ` Pratyush Anand
[not found] ` <20150914042104.GA4682-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-09-14 15:27 ` Fu Wei
2015-09-14 8:51 ` Catalin Marinas
[not found] ` <55F207FD.2030007-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-15 3:16 ` Fu Wei
2015-06-08 16:10 ` Fu Wei
2015-06-02 4:05 ` [PATCH v4 6/7] ACPI: add GTDT table parse driver into ACPI driver fu.wei
2015-06-02 4:05 ` [PATCH v4 7/7] clocksource: simplify ACPI code in arm_arch_timer.c fu.wei
[not found] ` <=fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-21 8:32 ` [PATCH v2 0/7] Watchdog: introduce ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-05-21 8:32 ` [PATCH v2 2/7] Documentation: add sbsa-gwdt.txt documentation fu.wei
2015-05-21 8:32 ` [PATCH v2 3/7] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
2015-05-21 8:45 ` Arnd Bergmann
2015-05-21 8:49 ` Fu Wei
2015-05-21 8:32 ` [PATCH v2 4/7] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei
2015-05-21 20:33 ` Suravee Suthikulpanit
2015-05-21 8:32 ` [PATCH v2 5/7] Watchdog: introduce "pretimeout" into framework fu.wei
2015-05-21 9:04 ` Guenter Roeck
[not found] ` <555D9FA8.9060106-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-21 10:05 ` Fu Wei
2015-05-21 10:17 ` Guenter Roeck
[not found] ` <555DB0B8.9000503-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-21 10:50 ` Fu Wei
2015-05-21 13:28 ` Guenter Roeck
2015-05-21 10:11 ` Guenter Roeck
[not found] ` <1432197156-16947-6-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-21 15:32 ` Guenter Roeck
2015-05-22 5:17 ` Fu Wei
[not found] ` <20150521153225.GA17441-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-25 3:09 ` Fu Wei
2015-05-22 6:30 ` Timo Kokkonen
2015-05-22 8:23 ` Fu Wei
2015-05-22 8:59 ` Timo Kokkonen
[not found] ` <555EEFDB.2030907-20XrK1Fq8EXHOG6cAo2yLw@public.gmane.org>
2015-05-22 10:46 ` Fu Wei
2015-05-22 12:14 ` Timo Kokkonen
2015-05-22 13:37 ` Guenter Roeck
2015-05-22 13:23 ` Guenter Roeck
[not found] ` <555F2DED.2010200-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-22 14:38 ` Fu Wei
2015-05-22 15:05 ` Guenter Roeck
2015-05-24 16:17 ` Fu Wei
2015-05-21 8:32 ` [PATCH v2 7/7] ACPI: import watchdog info of GTDT into platform device fu.wei
[not found] ` <1432197156-16947-8-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-22 15:38 ` Hanjun Guo
2015-05-23 19:46 ` Timur Tabi
[not found] ` <1432197156-16947-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-21 8:32 ` [PATCH v2 1/7] clocksource: export "arch_timer_get_rate" for the other drivers fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-05-22 14:02 ` Hanjun Guo
2015-05-22 14:09 ` Timur Tabi
2015-05-22 15:16 ` Guenter Roeck
2015-05-22 16:22 ` Timur Tabi
2015-05-21 8:32 ` [PATCH v2 6/7] Watchdog: introduce ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1432197156-16947-7-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-21 10:34 ` Guenter Roeck
2015-05-21 11:08 ` Fu Wei
[not found] ` <CADyBb7vbcHG69cpnx6sUwaT7abS7w3Er62+50D6PUrGHVnG9vQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-21 15:18 ` Guenter Roeck
2015-05-21 15:46 ` Fu Wei
2015-05-21 15:59 ` Guenter Roeck
[not found] ` <20150521155950.GA18300-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-21 16:12 ` Fu Wei
[not found] ` <CADyBb7vwGcdxeOE+QEzgmF5=2dsk83F4WyfJvp2ccZ12w1qYHQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-21 16:33 ` Timur Tabi
[not found] ` <555E08BD.9010603-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-22 5:05 ` Fu Wei
2015-05-21 13:09 ` Timur Tabi
[not found] ` <555DD8EE.1060607-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-21 15:28 ` Guenter Roeck
[not found] ` <20150521152838.GB16668-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-25 3:43 ` Fu Wei
[not found] ` <CADyBb7tH+oa_efFTA0V7YksNN+8L+4xGtWuXpxp91SO3e_f9Vg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-25 3:46 ` Timur Tabi
[not found] ` <55629B15.2060102-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-25 4:11 ` Fu Wei
2015-05-21 15:42 ` Timur Tabi
2015-05-23 16:28 ` Fu Wei
2015-05-23 16:50 ` Fu Wei
[not found] ` <CADyBb7vpC6ihvkrRG-htCS8-_xRkjtny=9ZGQsCsmK7-ng5AxA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-23 19:40 ` Timur Tabi
[not found] ` <5560D7AC.50009-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-23 20:01 ` Guenter Roeck
[not found] ` <5560DCB6.3090008-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-23 20:27 ` Timur Tabi
2015-05-23 20:44 ` Guenter Roeck
2015-05-24 10:50 ` Fu Wei
2015-05-24 10:15 ` Fu Wei
[not found] ` <CADyBb7t7+aT=pF0we5umAGXJAJ0njU0zULFAZ-OHVpE0m=ueyg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 14:15 ` Guenter Roeck
[not found] ` <5561DD0B.1040008-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-24 15:50 ` Fu Wei
2015-05-24 16:23 ` Guenter Roeck
2015-05-24 16:47 ` Fu Wei
[not found] ` <CADyBb7vAwXNFH50tFQUxoqWKx7VBLzo5xd7takBgdVYpJ_0d8g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 16:58 ` Guenter Roeck
[not found] ` <5562031D.3040808-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-24 17:04 ` Fu Wei
2015-05-24 15:02 ` Timur Tabi
[not found] ` <5561E7EA.5090702-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-24 16:04 ` Fu Wei
[not found] ` <CADyBb7tYL7ATRKNAoRYTXo53LKdCiFZ2YDib4g0nZ8=YxTgO+A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 16:13 ` Timur Tabi
[not found] ` <5561F8A8.4080607-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-24 16:29 ` Guenter Roeck
2015-05-24 16:33 ` Fu Wei
2015-05-24 16:44 ` Timur Tabi
2015-05-24 16:50 ` Guenter Roeck
2015-05-24 16:52 ` Fu Wei
[not found] ` <CADyBb7snhcR43KT_xrFipBH3PBNBfj39-hE-mSjJ3vMb7Ehp+A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 17:19 ` Timur Tabi
2015-05-24 17:23 ` Fu Wei
[not found] ` <55620808.4030605-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-24 17:32 ` Guenter Roeck
2015-05-24 17:47 ` Timur Tabi
2015-05-25 2:03 ` Fu Wei
2015-05-25 2:00 ` Fu Wei
2015-05-24 16:29 ` Fu Wei
2015-05-22 14:50 ` Hanjun Guo
2015-05-22 14:55 ` Arnd Bergmann
2015-05-22 15:01 ` Guenter Roeck
[not found] ` <20150522150145.GA2930-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-22 15:18 ` Hanjun Guo
[not found] ` <555F48BD.4010605-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-22 15:24 ` [Linaro-acpi] " Arnd Bergmann
2015-05-22 16:19 ` Timur Tabi
2015-05-22 20:13 ` Arnd Bergmann
2015-05-22 20:17 ` Timur Tabi
2015-05-23 7:25 ` Fu Wei
2015-05-22 16:19 ` Timur Tabi
2015-05-23 14:47 ` Fu Wei
2015-05-22 16:18 ` Timur Tabi
2015-05-23 15:08 ` Timur Tabi
2015-05-23 17:26 ` Fu Wei
2015-05-23 18:35 ` Guenter Roeck
2015-05-23 18:37 ` Timur Tabi
2015-05-23 19:03 ` Fu Wei
2015-05-23 19:51 ` Guenter Roeck
2015-05-24 9:58 ` Fu Wei
[not found] ` <CADyBb7sW8GTJmRR2ysUAYtZ=mkSCFZBzXuor=puLck0Q983NMw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 14:06 ` Guenter Roeck
[not found] ` <5561DAF3.8020805-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-24 15:06 ` Timur Tabi
2015-05-24 15:37 ` Fu Wei
2015-05-23 18:40 ` Timur Tabi
[not found] ` <5560C984.10108-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-23 19:14 ` Fu Wei
2015-05-23 19:21 ` Timur Tabi
2015-05-21 8:46 ` [Linaro-acpi] [PATCH v2 0/7] " Arnd Bergmann
2015-05-21 9:01 ` Fu Wei
2015-05-21 20:36 ` Suravee Suthikulpanit
2015-05-22 5:08 ` Fu Wei
2015-05-25 10:03 ` [PATCH v3 0/6] " fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1432548193-19569-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-25 10:03 ` [PATCH v3 1/6] Documentation: add sbsa-gwdt.txt documentation fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-05-25 10:03 ` [PATCH v3 2/6] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
2015-05-25 10:03 ` [PATCH v3 3/6] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei
2015-05-25 10:03 ` [PATCH v3 4/6] Watchdog: introdouce "pretimeout" into framework fu.wei
[not found] ` <1432548193-19569-5-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-25 19:28 ` Guenter Roeck
2015-05-25 10:03 ` [PATCH v3 5/6] Watchdog: introduce ARM SBSA watchdog driver fu.wei
[not found] ` <1432548193-19569-6-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-25 19:39 ` Guenter Roeck
[not found] ` <55637A6D.3080403-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-29 9:11 ` Fu Wei
2015-05-29 14:54 ` Guenter Roeck
2015-05-29 15:05 ` Fu Wei
2015-05-26 16:50 ` Timur Tabi
[not found] ` <5564A44A.5000606-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-29 10:17 ` Fu Wei
[not found] ` <CADyBb7uQCPoerjyiGT3uUxXJk6XVTEkEuOdEB+-w6G-=RrdTmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-29 13:28 ` Timur Tabi
[not found] ` <55686960.5010503-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-29 14:32 ` Fu Wei
[not found] ` <CADyBb7tdoajU4crdjrjCf68_Lz=8KbxAX4+Gd_H15aNaimHXww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-29 15:46 ` Timur Tabi
2015-05-29 17:53 ` Fu Wei
[not found] ` <CADyBb7t4moXr_a9unRXDHZCcmbvjWui2ifJ6=eiv8Ce=FOWoYA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-29 18:27 ` Timur Tabi
[not found] ` <556889D9.5070707-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-29 22:10 ` Guenter Roeck
2015-06-01 7:50 ` Fu Wei
2015-05-25 10:03 ` [PATCH v3 6/6] ACPI: import watchdog info of GTDT into platform device fu.wei
2015-05-26 8:28 ` Hanjun Guo
2015-05-26 16:35 ` Timur Tabi
[not found] ` <5564A0C7.1090306-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-26 18:24 ` Guenter Roeck
2015-05-27 3:01 ` Hanjun Guo
[not found] ` <5565336D.6040904-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-27 3:08 ` Timur Tabi
[not found] ` <1432548193-19569-7-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-26 12:28 ` Will Deacon
2015-05-26 15:02 ` Ashwin Chaugule
2015-05-26 15:18 ` Will Deacon
2015-05-26 15:35 ` Ashwin Chaugule
2015-05-26 15:36 ` Guenter Roeck
[not found] ` <20150526153613.GA22487-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-05-26 16:27 ` Fu Wei
[not found] ` <CADyBb7uMh3vKktXa1VJJdchcCQPyOuZ=5ztxoujjyjmxWGhq5w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-27 10:44 ` Will Deacon
[not found] ` <20150527104408.GB29002-5wv7dgnIgG8@public.gmane.org>
2015-05-29 11:13 ` Fu Wei
2015-06-10 13:41 ` [PATCH v5 0/8] Watchdog: introduce ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 13:41 ` [PATCH v5 1/8] Documentation: add sbsa-gwdt.txt documentation fu.wei
2015-06-10 13:41 ` [PATCH v5 4/8] Watchdog: introdouce "pretimeout" into framework fu.wei
[not found] ` <1433943713-32466-5-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-10 16:21 ` Guenter Roeck
2015-06-11 11:22 ` Fu Wei
[not found] ` <CADyBb7uzf0CUop5q9V2xmzmNvxPr8b+OEaV-0GxjmVvxKvRCeA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-11 16:38 ` Guenter Roeck
[not found] ` <1433943713-32466-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-10 13:41 ` [PATCH v5 2/8] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 13:41 ` [PATCH v5 3/8] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 13:41 ` [PATCH v5 5/8] Watchdog: introduce ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 13:41 ` [PATCH v5 6/8] ACPI: add GTDT table parse driver into ACPI driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 13:41 ` [PATCH v5 7/8] Watchdog: enable ACPI GTDT support for ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 13:41 ` [PATCH v5 8/8] clocksource: simplify ACPI code in arm_arch_timer.c fu.wei
2015-06-10 17:47 ` [PATCH non-pretimeout 0/7] Watchdog: introduce ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 17:47 ` [PATCH non-pretimeout 2/7] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
2015-06-10 17:47 ` [PATCH non-pretimeout 4/7] Watchdog: introduce ARM SBSA watchdog driver fu.wei
[not found] ` <1433958452-23721-5-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-11 5:33 ` Guenter Roeck
2015-06-11 5:44 ` Fu Wei
2015-06-11 5:49 ` Guenter Roeck
[not found] ` <55792171.7050600-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-11 5:59 ` Fu Wei
2015-06-12 3:57 ` Timur Tabi
[not found] ` <557A58A5.4010208-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-14 10:15 ` Fu Wei
2015-06-11 16:28 ` [non-pretimeout,4/7] " Guenter Roeck
2015-06-23 13:26 ` Fu Wei
[not found] ` <CADyBb7uGT9bTNiG7524wrd14xiFfgwoDNMq1_J2HDxiK-ogc8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-23 15:21 ` Guenter Roeck
2015-06-23 16:17 ` Fu Wei
2015-06-23 16:43 ` Guenter Roeck
[not found] ` <20150623164314.GB20017-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-06-23 17:01 ` Fu Wei
2015-06-10 17:47 ` [PATCH non-pretimeout 5/7] ACPI: add GTDT table parse driver into ACPI driver fu.wei
2015-06-11 11:14 ` Hanjun Guo
[not found] ` <1433958452-23721-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-10 17:47 ` [PATCH non-pretimeout 1/7] Documentation: add sbsa-gwdt.txt documentation fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-10 17:47 ` [PATCH non-pretimeout 3/7] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1433958452-23721-4-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-12 20:54 ` Timur Tabi
2015-06-14 10:05 ` Fu Wei
[not found] ` <CADyBb7seDgmQYxjsxCo_thPr_w847oy7d0AEiL8w9T_ZCF9+BQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-14 13:17 ` Timur Tabi
2015-06-14 13:57 ` Guenter Roeck
2015-06-15 11:00 ` Fu Wei
2015-06-10 17:47 ` [PATCH non-pretimeout 6/7] Watchdog: enable ACPI GTDT support for ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-12 13:16 ` Timur Tabi
2015-06-10 17:47 ` [PATCH non-pretimeout 7/7] clocksource: simplify ACPI code in arm_arch_timer.c fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-23 14:16 ` [PATCH v6 0/8] Watchdog: introduce ARM SBSA watchdog driver fu.wei
2015-06-23 14:16 ` [PATCH v6 3/8] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei
[not found] ` <1435068994-13526-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-23 14:16 ` [PATCH v6 1/8] Documentation: add sbsa-gwdt.txt documentation fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1435068994-13526-2-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-07-14 14:49 ` Rob Herring
2015-07-14 15:48 ` Fu Wei
2015-07-15 12:52 ` Fu Wei
2015-06-23 14:16 ` [PATCH v6 2/8] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-23 14:16 ` [PATCH v6 4/8] Watchdog: introdouce "pretimeout" into framework fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-29 16:53 ` [PATCH v6 0/8] Watchdog: introduce ARM SBSA watchdog driver Fu Wei
2015-06-29 19:16 ` Guenter Roeck
2015-06-30 23:47 ` Fu Wei
[not found] ` <559199AB.8090106-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-07-13 9:09 ` Fu Wei
2015-07-13 15:34 ` Guenter Roeck
[not found] ` <20150713153437.GA10688-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-07-14 0:42 ` Fu Wei
2015-06-23 15:59 ` [PATCH v6 5/8] " fu.wei
[not found] ` <1435075182-20182-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-23 15:59 ` [PATCH v6 6/8] ACPI: add GTDT table parse driver into ACPI driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1435075182-20182-2-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-07-23 8:32 ` Fu Wei
2015-06-23 15:59 ` [PATCH v6 7/8] Watchdog: enable ACPI GTDT support for ARM SBSA watchdog driver fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-06-23 15:59 ` [PATCH v6 8/8] clocksource: simplify ACPI code in arm_arch_timer.c fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-08-24 17:01 ` [PATCH v7 0/8] Watchdog: introduce ARM SBSA watchdog driver fu.wei
2015-08-24 17:01 ` [PATCH v7 1/8] Documentation: add sbsa-gwdt.txt documentation fu.wei
2015-08-24 17:01 ` [PATCH v7 2/8] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
[not found] ` <1440435683-7343-3-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-09-15 8:43 ` Dave Young
2015-09-15 9:44 ` Pratyush Anand
2015-09-15 10:23 ` Fu Wei
2015-09-15 10:15 ` Fu Wei
2015-08-24 17:01 ` [PATCH v7 3/8] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei
2015-08-24 17:01 ` [PATCH v7 4/8] Watchdog: introdouce "pretimeout" into framework fu.wei
2015-08-24 17:01 ` [PATCH v7 5/8] Watchdog: introduce ARM SBSA watchdog driver fu.wei
2015-09-10 22:29 ` Jon Masters
2015-09-11 2:05 ` Guenter Roeck
[not found] ` <55F20461.20904-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-11 2:50 ` Guenter Roeck
2015-09-14 17:11 ` Fu Wei
2015-09-15 8:38 ` Dave Young
2015-09-15 10:07 ` Fu Wei
2015-09-16 1:57 ` Dave Young
[not found] ` <20150916015741.GA6699-0VdLhd/A9PlKO6g2yTT9Sx/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2015-10-13 8:34 ` Fu Wei
2015-08-24 17:01 ` [PATCH v7 6/8] ACPI: add GTDT table parse driver into ACPI driver fu.wei
2015-08-24 17:01 ` [PATCH v7 7/8] Watchdog: enable ACPI GTDT support for ARM SBSA watchdog driver fu.wei
[not found] ` <1440435683-7343-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-08-24 17:01 ` [PATCH v7 8/8] clocksource: simplify ACPI code in arm_arch_timer.c fu.wei-QSEj5FYQhm4dnm+yROfE0A
2015-08-24 17:50 ` Thomas Gleixner
2015-08-25 17:19 ` Fu Wei
[not found] ` <CADyBb7sVGePKtU45_DBGd74fykAPVshmbnRQJDDOrrvoHTGcKQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-25 19:17 ` Thomas Gleixner
2015-08-27 12:02 ` Hanjun Guo
2015-08-27 12:08 ` Thomas Gleixner
2015-08-27 12:28 ` Hanjun Guo
2015-08-27 13:36 ` Hanjun Guo
[not found] ` <55DF1257.9090303-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-08-27 13:40 ` Thomas Gleixner
2015-08-27 13:51 ` Fu Wei
[not found] ` <CADyBb7vKQq_T_P27hZQs+6-TJo2YD=QXjVseQ8dOvixwSHwL5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-14 18:05 ` Marc Zyngier
2015-09-30 17:13 ` [PATCH v7 0/8] Watchdog: introduce ARM SBSA watchdog driver Pratyush Anand
2015-09-30 17:22 ` Fu Wei
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=CADyBb7sfAMhcPe2QL3pmwshduW9TC_v0VyBnoZ7xhtY3y3k9vQ@mail.gmail.com \
--to=fu.wei@linaro.org \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=al.stone@linaro.org \
--cc=arnd@arndb.de \
--cc=ashwin.chaugule@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=graeme.gregory@linaro.org \
--cc=hanjun.guo@linaro.org \
--cc=jcm@redhat.com \
--cc=leo.duran@amd.com \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mark.rutland@arm.com \
--cc=rjw@rjwysocki.net \
--cc=tekkamanninja@gmail.com \
--cc=timur@codeaurora.org \
--cc=vgandhi@codeaurora.org \
--cc=will.deacon@arm.com \
--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;
as well as URLs for NNTP newsgroup(s).