[alsa-devel] [PATCH] ASoC: wm_adsp: Add basic debugfs entries

Mark Brown broonie at kernel.org
Mon Jun 8 19:40:41 CEST 2015


On Mon, Jun 08, 2015 at 03:37:02PM +0100, Richard Fitzgerald wrote:

> +++ b/sound/soc/codecs/wm5102.c
> @@ -1875,6 +1875,8 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec)
>  	struct wm5102_priv *priv = snd_soc_codec_get_drvdata(codec);
>  	int ret;
>  
> +	wm_adsp_init_debugfs(&priv->core.adsp[0], codec);
> +

Why are we adding this init to every individual CODEC rather than doing
it when we initialize the DSP (which there are calls for already)?

> +#ifdef CONFIG_DEBUG_FS
> +static void wm_adsp_debugfs_save_wmfwname(struct wm_adsp *dsp, const char *s);
> +static void wm_adsp_debugfs_save_binname(struct wm_adsp *dsp, const char *s);
> +static void wm_adsp_debugfs_clear(struct wm_adsp *dsp);
> +#else
> +static inline void wm_adsp_debugfs_save_wmfwname(struct wm_adsp *dsp,
> +						 const char *s)
> +{
> +}
> +
> +static inline void wm_adsp_debugfs_save_binname(struct wm_adsp *dsp,
> +						const char *s)
> +{
> +}
> +
> +static inline void wm_adsp_debugfs_clear(struct wm_adsp *dsp)
> +{
> +}
> +#endif
> +

Why not just put the functions here rather than prototypes?

> +static ssize_t wm_adsp_debugfs_string_read(struct wm_adsp *dsp,
> +					  char __user *user_buf,
> +					  size_t count, loff_t *ppos,
> +					  const char *string)
> +{
> +	char *temp;
> +	int len;
> +	ssize_t ret;
> +
> +	if (!string || !dsp->running)
> +		return 0;

Does debugfs ensure that the right thing happens and this gets treated
as EOF rather than a "zero length read, please retry" (which something
might decide to busy wait trying)?  I'd have expected either an error or
substituting in an empty/informative string here.

> +	temp = kmalloc(PAGE_SIZE, GFP_KERNEL);
> +	if (!temp)
> +		return -ENOMEM;
> +
> +	len = snprintf(temp, PAGE_SIZE, "%s\n", string);

Given that we already have the string I don't understand why we're
allocating the temporary buffer - if it's just the length we're looking
for then strlen() should be enough?

> +} wm_adsp_debugfs_fops[] = {
> +	{
> +		.name = "wmfw_file",

> +		.name = "bin_file",

Bikeshedding but _name not _file perhaps?  It's not going to give you a
copy of the firmware/coefficients.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20150608/d70d436d/attachment.sig>


More information about the Alsa-devel mailing list