From: Hans de Goede <hdegoede@redhat.com>
To: guenter.roeck@ericsson.com
Cc: "linux-watchdog@vger.kernel.org" <linux-watchdog@vger.kernel.org>,
Wim Van Sebroeck <wim@iguana.be>,
Thilo Cestonaro <thilo.cestonaro@ts.fujitsu.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
LM Sensors <lm-sensors@lm-sensors.org>,
Jean Delvare <khali@linux-fr.org>
Subject: Re: [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the integrated watchdog
Date: Mon, 12 Sep 2011 19:53:34 +0200 [thread overview]
Message-ID: <4E6E471E.6060704@redhat.com> (raw)
In-Reply-To: <1315848826.2455.193.camel@groeck-laptop>
Hi,
On 09/12/2011 07:33 PM, Guenter Roeck wrote:
> On Mon, 2011-09-12 at 05:57 -0400, Hans de Goede wrote:
>> Add support for the watchdog integrated into the (Fujitsu Theseus version of)
>> the sch5636 superio hwmon part. Using the new watchdog timer core.
>>
>> Signed-off-by: Hans de Goede<hdegoede@redhat.com>
>> ---
>> drivers/hwmon/sch5636.c | 233 ++++++++++++++++++++++++++++++++++++++++++++++-
>> 1 files changed, 231 insertions(+), 2 deletions(-)
>>
> [ resent to proper thread ]
>
> Given that this is no longer a pure hwmon driver, it may make sense to
> split it into separate mfd/hwmon/watchdog drivers. But on the other side
> I notice that other drivers in the hwmon directory implement watchdog
> functionality as well. Bad precedent :(. Wonder what happens with those
> watchdogs if HWMON is disabled.
>
> Not really sure if we should let this happen, or start being more
> restrictive and enforce cleaner code. Jean, any thoughts/comments ?
The problem with the 2 hwmon drivers (sch5636 and fschmd) I'm responsible
for which have a watchdog integrated is that the watchdog is part of the
same "logical unit" as the hwmon part. This actually makes sense from
a hw point of view. Various watchdogs also have functions like brownout
detection / under / over volt monitoring and temp monitoring, resetting
the system not only when the application fails to ping the watchdog,
but also on various other abnormal conditions. The watchdog API even
has some (rather crude) interfaces for getting readings for some of these
sensors embedded inside wacthdogs. Although it would be better for those
drivers that support this to just move to the sensors interface for those
parts.
So back to the 1 logical unit part, you are talking about using / creating
some sort of mfd (multi function device) framework. Actually we already have
that for the sch5636 case, it is a superio and a superio is divided into
logical devices, which usually each have their own driver. Sometimes drivers
need to touch the shared superio config space, and we've sharing mechanisms
for those in place too now a days.
But the sch5636 hardware monitoring and watchdog function are part of the
same logical device, they share the same (isa) io ports, and the same
convoluted talk to the embedded microcontroller by banging and polling
io ports communications "protocol".
I'm pretty firmly set on a one logical unit one driver model, anything
else will mean writing some sort of specialized sharing framework just
for this model IC, and then another one for the next, etc. If the
only argument against just exporting the 2 interfaces with one driver
is that the watchdog function will go away if HWMON is not enabled, waying
it against the amount of work necessary to get a clean split, I don't
find that enough of a reason for split drivers.
Also not that we will actually never have a really clean split,
since as soon as the real hardware has both functions integrated into
a single logical unit any sharing / multiplexing solution will be highly
device specific.
Actually in v4l land we are currently working on fixing a historic mistake
where for certain devices (so called dual mode cameras) we have 2 drivers
for 1 logical unit (1 usb interface). The driver infighting happening there
is not pretty and we've decided to fix this once and for all by moving
both functions into a single driver...
Regards,
Hans
WARNING: multiple messages have this Message-ID (diff)
From: Hans de Goede <hdegoede@redhat.com>
To: guenter.roeck@ericsson.com
Cc: "linux-watchdog@vger.kernel.org" <linux-watchdog@vger.kernel.org>,
Wim Van Sebroeck <wim@iguana.be>,
Thilo Cestonaro <thilo.cestonaro@ts.fujitsu.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
LM Sensors <lm-sensors@lm-sensors.org>,
Jean Delvare <khali@linux-fr.org>
Subject: Re: [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the
Date: Mon, 12 Sep 2011 17:53:34 +0000 [thread overview]
Message-ID: <4E6E471E.6060704@redhat.com> (raw)
In-Reply-To: <1315848826.2455.193.camel@groeck-laptop>
Hi,
On 09/12/2011 07:33 PM, Guenter Roeck wrote:
> On Mon, 2011-09-12 at 05:57 -0400, Hans de Goede wrote:
>> Add support for the watchdog integrated into the (Fujitsu Theseus version of)
>> the sch5636 superio hwmon part. Using the new watchdog timer core.
>>
>> Signed-off-by: Hans de Goede<hdegoede@redhat.com>
>> ---
>> drivers/hwmon/sch5636.c | 233 ++++++++++++++++++++++++++++++++++++++++++++++-
>> 1 files changed, 231 insertions(+), 2 deletions(-)
>>
> [ resent to proper thread ]
>
> Given that this is no longer a pure hwmon driver, it may make sense to
> split it into separate mfd/hwmon/watchdog drivers. But on the other side
> I notice that other drivers in the hwmon directory implement watchdog
> functionality as well. Bad precedent :(. Wonder what happens with those
> watchdogs if HWMON is disabled.
>
> Not really sure if we should let this happen, or start being more
> restrictive and enforce cleaner code. Jean, any thoughts/comments ?
The problem with the 2 hwmon drivers (sch5636 and fschmd) I'm responsible
for which have a watchdog integrated is that the watchdog is part of the
same "logical unit" as the hwmon part. This actually makes sense from
a hw point of view. Various watchdogs also have functions like brownout
detection / under / over volt monitoring and temp monitoring, resetting
the system not only when the application fails to ping the watchdog,
but also on various other abnormal conditions. The watchdog API even
has some (rather crude) interfaces for getting readings for some of these
sensors embedded inside wacthdogs. Although it would be better for those
drivers that support this to just move to the sensors interface for those
parts.
So back to the 1 logical unit part, you are talking about using / creating
some sort of mfd (multi function device) framework. Actually we already have
that for the sch5636 case, it is a superio and a superio is divided into
logical devices, which usually each have their own driver. Sometimes drivers
need to touch the shared superio config space, and we've sharing mechanisms
for those in place too now a days.
But the sch5636 hardware monitoring and watchdog function are part of the
same logical device, they share the same (isa) io ports, and the same
convoluted talk to the embedded microcontroller by banging and polling
io ports communications "protocol".
I'm pretty firmly set on a one logical unit one driver model, anything
else will mean writing some sort of specialized sharing framework just
for this model IC, and then another one for the next, etc. If the
only argument against just exporting the 2 interfaces with one driver
is that the watchdog function will go away if HWMON is not enabled, waying
it against the amount of work necessary to get a clean split, I don't
find that enough of a reason for split drivers.
Also not that we will actually never have a really clean split,
since as soon as the real hardware has both functions integrated into
a single logical unit any sharing / multiplexing solution will be highly
device specific.
Actually in v4l land we are currently working on fixing a historic mistake
where for certain devices (so called dual mode cameras) we have 2 drivers
for 1 logical unit (1 usb interface). The driver infighting happening there
is not pretty and we've decided to fix this once and for all by moving
both functions into a single driver...
Regards,
Hans
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next prev parent reply other threads:[~2011-09-12 17:54 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-12 9:56 Watchdog timer core enhancements + sch5636 watchdog driver Hans de Goede
2011-09-12 9:56 ` [lm-sensors] Watchdog timer core enhancements + sch5636 watchdog Hans de Goede
2011-09-12 9:56 ` [PATCH 1/5] watchdog_dev: Use wddev function parameter instead of wdd global Hans de Goede
2011-09-12 9:56 ` [lm-sensors] [PATCH 1/5] watchdog_dev: Use wddev function parameter Hans de Goede
2011-09-12 9:56 ` [PATCH 2/5] watchdog_dev: Add support for having more then 1 watchdog Hans de Goede
2011-09-12 9:56 ` [lm-sensors] [PATCH 2/5] watchdog_dev: Add support for having more Hans de Goede
2011-09-12 9:56 ` [PATCH 3/5] watchdog_dev: Add support for dynamically allocated watchdog_device structs Hans de Goede
2011-09-12 9:56 ` [lm-sensors] [PATCH 3/5] watchdog_dev: Add support for dynamically Hans de Goede
2011-09-12 9:56 ` [PATCH 4/5] watchdog_dev: Let the driver update the timeout field on set_timeout success Hans de Goede
2011-09-12 9:56 ` [lm-sensors] [PATCH 4/5] watchdog_dev: Let the driver update the Hans de Goede
2011-09-12 9:57 ` [PATCH 5/5] hwmon/sch5636: Add support for the integrated watchdog Hans de Goede
2011-09-12 9:57 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the Hans de Goede
2011-09-12 17:33 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the integrated watchdog Guenter Roeck
2011-09-12 17:33 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the Guenter Roeck
2011-09-12 17:53 ` Hans de Goede [this message]
2011-09-12 17:53 ` Hans de Goede
2011-09-12 18:03 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the integrated watchdog Jean Delvare
2011-09-12 18:03 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the Jean Delvare
2011-09-12 18:48 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the integrated watchdog Guenter Roeck
2011-09-12 18:48 ` [lm-sensors] [PATCH 5/5] hwmon/sch5636: Add support for the 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=4E6E471E.6060704@redhat.com \
--to=hdegoede@redhat.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=guenter.roeck@ericsson.com \
--cc=khali@linux-fr.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=thilo.cestonaro@ts.fujitsu.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 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.