From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH 4/4] ALSA: hdac: Add codec read/write and check power state for widgets Date: Mon, 05 Oct 2015 17:23:43 +0200 Message-ID: References: <1444054191-17030-1-git-send-email-vinod.koul@intel.com> <1444054191-17030-5-git-send-email-vinod.koul@intel.com> <1444058411.3579.32.camel@intel.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 40923260694 for ; Mon, 5 Oct 2015 17:23:40 +0200 (CEST) In-Reply-To: <1444058411.3579.32.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: "Koul, Vinod" Cc: "liam.r.girdwood@linux.intel.com" , Patches Audio , "alsa-devel@alsa-project.org" , "broonie@kernel.org" , "Prusty, Subhransu S" List-Id: alsa-devel@alsa-project.org On Mon, 05 Oct 2015 17:20:11 +0200, Koul, Vinod wrote: > > On Mon, 2015-10-05 at 17:18 +0200, Takashi Iwai wrote: > > On Mon, 05 Oct 2015 16:09:51 +0200, > > Vinod Koul wrote: > > > > > > From: "Subhransu S. Prusty" > > > > > > This adds helpers to read/write the codec. Also adds a helper to check the > > > power state of widgets. > > > > > > Signed-off-by: Subhransu S. Prusty > > > Signed-off-by: Vinod Koul > > > --- > > > include/sound/hdaudio.h | 6 ++++++ > > > sound/hda/hdac_device.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ > > > 2 files changed, 53 insertions(+) > > > > > > diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h > > > index 49bc836fcd84..26e956f4b7c6 100644 > > > --- a/include/sound/hdaudio.h > > > +++ b/include/sound/hdaudio.h > > > @@ -147,6 +147,12 @@ int snd_hdac_query_supported_pcm(struct hdac_device *codec, > > > hda_nid_t nid, > > > bool snd_hdac_is_supported_format(struct hdac_device *codec, hda_nid_t nid, > > > unsigned int format); > > > > > > +int snd_hdac_codec_read(struct hdac_device *hdac, hda_nid_t nid, > > > + int flags, unsigned int verb, unsigned int parm); > > > +int snd_hdac_codec_write(struct hdac_device *hdac, hda_nid_t nid, > > > + int flags, unsigned int verb, unsigned int parm); > > > +bool snd_hdac_check_power_state(struct hdac_device *hdac, > > > + hda_nid_t nid, unsigned int target_state); > > > /** > > > * snd_hdac_read_parm - read a codec parameter > > > * @codec: the codec object > > > diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c > > > index db96042a497f..24c7a5f6f0f3 100644 > > > --- a/sound/hda/hdac_device.c > > > +++ b/sound/hda/hdac_device.c > > > @@ -952,3 +952,50 @@ bool snd_hdac_is_supported_format(struct hdac_device *codec, > > > hda_nid_t nid, > > > return true; > > > } > > > EXPORT_SYMBOL_GPL(snd_hdac_is_supported_format); > > > + > > > +static unsigned int codec_read(struct hdac_device *hdac, hda_nid_t nid, > > > + int flags, unsigned int verb, unsigned int parm) > > > +{ > > > + unsigned int cmd = snd_hdac_make_cmd(hdac, nid, verb, parm); > > > + unsigned int res; > > > + > > > + if (snd_hdac_exec_verb(hdac, cmd, flags, &res)) > > > + return -1; > > > + > > > + return res; > > > +} > > > + > > > +static int codec_write(struct hdac_device *hdac, hda_nid_t nid, > > > + int flags, unsigned int verb, unsigned int parm) > > > +{ > > > + unsigned int cmd = snd_hdac_make_cmd(hdac, nid, verb, parm); > > > + > > > + return snd_hdac_exec_verb(hdac, cmd, flags, NULL); > > > +} > > > + > > > +int snd_hdac_codec_read(struct hdac_device *hdac, hda_nid_t nid, > > > + int flags, unsigned int verb, unsigned int parm) > > > +{ > > > + return codec_read(hdac, nid, flags, verb, parm); > > > +} > > > +EXPORT_SYMBOL_GPL(snd_hdac_codec_read); > > > > For *every* exported function, you must provide a proper > > documentation. No excuse, as this is even a part of API. > > Sure will add that > > > And, you copied these things from sound/pci/hda/, so you should > > mention it, and prepare a cleanup patch to use this new one. > > Otherwise no one can see a clear merit of this addition. > Sure, will mention that. > I didn't want to move existing ones without checking with you. > Will start moving them as well This is no problem for me, a code reduction is rather always welcome. Maybe just aliasing in hda_codec.c or hda_local.h would be enough, something like: static inline int snd_hda_codec_read(....) { return snd_hdac_codec_read(&codec->core, .....); } Takashi