All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Jean Delvare <khali@linux-fr.org>
Cc: Paul Mundt <lethal@linux-sh.org>,
	linux-next@vger.kernel.org, linux-media@vger.kernel.org,
	linux-i2c@vger.kernel.org
Subject: Re: [PATCH] i2c: Simplified CONFIG_I2C=n interface.
Date: Tue, 2 Jun 2009 10:34:32 +0100	[thread overview]
Message-ID: <20090602093431.GA19390@rakim.wolfsonmicro.main> (raw)
In-Reply-To: <20090602091229.0810f54b@hyperion.delvare>

On Tue, Jun 02, 2009 at 09:12:29AM +0200, Jean Delvare wrote:
> On Wed, 27 May 2009 13:01:40 +0100, Mark Brown wrote:

> > It's extremely common for devices like the CODECs and PMICs used in
> > embedded systems to have both I2C and SPI interfaces, selectable via a

> Can you please point me at a couple of affected drivers?

Most of the Wolfson CODECs in sound/soc/codecs are affected (more than
actually have the SPI code at the minute), probably a lot of the other
CODECs there too.  I'd expect most I2C devices in drivers/mfd will also
be affectd.  For anything with more than a few registers the tendency is
to have both options unless there's a hardware constraint.

> I would really expect all I2C-related code to be in one place of the
> driver (or even in a separate source file) and same for SPI-related
> code. Then surrounding one big block of code with an ifdef doesn't
> sound that difficult to read.

It's not a legibility issue, it's to do with people remembering to
handle all the cases.  It's a bit of a PITA but not the end of the
world - I'm mentioning this more because you were suggesting that a
driver that was still useful with I2C=n was unusual rather than anything
else.

> driver needs to be reviewed for the CONFIG_I2C=n case. If we add stubs
> all around to workaround the link breakage, this means the review never
> happens, so the code might as well build and link but not work properly
> or at least not be optimal. I wouldn't call this progress.

I can't really see a situation where things wouldn't work properly
beyond the current situation where I2C support can just be built out -
if nobody is running the code then that's a separate issue.

> What could be done, OTOH, is to surround all the function declarations
> in <linux/i2c.h> with a simple #ifdef CONFIG_I2C, so that mistakes are
> caught earlier (build time instead of link time.)

That'd be helpful, yes.

  reply	other threads:[~2009-06-02  9:34 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27  7:08 [PATCH] i2c: Simplified CONFIG_I2C=n interface Paul Mundt
2009-05-27  7:18 ` Jean Delvare
2009-05-27  7:18   ` Jean Delvare
2009-05-27  7:28   ` Paul Mundt
2009-05-27  7:28     ` Paul Mundt
2009-05-27 12:01   ` Mark Brown
2009-06-02  7:12     ` Jean Delvare
2009-06-02  9:34       ` Mark Brown [this message]
2009-06-05  8:13         ` [PATCH] i2c: Don't advertise i2c functions when not available Jean Delvare
2009-06-05  8:42           ` Mark Brown
2009-06-05  8:42             ` Mark Brown

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=20090602093431.GA19390@rakim.wolfsonmicro.main \
    --to=broonie@opensource.wolfsonmicro.com \
    --cc=khali@linux-fr.org \
    --cc=lethal@linux-sh.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-next@vger.kernel.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 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.