linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: ezequiel.garcia@free-electrons.com (Ezequiel Garcia)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/16] Marvell EBU thermal sensor consolidation
Date: Thu, 21 Mar 2013 06:42:22 -0300	[thread overview]
Message-ID: <20130321094221.GA2469@localhost> (raw)
In-Reply-To: <20130321064501.GK21478@lunn.ch>

Hi Andrew,

On Thu, Mar 21, 2013 at 07:45:01AM +0100, Andrew Lunn wrote:
> On Wed, Mar 20, 2013 at 07:36:21PM -0300, Ezequiel Garcia wrote:
> > This patchset is my first attempt at adding basic thermal sensor
> > support on Armada 370 and Armada XP.
> > 
> > Given Armada 370/XP and the other Marvell SoC with thermal support,
> > namely Kirkwood and Dove, have fairly similar thermal devices it 
> > made sense to integrate all of them into a single driver: mvebu-thermal.
> 
> 
> I went this way to start with, merging Dove, Kirkwood and something
> which nearly worked for 370. But then i looked at the code, at how
> little is actually shared, and went back to separate drivers.
> 
> Kirkwood has no control registers, so needs a special case in the probe.
> The bit location of the temperate value moves around in the register.
> Each SoC needs its own initialization sequence.
> Each SoC needs its own is_valid() function.
> Each Soc needs its own formula to convert to milli centigrad.
> 
> I've never seen the datasheets for 370/XP, just a list of registers for
> 370. But i get the impression it has two temperate sensors, so should
> export two values?
> 
> Also, kirkwood will never be built into the same kernel as
> Dove/370/XP.  So we end up with "bloat" in the driver, or at least a
> collection of #ifdefs.
> 
> In the end, i decided it was simpler and cleaner to just have separate
> drivers. This is something which we should think about and discuss.
> 

Thanks for your comments.

I had the same concerns about a single driver against many;
after trying this approach I was convinced by the diffstat:

13 files changed, 395 insertions(+), 393 deletions(-)

So we have almost no LoC increase and two new SoCs are supported.

The alternative would mean to have one driver for Armada 370
and yet another one for Armada XP, with some common boilerplate
in each driver and only the differences you mention: a different
initialization and a different conversion formula.
The initialization is solved my means of a function pointer,
and the conversion is just a switch.

FWIW, the is_valid() is actually the same on Kirkwood and 370.

I debated myself a lot before unifying the drivers: in the end
it seemed a proper solution: less maintainance, less configuration
options, happier hackers :)

What do you think?
-- 
Ezequiel Garc?a, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com

  reply	other threads:[~2013-03-21  9:42 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-20 22:36 [PATCH 00/16] Marvell EBU thermal sensor consolidation Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 01/16] thermal: Rename driver 'kirkwood' -> 'mvebu' Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 02/16] thermal: mvebu: Rename symbols " Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 03/16] thermal: mvebu: Move MODULE_DEVICE_TABLE upwards Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 04/16] thermal: mvebu: Remove unneeded variable initialization Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 05/16] thermal: mvebu: Fix valid check for thermal register Ezequiel Garcia
2013-03-21 14:35   ` Jason Cooper
2013-03-21 15:16     ` Ezequiel Garcia
2013-03-21 15:24       ` Jason Cooper
2013-03-21 19:57         ` Ezequiel Garcia
2013-03-21 20:06           ` Jason Cooper
2013-03-20 22:36 ` [PATCH 06/16] thermal: mvebu: Convert to devm_ioremap_resource() Ezequiel Garcia
2013-03-21  6:10   ` Andrew Lunn
2013-03-21  9:43     ` Ezequiel Garcia
2013-03-21 10:08       ` Andrew Lunn
2013-03-21 14:04   ` Sergei Shtylyov
2013-03-21 15:17     ` Ezequiel Garcia
2013-03-21 19:17   ` Russell King - ARM Linux
2013-03-21 20:21     ` Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 07/16] thermal: mvebu: Fix license declaration Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 08/16] thermal: mvebu: Fix temperature output formula for kirkwood Ezequiel Garcia
2013-03-21 14:41   ` Jason Cooper
2013-03-21 19:20   ` Russell King - ARM Linux
2013-03-21 20:38     ` Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 09/16] thermal: mvebu: Rename kirkwood definitions to mvebu Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 10/16] thermal: mvebu: Add infrastructure to support more multiple SoC variants Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 11/16] thermal: mvebu: Add support for Armada XP thermal sensor Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 12/16] thermal: mvebu: Add support for Armada 370 " Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 13/16] thermal: mvebu: Add support for Marvell Dove SoC family Ezequiel Garcia
2013-03-21  6:23   ` Andrew Lunn
2013-03-21  6:26     ` Andrew Lunn
2013-03-20 22:36 ` [PATCH 14/16] ARM: mvebu: Add thermal support to Armada XP device tree Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 15/16] ARM: mvebu: Add thermal support to Armada 370 " Ezequiel Garcia
2013-03-21 14:03   ` Sergei Shtylyov
2013-03-21 15:18     ` Ezequiel Garcia
2013-03-20 22:36 ` [PATCH 16/16] ARM: configs: Update mvebu, dove and kirkwood defconfigs for thermal Ezequiel Garcia
2013-03-21  6:45 ` [PATCH 00/16] Marvell EBU thermal sensor consolidation Andrew Lunn
2013-03-21  9:42   ` Ezequiel Garcia [this message]
2013-03-21 12:35   ` Ezequiel Garcia
2013-03-21 13:36     ` Andrew Lunn
2013-03-21 17:32   ` Jason Gunthorpe
2013-03-22 14:23     ` Ezequiel Garcia
2013-03-21 12:26 ` Ezequiel Garcia

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=20130321094221.GA2469@localhost \
    --to=ezequiel.garcia@free-electrons.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).