alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: "Ughreja, Rakesh A" <rakesh.a.ughreja@intel.com>
Cc: "alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	"Koul, Vinod" <vinod.koul@intel.com>,
	"pierre-louis.bossart@linux.intel.com"
	<pierre-louis.bossart@linux.intel.com>,
	"liam.r.girdwood@linux.intel.com"
	<liam.r.girdwood@linux.intel.com>,
	Patches Audio <patches.audio@intel.com>,
	"broonie@kernel.org" <broonie@kernel.org>
Subject: Re: [RFC v3 06/11] ASoC: hdac_hda: add ASoC based HDA	codec driver
Date: Tue, 19 Dec 2017 17:23:44 +0100	[thread overview]
Message-ID: <s5ha7yebsa7.wl-tiwai@suse.de> (raw)
In-Reply-To: <85DFEED57DC57344B2483EF7BF8CB60579ADD712@BGSMSX104.gar.corp.intel.com>

On Tue, 19 Dec 2017 17:14:38 +0100,
Ughreja, Rakesh A wrote:
> 
> 
> 
> >-----Original Message-----
> >From: Takashi Iwai [mailto:tiwai@suse.de]
> >Sent: Tuesday, December 19, 2017 9:10 PM
> >To: Ughreja, Rakesh A <rakesh.a.ughreja@intel.com>
> >Cc: alsa-devel@alsa-project.org; Koul, Vinod <vinod.koul@intel.com>; pierre-
> >louis.bossart@linux.intel.com; liam.r.girdwood@linux.intel.com; Patches Audio
> ><patches.audio@intel.com>; broonie@kernel.org
> >Subject: Re: [alsa-devel] [RFC v3 06/11] ASoC: hdac_hda: add ASoC based HDA
> >codec driver
> >
> 
> 
> >>
> >> Are you referring to the calling overhead because of the wrapper involved ?
> >>
> >> The way I see is we have two options.
> >>
> >> 1. Single driver option. - There is going to be a common wrapper here,
> >> which needs to come into picture before it re-directs it to the appropriate
> >> driver. This is what is done in the following patch.
> >>
> >> 2. Separate driver for ASoC and Legacy. - This requires ID tables, Can we move
> >> id tables into separate header file ? then it can solve the problem involved in
> >> option 1. This also solves the problem related to wrappers as well as the
> >> problem related to accessing the ID tables via extern symbols, that you
> >> mentioned in the previous series.
> >
> >I believe (2) is no-go, it's a straight maintenance hell.
> 
> Got it.
> 
> >
> >> >May we start from a "big picture" to describe the whole driver
> >> >bindings?
> >> >
> >>
> >> This patch registers the hdac_driver callback at the root level agnostic to
> >> asoc and legacy and then selects the appropriate legacy or asoc callbacks,
> >> based on the bus which enumerated the driver.
> >>
> >> I cannot think of any other approach if we want to go with a single driver
> >> approach. You will have to give some more hints :-)
> >
> >Well, a big unclear question to me is why do we need to bind the stuff
> >so differently.  Can't we simply provide the same binding to the
> >legacy codec from asoc driver?  In the legacy-support mode, asoc
> >driver creates the legacy-compatible codec objects with the
> >legacy-compatible hda_bus.
> >
> 
> Both the drivers i.e. ASoC and Legacy are registering the driver in
> exact same way by filling the hdac_driver fields. There is no difference
> in terms of HDA bus interactions. First series unifies even the data
> structures hdac_device, hdac_driver and hdac_bus.

Yes, that's a good part.

> Once the device is enumerated and the hdac_driver->probe
> is called the difference starts, primarily because ASoC vs ALSA
> codec driver differences.

Why so different?  Is it hard to integrate them somehow?

What exactly do we need to do in addition to the existing legacy
HD-audio codec probe/remove/whatever?

> Here also if you notice, after taking care of 
> the ASoC related components, ASoC codec driver calls exact same APIs of the 
> legacy HDA codec driver which are called by the legacy controller driver.
> 
> The hda_bus and hda_codec data structures are also used by the ASoC
> driver as it is to call legacy codec driver APIs.
> 
> So I am not sure if we are doing binding in two different ways, or I
> misunderstood you completely ?

Well, I still am not sure why do we need two ways, completely
switching the whole binding.  If it's a matter of some additional
calls on top of the legacy probe, we can add a new optional bus ops,
and call it in the probe function, too.  At the time of probe
callback, the bus is already present.


thanks,

Takashi

  reply	other threads:[~2017-12-19 16:23 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-15 11:30 [RFC v3 00/11] Enable HDA Codec support on Intel Platforms (Series2) Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 01/11] ASoC: Intel: Boards: Machine driver for Intel platforms Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 02/11] ASoC: Intel: Skylake: Add entry in sst_acpi_mach for HDA codecs Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 03/11] ASoC: Intel: Skylake: add HDA BE DAIs Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 04/11] ASoC: Intel: Skylake: use hda_bus instead of hdac_bus Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 05/11] ALSA: hda - make some of the functions externally visible Rakesh Ughreja
2017-12-15 11:34   ` Takashi Iwai
2017-12-15 11:30 ` [RFC v3 06/11] ASoC: hdac_hda: add ASoC based HDA codec driver Rakesh Ughreja
2017-12-15 11:38   ` Takashi Iwai
2017-12-15 12:20     ` Ughreja, Rakesh A
2017-12-15 15:47       ` Takashi Iwai
2017-12-16  7:48         ` Ughreja, Rakesh A
2017-12-16  9:13           ` Takashi Iwai
2017-12-18  4:06             ` Ughreja, Rakesh A
2017-12-19  9:19               ` Ughreja, Rakesh A
2017-12-19 11:27                 ` Takashi Iwai
2017-12-19 15:26                   ` Ughreja, Rakesh A
2017-12-19 15:40                     ` Takashi Iwai
2017-12-19 16:14                       ` Ughreja, Rakesh A
2017-12-19 16:23                         ` Takashi Iwai [this message]
2017-12-19 17:12                           ` Ughreja, Rakesh A
2017-12-19 19:17                             ` Takashi Iwai
2017-12-20 10:26                               ` Mark Brown
2017-12-20 10:52                                 ` Ughreja, Rakesh A
2017-12-21 15:36                                   ` Ughreja, Rakesh A
2017-12-21 15:48                                     ` Takashi Iwai
2017-12-21 16:39                                       ` Ughreja, Rakesh A
2017-12-21 16:44                                         ` Takashi Iwai
2017-12-22 12:51                                           ` Ughreja, Rakesh A
2017-12-15 11:30 ` [RFC v3 07/11] ALSA: hda: split API snd_hda_codec_new for using it from ASoC codec drivers Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 08/11] ASoC: hdac_hda: add DAI, widgets and related ops Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 09/11] ASoC: hdac_hda: add runtime PM support Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 10/11] ASoC: codec: Support for ASoC Realtek HDA codec Driver Rakesh Ughreja
2017-12-15 11:30 ` [RFC v3 11/11] ASoC: Intel: Boards: add support for HDA codecs Rakesh Ughreja

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=s5ha7yebsa7.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=patches.audio@intel.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=rakesh.a.ughreja@intel.com \
    --cc=vinod.koul@intel.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 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).