public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Clemens Ladisch <clemens@ladisch.de>
To: Ondrej Zary <linux@rainbow-software.org>
Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: Re: [alsa-devel] Triple implementation of WM8766 and quadruple WM8776!
Date: Tue, 13 Mar 2012 10:46:30 +0100	[thread overview]
Message-ID: <4F5F1776.4020904@ladisch.de> (raw)
In-Reply-To: <201203122241.12234.linux@rainbow-software.org>

Ondrej Zary wrote:
> I'm trying do implement support for Philips PSC724 Ultimate Edge card, which
> is based on VT1722 + WM8776 + WM8766 chips. Found that the best file to base
> my work on is sound/pci/ice1712/se.c (as SE-200PCI card contains both WM8776
> and WM8766 chips).
>
> While doing this, found that there are three implementations of WM8766 codec
> control, two of them in the same driver(!):
> sound/pci/ice1712/se.c
> sound/pci/ice1712/prodigy_hifi.c
> sound/pci/oxygen/xonar_wm87x6.c (+sound/pci/oxygen/wm8766.h)
>
> And WM8776 status is even worse, there are four implementations, again two
> being in the same driver:
> sound/pci/ice1712/se.c
> sound/pci/ice1712/maya44.c
> sound/pci/oxygen/xonar_wm87x6.c (+sound/pci/oxygen/wm8776.h)
> sound/soc/codecs/wm8776.c (this one being official and stand-alone module but
> it does not seem to be usable as a part of sound card driver)

The ALSA SoC framework differentiates between three kinds of drivers:
codec, platform (controllers like the VT1722), and machine (in your
case, the wiring on the PSC724).  When I wrote the oxygen driver,
I didn't use ASoC because it didn't support multiple codecs per card
at that time (now it does).

I'd suggest to use ASoC, except that ice1724 is not an ASoC platform
driver, so you'd have to duplicate it.

All the non-ASoC drivers mix codec and machine drivers in the same file.
In the long term, ice1712 and oxygen should be converted to use ASoC,
but that would be a lot of effort if regressions are to be avoided.

I'd suggest to move the common parts of the three ice1712 drivers into
separate files.  You could make the interface of those files similar to
ASoC codec drivers to make later porting easier.


Regards,
Clemens

      reply	other threads:[~2012-03-13  9:43 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-12 21:40 Triple implementation of WM8766 and quadruple WM8776! Ondrej Zary
2012-03-13  9:46 ` Clemens Ladisch [this message]

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=4F5F1776.4020904@ladisch.de \
    --to=clemens@ladisch.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rainbow-software.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