All of lore.kernel.org
 help / color / mirror / Atom feed
From: broonie@sirena.org.uk (Mark Brown)
To: linux-arm-kernel@lists.infradead.org
Subject: Samsung S3C6410 mainline merge coordination
Date: Wed, 2 Sep 2009 15:47:00 +0100	[thread overview]
Message-ID: <20090902144700.GD4012@sirena.org.uk> (raw)
In-Reply-To: <1b68c6790909020644k757827f4kf590779f384ceccb@mail.gmail.com>

On Wed, Sep 02, 2009 at 10:44:35PM +0900, jassi brar wrote:

> Yes, none of mainline SMDK supports SoC-Slave mode or sourcing I2S IP with
> various possible clocks(PCLK, EPLL, CDCLK) etc yet. Samsung tree has
> implemented
> and fully tested these features for 6410, 6440 and C100.

There's existing users in mainline with the S3C24xx working as slave,
including some for which I have hardware so I'm fairly confident that
that should work.

I've also had reports that the S3C64xx works as slave in mainline, the
code certainly claims that it should work.  At the minute it's limited
to only one of the external clock sources and one of the internal clock
sources, though (I'd need to go and look to see which).

> My idea is to submit only "better enabled" I2S driver with Slave support.

In general it's much better (and certainly standard practice within
Linux) to enhance and refactor existing drivers incrementally rather
than provide entirely new drivers.  The idea is to avoid confusion
between the variants and issues that can come from replacing one set of
problems with another.

Sometimes a flag day is unavoidable but it's best to at least explore
other options first.

> In the long run, I see I2S drivers segregated by the I2S spec version
> they implement....
> S3C2410 has I2S-2.0, S3C6410 has I2S-3.2 and I2S-4.0, S5P6440 has
> I2S-4.0, S5PC100 has
> I2S-3.2 and I2S-5.1 and so on. That is, we have something like
> samsung-i2s_v20.c, samsung-i2s_v32.c,
> samsung-i2s_v40.c, samsung-i2s_v51.c.

It really depends on how much difference there is between the blocks at
what point it becomes worth forking a new driver - in many cases the
newer blocks are close to register compatible with the older ones so
a forked driver would have more in common with the original driver than
the differences.  Where that is the case it makes sense to try to keep
things together but if conditional code begins to dominate some or all
of the driver then that suggests forking the relevant bits.

One example of what may end up making most sense is that we get a driver
per variant but also a core which factors out all the bits that stay the
same between different variants (possibly multiple versions thereof).

> SoC specific register addresses and other peculiarities maybe
> differentiated by defines in coresp. header files.
> Let Samsung come with as many SoCs as it wishes, I2S support will
> simply end up in header files. Also, that we

Build time stuff like this does greatly increase the number of
configurations that need to be compiled in order to achieve build
coverage which is a bit of a problem, not just for testing but also for
things like distro kernels.  There's limitations due to the underlying
arch/arm stuff but we'd want to at least track what that can do and not
introduce any new limits in the audio drivers.

> Whereas, mainline s3c-i2s approach currently concentrates on
> extracting common code in one file(s3c-i2s-v2.c) or so do i think.

Pretty much since for the v2-v4 range the differences are mostly in the
addition of new features and compatibility is fairly strong.  Like I
say, if it gets to be more trouble than it's worth to maintain things
like this that's the time to start splitting out separate drivers.

  reply	other threads:[~2009-09-02 14:47 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-02  3:17 Samsung S3C6410 mainline merge coordination Harald Welte
2009-09-02  9:51 ` Nelson Castillo
2009-09-02 12:15   ` Harald Welte
2009-09-02 15:58     ` Nelson Castillo
2009-09-02 10:05 ` Mark Brown
2009-09-02 12:11   ` Harald Welte
2009-09-02 13:44     ` jassi brar
2009-09-02 14:47       ` Mark Brown [this message]
2009-09-03  0:38         ` jassi brar
2009-09-03 12:14           ` Mark Brown
2009-09-03 13:39             ` jassi brar
2009-09-03 15:18               ` Mark Brown
2009-09-04  1:08                 ` jassi brar
2009-09-04 13:41                   ` Mark Brown
2009-09-04 14:27                     ` jassi brar
2009-09-04 14:57                       ` Mark Brown
2009-09-04  1:27               ` Samsung SoC ASOC drivers Harald Welte
2009-09-04  4:10                 ` jassi brar
2009-09-02 19:09       ` Samsung S3C6410 mainline merge coordination Ben Dooks
2009-09-03  0:21       ` Joonyoung Shim
2009-09-03 11:06         ` Mark Brown
2009-09-03 12:48           ` Joonyoung Shim
2009-09-02 13:45     ` Mark Brown
2009-09-02 19:22     ` Ben Dooks
     [not found] ` <19987914.1168001251884594226.JavaMail.coremail@bj126app54.126.com>
2009-09-02 12:01   ` Harald Welte
2009-09-02 19:10     ` Ben Dooks
2009-09-02 22:26       ` Harald Welte
2009-09-03  9:51         ` Daniel Silverstone
2009-09-03 10:34           ` Russell King - ARM Linux
2009-09-03 10:40             ` Daniel Silverstone
2009-09-04  5:48           ` Pavel Machek
2009-09-02 12:03 ` David F. Carlson
2009-09-02 12:46   ` Peter Korsgaard
2009-09-02 19:16   ` Ben Dooks
2009-09-03  1:56     ` Harald Welte
2009-09-03 10:04       ` Peter Korsgaard
2009-09-03 10:57       ` Mark Brown
     [not found]     ` <7641737.122161251944382753.JavaMail.coremail@bj126app17.126.com>
2009-09-03  4:31       ` Harald Welte
2009-09-10  5:49   ` Samsung S3C6410 / SmartQ / 2D acceleration / Xorg Harald Welte
2009-09-15 23:34     ` Ben Dooks
2009-09-15  9:49       ` Samsung S3C6410 / SmartQ / 2D acceleration / Xorgy David F. Carlson
2009-09-02 12:49 ` Samsung S3C6410 mainline merge coordination Peter Korsgaard
2009-09-02 22:30   ` Harald Welte
2009-09-02 16:12 ` Ben Dooks
2009-09-02 21:25   ` David F. Carlson
2009-09-02 23:18   ` Harald Welte
2009-09-03  3:31     ` Bill Gatliff
2009-09-03  3:38     ` Nelson Castillo
2009-09-03  4:33       ` Harald Welte
2009-09-04  7:15         ` Nelson Castillo
2009-09-02 16:58 ` Mark Brown
     [not found] <23992600.419641251935757361.JavaMail.weblogic@epml11>
2009-09-03  0:46 ` Harald Welte

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=20090902144700.GD4012@sirena.org.uk \
    --to=broonie@sirena.org.uk \
    --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 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.