All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Cc: linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	Jason Cooper <jason@lakedaemon.net>,
	Lior Amsalem <alior@marvell.com>, Zhang Rui <rui.zhang@intel.com>,
	Nobuhiro Iwamatsu <iwamatsu@nigauri.org>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Gregory Clement <gregory.clement@free-electrons.com>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Andrew Lunn <andrew@lunn.ch>
Subject: Re: [PATCH v2 00/14] Marvell EBU thermal sensor consolidation
Date: Mon, 25 Mar 2013 10:30:01 +0100	[thread overview]
Message-ID: <20130325093001.GH5627@lunn.ch> (raw)
In-Reply-To: <1363991114-4225-1-git-send-email-ezequiel.garcia@free-electrons.com>

On Fri, Mar 22, 2013 at 07:25:00PM -0300, Ezequiel Garcia wrote:
> Given Armada 370/XP and the other Marvell SoC with thermal support,
> namely Kirkwood and Dove, have fairly similar thermal devices it
> makes sense to integrate all of them into a single driver: mvebu-thermal.

Hi Ezequiel

I'm still not convinced that one driver is the right way to go.

As you have recently seen, Dove needs its own get_value() function,
adding yet more differences. There is still the open question about
370 "managed" temperature, do that also need exporting?

Lets also try to look into the crystal ball about what may happen
next. 

There is an out of tree Dove driver

https://github.com/rabeeh/linux-2.6.32.9/blob/master/arch/arm/mach-dove/hwmon.c

This shows that the same register space is also used for core and CPU
voltage measurements. At some point it might be nice to add support
for these, and it probably needs to be in this driver, otherwise the
locking is not nice. That driver also adds basic thermal management,
by scaling the CPU frequency. Most of the scaling code will go into a
driver in drivers/cpu_freq, but i guess there needs to be some glue
somewhere?

370 seems to have some thermal management hardware. There are
registers called Thermal Manager Control and Status Register, Thermal
Manager Cooling Delay Register, Thermal Manager Overheat Delay
Register. I've no idea what they do, if they are setup once and
forgotten, or if there needs to be active monitoring etc? Maybe we
will want to again link to cpu_freq? Will this need 370 specific glue
code?

I assume XP also have some thermal management system, since this is a
server class CPU. More glue to cpu_freq, again specific to XP? Maybe
the 370 and XP require the same glue?

Orion and Kirkwood are simple, in that i've never seen any thermal
management, other than a fan for the whole box, often controlled by a
PIC, sometimes by GPIO lines.

What does all this mean? I _think_ there will be less and less shared
code in future as these extra features are added.

I've not a strong opinion, but i think separate drivers are better. 

If we do stick to one driver, i would however want #ifdef
CONFIG_ARCH_DOVE, CONFIG_ARCH_KIRKWOOD, CONFIG_MACH_ARMADA_XP &
CONFIG_MACH_ARMADA_370 scattered through the code.

       Andrew

WARNING: multiple messages have this Message-ID (diff)
From: andrew@lunn.ch (Andrew Lunn)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 00/14] Marvell EBU thermal sensor consolidation
Date: Mon, 25 Mar 2013 10:30:01 +0100	[thread overview]
Message-ID: <20130325093001.GH5627@lunn.ch> (raw)
In-Reply-To: <1363991114-4225-1-git-send-email-ezequiel.garcia@free-electrons.com>

On Fri, Mar 22, 2013 at 07:25:00PM -0300, Ezequiel Garcia wrote:
> Given Armada 370/XP and the other Marvell SoC with thermal support,
> namely Kirkwood and Dove, have fairly similar thermal devices it
> makes sense to integrate all of them into a single driver: mvebu-thermal.

Hi Ezequiel

I'm still not convinced that one driver is the right way to go.

As you have recently seen, Dove needs its own get_value() function,
adding yet more differences. There is still the open question about
370 "managed" temperature, do that also need exporting?

Lets also try to look into the crystal ball about what may happen
next. 

There is an out of tree Dove driver

https://github.com/rabeeh/linux-2.6.32.9/blob/master/arch/arm/mach-dove/hwmon.c

This shows that the same register space is also used for core and CPU
voltage measurements. At some point it might be nice to add support
for these, and it probably needs to be in this driver, otherwise the
locking is not nice. That driver also adds basic thermal management,
by scaling the CPU frequency. Most of the scaling code will go into a
driver in drivers/cpu_freq, but i guess there needs to be some glue
somewhere?

370 seems to have some thermal management hardware. There are
registers called Thermal Manager Control and Status Register, Thermal
Manager Cooling Delay Register, Thermal Manager Overheat Delay
Register. I've no idea what they do, if they are setup once and
forgotten, or if there needs to be active monitoring etc? Maybe we
will want to again link to cpu_freq? Will this need 370 specific glue
code?

I assume XP also have some thermal management system, since this is a
server class CPU. More glue to cpu_freq, again specific to XP? Maybe
the 370 and XP require the same glue?

Orion and Kirkwood are simple, in that i've never seen any thermal
management, other than a fan for the whole box, often controlled by a
PIC, sometimes by GPIO lines.

What does all this mean? I _think_ there will be less and less shared
code in future as these extra features are added.

I've not a strong opinion, but i think separate drivers are better. 

If we do stick to one driver, i would however want #ifdef
CONFIG_ARCH_DOVE, CONFIG_ARCH_KIRKWOOD, CONFIG_MACH_ARMADA_XP &
CONFIG_MACH_ARMADA_370 scattered through the code.

       Andrew

  parent reply	other threads:[~2013-03-25  9:30 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-22 22:25 [PATCH v2 00/14] Marvell EBU thermal sensor consolidation Ezequiel Garcia
2013-03-22 22:25 ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 01/14] thermal: Rename driver 'kirkwood' -> 'mvebu' Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:00   ` [v2,01/14] " Eduardo Valentin
2013-04-11 16:00     ` Eduardo Valentin
2013-04-11 16:31     ` Ezequiel Garcia
2013-04-11 16:31       ` Ezequiel Garcia
2013-04-11 18:47       ` Eduardo Valentin
2013-04-11 18:47         ` Eduardo Valentin
2013-04-11 18:57         ` Eduardo Valentin
2013-04-11 18:57           ` Eduardo Valentin
2013-04-11 19:09         ` Ezequiel Garcia
2013-04-11 19:09           ` Ezequiel Garcia
2013-04-11 16:21   ` Eduardo Valentin
2013-04-11 16:21     ` Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 02/14] thermal: mvebu: Rename symbols " Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:18   ` [v2,02/14] " Eduardo Valentin
2013-04-11 16:18     ` Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 03/14] thermal: mvebu: Move MODULE_DEVICE_TABLE upwards Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:25   ` [v2,03/14] " Eduardo Valentin
2013-04-11 16:25     ` Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 04/14] thermal: mvebu: Remove unneeded variable initialization Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:29   ` [v2,04/14] " Eduardo Valentin
2013-04-11 16:29     ` [v2, 04/14] " Eduardo Valentin
2013-04-11 18:54     ` [v2,04/14] " Eduardo Valentin
2013-04-11 18:54       ` [v2, 04/14] " Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 05/14] thermal: mvebu: Convert to devm_ioremap_resource() Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:35   ` [v2,05/14] " Eduardo Valentin
2013-04-11 16:35     ` Eduardo Valentin
2013-04-11 18:55     ` Eduardo Valentin
2013-04-11 18:55       ` Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 06/14] thermal: mvebu: Fix license declaration Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:40   ` [v2,06/14] " Eduardo Valentin
2013-04-11 16:40     ` Eduardo Valentin
2013-04-11 18:55     ` Eduardo Valentin
2013-04-11 18:55       ` Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 07/14] thermal: mvebu: Rename kirkwood definitions to mvebu Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-04-11 16:43   ` [v2,07/14] " Eduardo Valentin
2013-04-11 16:43     ` Eduardo Valentin
2013-03-22 22:25 ` [PATCH v2 08/14] thermal: mvebu: Add infrastructure to support more multiple SoC variants Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 09/14] thermal: mvebu: Add support for Armada XP thermal sensor Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 10/14] thermal: mvebu: Add support for Armada 370 " Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 11/14] thermal: mvebu: Add support for Marvell Dove SoC family Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-23 11:26   ` Sebastian Hesselbarth
2013-03-23 11:26     ` Sebastian Hesselbarth
2013-03-24  0:16     ` Ezequiel Garcia
2013-03-24  0:16       ` Ezequiel Garcia
2013-03-25  9:34     ` Ezequiel Garcia
2013-03-25  9:34       ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 12/14] ARM: mvebu: Add thermal support to Armada XP device tree Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 13/14] ARM: mvebu: Add thermal support to Armada 370 " Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-23 14:18   ` Sergei Shtylyov
2013-03-23 14:18     ` Sergei Shtylyov
2013-03-23 14:20     ` Sergei Shtylyov
2013-03-23 14:20       ` Sergei Shtylyov
2013-03-23 14:25       ` Sergei Shtylyov
2013-03-23 14:25         ` Sergei Shtylyov
2013-03-24  0:22         ` Ezequiel Garcia
2013-03-24  0:22           ` Ezequiel Garcia
2013-03-22 22:25 ` [PATCH v2 14/14] ARM: configs: Update mvebu, dove and kirkwood defconfigs for thermal Ezequiel Garcia
2013-03-22 22:25   ` Ezequiel Garcia
2013-03-23 18:16 ` [PATCH v2 00/14] Marvell EBU thermal sensor consolidation Jason Cooper
2013-03-23 18:16   ` Jason Cooper
2013-03-23 18:28   ` Sebastian Hesselbarth
2013-03-23 18:28     ` Sebastian Hesselbarth
2013-03-23 18:31     ` Jason Cooper
2013-03-23 18:31       ` Jason Cooper
2013-03-23 18:38       ` Sebastian Hesselbarth
2013-03-23 18:38         ` Sebastian Hesselbarth
2013-03-25  9:30 ` Andrew Lunn [this message]
2013-03-25  9:30   ` Andrew Lunn
2013-03-25 10:45   ` Ezequiel Garcia
2013-03-25 10:45     ` Ezequiel Garcia
2013-03-25 12:23     ` Sebastian Hesselbarth
2013-03-25 12:23       ` Sebastian Hesselbarth
2013-03-25 12:39       ` Ezequiel Garcia
2013-03-25 12:39         ` Ezequiel Garcia
2013-03-25 13:58         ` Sebastian Hesselbarth
2013-03-25 13:58           ` Sebastian Hesselbarth
2013-03-25 16:29         ` Jason Gunthorpe
2013-03-25 16:29           ` Jason Gunthorpe

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=20130325093001.GH5627@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=alior@marvell.com \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=gregory.clement@free-electrons.com \
    --cc=iwamatsu@nigauri.org \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=thomas.petazzoni@free-electrons.com \
    /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.