From: Takashi Iwai <tiwai@suse.de>
To: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
Cc: alsa-devel@alsa-project.org, vinod.koul@intel.com,
pierre-louis.bossart@linux.intel.com,
liam.r.girdwood@linux.intel.com, patches.audio@intel.com,
broonie@kernel.org
Subject: Re: [RFC v3 05/11] ALSA: hda - make some of the functions externally visible
Date: Fri, 15 Dec 2017 12:34:22 +0100 [thread overview]
Message-ID: <s5hefnwgr7l.wl-tiwai@suse.de> (raw)
In-Reply-To: <1513337448-31685-6-git-send-email-rakesh.a.ughreja@intel.com>
On Fri, 15 Dec 2017 12:30:42 +0100,
Rakesh Ughreja wrote:
>
> Mark some functions with EXPORT_SYMBOL_GPL so that it can be called by
> other kernel modules. Move the probe function into generic driver.
> These APIs would be called by ASoC based HDA codec driver which will be
> added in the later patches.
>
> Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
> ---
> sound/pci/hda/hda_bind.c | 10 +++++-----
> sound/pci/hda/hda_codec.c | 9 +++++++--
> sound/pci/hda/hda_codec.h | 6 ++++++
> sound/pci/hda/hda_generic.c | 13 +++++++++++++
> 4 files changed, 31 insertions(+), 7 deletions(-)
>
> diff --git a/sound/pci/hda/hda_bind.c b/sound/pci/hda/hda_bind.c
> index d361bb7..d8715a1 100644
> --- a/sound/pci/hda/hda_bind.c
> +++ b/sound/pci/hda/hda_bind.c
> @@ -149,8 +149,8 @@ static void hda_codec_driver_shutdown(struct device *dev)
> codec->patch_ops.reboot_notify(codec);
> }
>
> -int __hda_codec_driver_register(struct hda_codec_driver *drv, const char *name,
> - struct module *owner)
> +int __hda_legacy_codec_driver_register(struct hda_codec_driver *drv,
> + const char *name, struct module *owner)
> {
> drv->core.driver.name = name;
> drv->core.driver.owner = owner;
> @@ -164,13 +164,13 @@ int __hda_codec_driver_register(struct hda_codec_driver *drv, const char *name,
> drv->core.unsol_event = hda_codec_unsol_event;
> return driver_register(&drv->core.driver);
> }
> -EXPORT_SYMBOL_GPL(__hda_codec_driver_register);
> +EXPORT_SYMBOL_GPL(__hda_legacy_codec_driver_register);
>
> -void hda_codec_driver_unregister(struct hda_codec_driver *drv)
> +void hda_legacy_codec_driver_unregister(struct hda_codec_driver *drv)
> {
> driver_unregister(&drv->core.driver);
> }
> -EXPORT_SYMBOL_GPL(hda_codec_driver_unregister);
> +EXPORT_SYMBOL_GPL(hda_legacy_codec_driver_unregister);
>
> static inline bool codec_probed(struct hda_codec *codec)
> {
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index e018ecb..085fd9e 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -2903,7 +2903,7 @@ static void hda_call_codec_resume(struct hda_codec *codec)
> atomic_dec(&codec->core.in_pm);
> }
>
> -static int hda_codec_runtime_suspend(struct device *dev)
> +int hda_codec_runtime_suspend(struct device *dev)
> {
> struct hda_codec *codec = dev_to_hda_codec(dev);
> struct hda_pcm *pcm;
> @@ -2919,8 +2919,9 @@ static int hda_codec_runtime_suspend(struct device *dev)
> snd_hdac_link_power(&codec->core, false);
> return 0;
> }
> +EXPORT_SYMBOL_GPL(hda_codec_runtime_suspend);
>
> -static int hda_codec_runtime_resume(struct device *dev)
> +int hda_codec_runtime_resume(struct device *dev)
> {
> struct hda_codec *codec = dev_to_hda_codec(dev);
>
> @@ -2930,6 +2931,7 @@ static int hda_codec_runtime_resume(struct device *dev)
> pm_runtime_mark_last_busy(dev);
> return 0;
> }
> +EXPORT_SYMBOL_GPL(hda_codec_runtime_resume);
> #endif /* CONFIG_PM */
>
> /* referred in hda_bind.c */
> @@ -3005,6 +3007,7 @@ int snd_hda_codec_build_controls(struct hda_codec *codec)
> sync_power_up_states(codec);
> return 0;
> }
> +EXPORT_SYMBOL_GPL(snd_hda_codec_build_controls);
>
> /*
> * PCM stuff
> @@ -3210,6 +3213,7 @@ int snd_hda_codec_parse_pcms(struct hda_codec *codec)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(snd_hda_codec_parse_pcms);
>
> /* assign all PCMs of the given codec */
> int snd_hda_codec_build_pcms(struct hda_codec *codec)
> @@ -3246,6 +3250,7 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(snd_hda_codec_build_pcms);
>
> /**
> * snd_hda_add_new_ctls - create controls from the array
> diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
> index 681c360..ef626cf 100644
> --- a/sound/pci/hda/hda_codec.h
> +++ b/sound/pci/hda/hda_codec.h
> @@ -99,6 +99,10 @@ struct hda_codec_driver {
> const struct hda_device_id *id;
> };
>
> +int __hda_legacy_codec_driver_register(struct hda_codec_driver *drv,
> + const char *name, struct module *owner);
> +void hda_legacy_codec_driver_unregister(struct hda_codec_driver *drv);
> +
> int __hda_codec_driver_register(struct hda_codec_driver *drv, const char *name,
> struct module *owner);
> #define hda_codec_driver_register(drv) \
> @@ -497,6 +501,8 @@ int hda_call_check_power_status(struct hda_codec *codec, hda_nid_t nid)
> #ifdef CONFIG_PM
> void snd_hda_set_power_save(struct hda_bus *bus, int delay);
> void snd_hda_update_power_acct(struct hda_codec *codec);
> +int hda_codec_runtime_suspend(struct device *dev);
> +int hda_codec_runtime_resume(struct device *dev);
> #else
> static inline void snd_hda_set_power_save(struct hda_bus *bus, int delay) {}
> #endif
> diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
> index 5cc6509..09ab02e 100644
> --- a/sound/pci/hda/hda_generic.c
> +++ b/sound/pci/hda/hda_generic.c
> @@ -5961,6 +5961,19 @@ static int snd_hda_parse_generic_codec(struct hda_codec *codec)
> return err;
> }
>
> +int __hda_codec_driver_register(struct hda_codec_driver *drv, const char *name,
> + struct module *owner)
> +{
> + return __hda_legacy_codec_driver_register(drv, name, owner);
> +}
> +EXPORT_SYMBOL_GPL(__hda_codec_driver_register);
> +
> +void hda_codec_driver_unregister(struct hda_codec_driver *drv)
> +{
> + hda_legacy_codec_driver_unregister(drv);
> +}
> +EXPORT_SYMBOL_GPL(hda_codec_driver_unregister);
I'm afraid that this will break things when no generic driver is
selected in kconfig. What's the reason to move there?
thanks,
Takashi
next prev parent reply other threads:[~2017-12-15 11:34 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 [this message]
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
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=s5hefnwgr7l.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).