From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: alsa-devel@alsa-project.org, tiwai@suse.de,
Keyon Jie <yang.jie@linux.intel.com>,
Daniel Baluta <daniel.baluta@gmail.com>,
liam.r.girdwood@linux.intel.com, vkoul@kernel.org,
broonie@kernel.org, Alan Cox <alan@linux.intel.com>,
sound-open-firmware@alsa-project.org
Subject: Re: [PATCH v3 14/14] ASoC: SOF: Add utils
Date: Wed, 12 Dec 2018 01:06:09 +0200 [thread overview]
Message-ID: <20181211230609.GL10650@smile.fi.intel.com> (raw)
In-Reply-To: <20181211212318.28644-15-pierre-louis.bossart@linux.intel.com>
On Tue, Dec 11, 2018 at 03:23:18PM -0600, Pierre-Louis Bossart wrote:
> Helpers to set-up back-ends, create platform devices and common
> IO/block read/write operations
> +int sof_bes_setup(struct device *dev, struct snd_sof_dsp_ops *ops,
> + struct snd_soc_dai_link *links, int link_num,
> + struct snd_soc_card *card)
> +{
> + char name[32];
> + int i;
> +
> + if (!ops || !links || !card)
> + return -EINVAL;
> +
> + /* set up BE dai_links */
> + for (i = 0; i < link_num; i++) {
> + snprintf(name, 32, "NoCodec-%d", i);
sizeof(name) ?
> + links[i].name = devm_kstrdup(dev, name, GFP_KERNEL);
> + if (!links[i].name)
> + return -ENOMEM;
...or better devm_kasprintf().
> +
> + links[i].id = i;
> + links[i].no_pcm = 1;
> + links[i].cpu_dai_name = ops->drv[i].name;
> + links[i].platform_name = "sof-audio";
> + links[i].codec_dai_name = "snd-soc-dummy-dai";
> + links[i].codec_name = "snd-soc-dummy";
> + links[i].dpcm_playback = 1;
> + links[i].dpcm_capture = 1;
> + }
> +
> + card->dai_link = links;
> + card->num_links = link_num;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(sof_bes_setup);
> +
> +/* register sof platform device */
> +int sof_create_platform_device(struct sof_platform_priv *priv)
> +{
> + struct snd_sof_pdata *sof_pdata = priv->sof_pdata;
> + struct device *dev = sof_pdata->dev;
> +
> + priv->pdev_pcm =
> + platform_device_register_data(dev, "sof-audio", -1,
> + sof_pdata, sizeof(*sof_pdata));
> + if (IS_ERR(priv->pdev_pcm)) {
> + dev_err(dev, "error: cannot register device sof-audio. Error %d\n",
> + (int)PTR_ERR(priv->pdev_pcm));
Instead of casting perhaps use %ld?
> + return PTR_ERR(priv->pdev_pcm);
> + }
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(sof_create_platform_device);
> +void sof_io_write64(struct snd_sof_dev *sdev, void __iomem *addr, u64 value)
> +{
> +#ifdef CONFIG_64BIT
> + writeq(value, addr);
> +#else
> + memcpy_toio(addr, &value, sizeof(value));
> +#endif
This ifdef sounds strange.
Just include io64-nonatomic-lo-hi.h and use readq() w/o limitations.
> +}
> +EXPORT_SYMBOL(sof_io_write64);
> +
> +u64 sof_io_read64(struct snd_sof_dev *sdev, void __iomem *addr)
> +{
> +#ifdef CONFIG_64BIT
> + return readq(addr);
> +#else
> + u64 val;
> +
> + memcpy_fromio(&val, addr, sizeof(val));
> + return val;
> +#endif
Ditto.
> +}
> +EXPORT_SYMBOL(sof_io_read64);
> + affected_mask = (1 << (8 * n)) - 1;
> +
> + /* first read the 32bit data of dest, then change affected
> + * bytes, and write back to dest. For unaffected bytes, it
> + * should not be changed
> + */
> + __ioread32_copy(&tmp, dest + m * 4, 1);
> + tmp &= ~affected_mask;
> +
> + tmp |= *(u32 *)(src_byte + m * 4) & affected_mask;
> + __iowrite32_copy(dest + m * 4, &tmp, 1);
Ain't these equivalents to simple ioread32() / iowrite32() ?
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2018-12-11 23:06 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-11 21:23 [PATCH v3 00/14] Sound Open Firmware (SOF) core Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 01/14] ASoC: SOF: Add Sound Open Firmware driver core Pierre-Louis Bossart
2018-12-11 22:20 ` Andy Shevchenko
2018-12-11 23:20 ` Pierre-Louis Bossart
2018-12-12 7:51 ` Takashi Iwai
2018-12-12 14:53 ` Pierre-Louis Bossart
2018-12-12 20:42 ` Daniel Baluta
2018-12-12 22:35 ` Pierre-Louis Bossart
2019-01-29 16:49 ` Daniel Baluta
2019-01-30 16:12 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 02/14] ASoC: SOF: Add Sound Open Firmware KControl support Pierre-Louis Bossart
2018-12-11 22:23 ` Andy Shevchenko
2018-12-11 22:48 ` Pierre-Louis Bossart
2018-12-11 23:25 ` Andy Shevchenko
2018-12-12 20:18 ` Pierre-Louis Bossart
2018-12-12 7:35 ` Takashi Iwai
2018-12-12 15:01 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 03/14] ASoC: SOF: Add driver debug support Pierre-Louis Bossart
2018-12-11 22:32 ` Andy Shevchenko
2018-12-11 23:29 ` Pierre-Louis Bossart
2019-01-09 19:40 ` Mark Brown
2019-01-10 20:47 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 04/14] ASoC: SOF: Add support for IPC IO between DSP and Host Pierre-Louis Bossart
2018-12-11 22:57 ` Andy Shevchenko
2018-12-11 23:38 ` Pierre-Louis Bossart
2018-12-12 8:17 ` Takashi Iwai
2018-12-12 15:19 ` Pierre-Louis Bossart
2018-12-12 15:34 ` Takashi Iwai
2018-12-13 5:24 ` Keyon Jie
2018-12-13 7:48 ` Takashi Iwai
2018-12-13 9:13 ` Keyon Jie
2018-12-13 8:06 ` Keyon Jie
2018-12-13 8:59 ` rander.wang
2019-01-09 20:37 ` Mark Brown
2019-01-10 20:11 ` Pierre-Louis Bossart
2019-01-22 19:04 ` Mark Brown
2019-01-22 21:05 ` Pierre-Louis Bossart
2019-01-22 21:13 ` Mark Brown
2019-01-23 5:51 ` [Sound-open-firmware] " Keyon Jie
2019-01-14 15:10 ` Daniel Baluta
2019-01-14 17:39 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 05/14] ASoC: SOF: Add PCM operations support Pierre-Louis Bossart
2018-12-12 8:04 ` Takashi Iwai
2018-12-12 13:12 ` Andy Shevchenko
2018-12-12 15:29 ` [Sound-open-firmware] " Pierre-Louis Bossart
2018-12-12 15:43 ` Takashi Iwai
2018-12-12 16:10 ` Pierre-Louis Bossart
2018-12-12 22:09 ` Daniel Baluta
2018-12-11 21:23 ` [PATCH v3 06/14] ASoC: SOF: Add support for loading topologies Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 07/14] ASoC: SOF: Add DSP firmware logger support Pierre-Louis Bossart
2018-12-11 23:21 ` Andy Shevchenko
2018-12-11 23:43 ` Pierre-Louis Bossart
2018-12-12 6:44 ` Takashi Iwai
2018-12-12 11:11 ` Takashi Iwai
2018-12-12 16:04 ` [Sound-open-firmware] " Pierre-Louis Bossart
2018-12-12 16:12 ` Takashi Iwai
2018-12-12 17:01 ` Pierre-Louis Bossart
2019-01-09 20:44 ` Mark Brown
2019-01-09 21:39 ` Pierre-Louis Bossart
2019-01-22 18:57 ` Mark Brown
2019-01-22 20:33 ` Pierre-Louis Bossart
2019-01-22 20:41 ` Mark Brown
2019-01-22 20:52 ` Pierre-Louis Bossart
2019-01-22 21:08 ` Mark Brown
2019-01-22 21:13 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 08/14] ASoC: SOF: Add DSP HW abstraction operations Pierre-Louis Bossart
2018-12-11 23:16 ` Andy Shevchenko
2018-12-11 23:45 ` Pierre-Louis Bossart
2019-01-09 20:51 ` Mark Brown
2019-01-09 21:37 ` Pierre-Louis Bossart
2019-01-22 18:56 ` Mark Brown
2018-12-11 21:23 ` [PATCH v3 09/14] ASoC: SOF: Add firmware loader support Pierre-Louis Bossart
2018-12-11 22:38 ` Andy Shevchenko
2018-12-11 23:54 ` Pierre-Louis Bossart
2019-01-09 20:55 ` Mark Brown
2018-12-12 11:23 ` Takashi Iwai
2018-12-12 16:06 ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-01-09 21:02 ` Mark Brown
2019-01-09 21:24 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 10/14] ASoC: SOF: Add userspace ABI support Pierre-Louis Bossart
2018-12-21 11:10 ` Daniel Baluta
2018-12-21 14:59 ` [Sound-open-firmware] " Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 11/14] ASoC: SOF: Add PM support Pierre-Louis Bossart
2018-12-12 11:32 ` Takashi Iwai
2018-12-12 16:08 ` Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 12/14] ASoC: SOF: Add Nocodec machine driver support Pierre-Louis Bossart
2018-12-11 21:23 ` [PATCH v3 13/14] ASoC: SOF: Add xtensa support Pierre-Louis Bossart
2018-12-11 23:08 ` Andy Shevchenko
2018-12-12 0:00 ` Pierre-Louis Bossart
[not found] ` <93aff9af-c693-c951-4821-e9e334133ed0@linux.intel.com>
2018-12-13 9:58 ` [Sound-open-firmware] " rander.wang
2018-12-17 13:45 ` Takashi Iwai
2018-12-17 14:24 ` Mark Brown
2018-12-11 21:23 ` [PATCH v3 14/14] ASoC: SOF: Add utils Pierre-Louis Bossart
2018-12-11 23:06 ` Andy Shevchenko [this message]
2018-12-12 0:06 ` Pierre-Louis Bossart
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=20181211230609.GL10650@smile.fi.intel.com \
--to=andriy.shevchenko@intel.com \
--cc=alan@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=daniel.baluta@gmail.com \
--cc=liam.r.girdwood@linux.intel.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=sound-open-firmware@alsa-project.org \
--cc=tiwai@suse.de \
--cc=vkoul@kernel.org \
--cc=yang.jie@linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.