- Jul 16, 2021
-
-
Shengjiu Wang authored
Update rpmsg audio nodes to comply with upstreamed driver Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
Update rpmsg audio nodes to comply with upstreamed driver Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
Update rpmsg audio nodes to comply with upstreamed driver Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
Update rpmsg audio nodes to comply with upstreamed driver Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
with rpmsg devices, there is not headphone plug event on A core side, but pulseaudio would mute the headphone if there is not headphone Jack event, so add dummy headphone Jack, which emulates the headphone is plugged in always. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
The difference of rpmsg_ak4497 and ak4497 driver is first one will send command through rpmsg, second one send command through i2c. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
This codec is accessed by rpmsg. As the wm8960 is controlled mainly by M4, so we only add volume in this rpmsg_wm8960 codec. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
add soc specific data Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
Support AK4497 and wm8960 codec device register. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Shengjiu Wang authored
The platform device is not registered by device tree or cpu dai driver, it is registered by the rpmsg channel, So add a dedicated machine driver to handle this case. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1615516725-4975-7-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
The format in rpmsg is defained as unsigned char, there is warning when convert snd_pcm_format_t to it. sound/soc/fsl/imx-pcm-rpmsg.c:164:43: sparse: warning: incorrect type in assignment (different base types) sound/soc/fsl/imx-pcm-rpmsg.c:164:43: sparse: expected unsigned char format sound/soc/fsl/imx-pcm-rpmsg.c:164:43: sparse: got restricted snd_pcm_format_t [usertype] sound/soc/fsl/imx-pcm-rpmsg.c:167:43: sparse: warning: incorrect type in assignment (different base types) sound/soc/fsl/imx-pcm-rpmsg.c:167:43: sparse: expected unsigned char format sound/soc/fsl/imx-pcm-rpmsg.c:167:43: sparse: got restricted snd_pcm_format_t [usertype] Refine the unused RPMSG_DSD_U16_LE and RPMSG_DSD_U32_LE for these case to fix this sparse warning. Fixes: 3c00eceb ("ASoC: imx-pcm-rpmsg: Add platform driver for audio base on rpmsg") Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1620268240-1005-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
cppcheck warning: assigned a value that is never used. [unreadVariable] int written_num = 0; ^ sound/soc/fsl/imx-pcm-rpmsg.c:547:18: style: Variable 'written_num' is Signed-off-by:
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20210426214701.235106-5-pierre-louis.bossart@linux.intel.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
Platform driver based on rpmsg is the interface for sending and receiving rpmsg to and from M core. It will tell the Cortex-M core sound format/rate/channel, where is the data buffer, where is the period size, when to start, when to stop and when suspend or resume happen, each this behavior there is defined rpmsg command. Especially we designed the low power audio case, that is to allocate a large buffer and fill the data, then Cortex-A core can go to sleep mode, Cortex-M core continue to play the sound, when the buffer is consumed, Cortex-M core will trigger the Cortex-A core to wake up. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1615516725-4975-6-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
This driver is used to accept the message from rpmsg audio channel, and if this driver is probed, it will help to register the platform driver, the platform driver will use this audio channel to send and receive messages to and from Cortex-M core. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1615516725-4975-5-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
This fixes the following sparse warnings: sound/soc/fsl/fsl_rpmsg.c:45:45: sparse: sparse: Using plain integer as NULL pointer sound/soc/fsl/fsl_rpmsg.c:45:56: sparse: sparse: Using plain integer as NULL pointer Fixes: b73d9e62 ("ASoC: fsl_rpmsg: Add CPU DAI driver for audio base on rpmsg") Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reported-by:
kernel test robot <lkp@intel.com> Link: https://lore.kernel.org/r/1616988868-971-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
This is a cpu dai driver for rpmsg audio use case, which is mainly used for getting the user's configuration from devicetree and configure the clocks which is used by Cortex-M core. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1615516725-4975-3-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
fsl_rpmsg is a virtual audio device. Mapping to real hardware devices are SAI, DMA controlled by Cortex M core. What we see from Linux side is a device which provides audio service by rpmsg channel. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1615516725-4975-4-git-send-email-shengjiu.wang@nxp.com Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
Remove rpmsg audio driver for preparing port upstreamed rpmsg audio driver back. Signed-off-by:
Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com>
-
Robert Chiras authored
Move the elcdif_pll clock initialization before the lcd_clk, since the elcdif_clk needs to be initialized ahead of lcd_clk, being its parent. This change fixes issues with the LCD clocks during suspend/resume. Signed-off-by:
Robert Chiras <robert.chiras@nxp.com> Suggested-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> Acked-by:
Laurentiu Palcu <laurentiu.palcu@nxp.com>
-
Rob Herring authored
The example for the Silvaco I3C master doesn't match the schema's compatible string. Fix it. Cc: Miquel Raynal <miquel.raynal@bootlin.com> Cc: Conor Culhane <conor.culhane@silvaco.com> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com> Cc: linux-i3c@lists.infradead.org Signed-off-by:
Rob Herring <robh@kernel.org> Reviewed-by:
Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210311234056.1588751-1-robh@kernel.org
-
Miquel Raynal authored
Silvaco provide a dual-role I3C master. Description is rather simple: it needs a register mapping, three clocks and an interrupt. Signed-off-by:
Miquel Raynal <miquel.raynal@bootlin.com> Reviewed-by:
Rob Herring <robh@kernel.org> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210121101808.14654-5-miquel.raynal@bootlin.com
-
Yang Yingliang authored
Fix the following make W=1 warning: drivers/i3c/master/svc-i3c-master.c:207: warning: expecting prototype for struct svc_i3c_i3c_dev_data. Prototype was for struct svc_i3c_i2c_dev_data instead Signed-off-by:
Yang Yingliang <yangyingliang@huawei.com> Reviewed-by:
Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210602085544.4101980-1-yangyingliang@huawei.com (cherry picked from commit 3e5feb11)
-
Yang Yingliang authored
irq allocated with devm_request_irq() will be freed in devm_irq_release(), using free_irq() in ->remove() will causes a dangling pointer, and a subsequent double free. So remove the free_irq() in svc_i3c_master_remove(). Reported-by:
Hulk Robot <hulkci@huawei.com> Signed-off-by:
Yang Yingliang <yangyingliang@huawei.com> Reviewed-by:
Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210602084935.3977636-1-yangyingliang@huawei.com (cherry picked from commit 59a61e69)
-
Colin Ian King authored
The assignment of xfer_len to cmd->read_len appears to be redundant as the next statement re-assigns the value 0 to it. Clean up the code by removing the redundant first assignment. Addresses-Coverity: ("Unused value") Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver") Signed-off-by:
Colin Ian King <colin.king@canonical.com> Reviewed-by:
Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210224151349.202332-1-colin.king@canonical.com (cherry picked from commit 436cb709)
-
Miquel Raynal authored
Disabling all event calls is already handled by the core right before starting the DAA process. Do not do it again when the DAA process completes, it is redundant. Fixes: 1dd728f5 ("i3c: master: Add driver for Synopsys DesignWare IP") Signed-off-by:
Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20201228105501.6104-1-miquel.raynal@bootlin.com (cherry picked from commit 5c34b8e7)
-
Miquel Raynal authored
Add support for Silvaco I3C dual-role IP. The master role is supported in SDR mode only. I2C transfers have not been tested but are shared because they are very close to the I3C transfers in terms of register configuration. The IBI processing follows this logic: - When a slave advertizes an interrupt (SDA pulled low) an interrupt gets generated by the master. This time is unbounded and may be deferred. - The IRQ handler itself does not process anything: it only queues a work that will be run in non-atomic context. This is needed because short wait periods must be experienced. - The IBI job is divided in two parts: the first one is "critical" in the sense that it may not support getting interrupted. If this happens, after this first section the driver checks the master error register and depending on its content either flushes everything and errors out, or ends the processing (this second section may be interrupted). - If the critical section got interrupted, the slave will automatically respin it's IBI request when it will be allowed to. Signed-off-by:
Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210121101808.14654-6-miquel.raynal@bootlin.com (cherry picked from commit dd3c5284)
-
Uwe Kleine-König authored
The driver core ignores the return value of struct bus_type::remove() because there is only little that can be done. To simplify the quest to make this function return void, let struct i3c_driver::remove() return void, too. This makes it obvious that returning an error code is a bad idea and future driver authors cannot get that wrong. Up to now there are no drivers with a remove callback, so there is no need to adapt drivers. Signed-off-by:
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210128091048.17006-2-u.kleine-koenig@pengutronix.de (cherry picked from commit dd926703)
-
Uwe Kleine-König authored
A registered driver without a probe callback doesn't make sense, so refuse to register such a driver. (Otherwise i3c_device_probe() yields a NULL pointer exception.) A driver without remove is possible, e.g. when all resources are freed using devm callbacks. So guard the call to driver->remove by a check for being non-NULL. Note that the only in-tree i3c driver (drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i3c.c) doesn't have a remove callback. Signed-off-by:
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210128091048.17006-1-u.kleine-koenig@pengutronix.de (cherry picked from commit 7456fea5)
-
David Gow authored
The MIPI i3c HCI driver makes use of IOMEM functions like devm_platform_ioremap_resource(), which are only available if CONFIG_HAS_IOMEM is defined. This causes the driver to be enabled under make ARCH=um allyesconfig, even though it won't build. By adding a dependency on HAS_IOMEM, the driver will not be enabled on architectures which don't support it. Fixes: 9ad9a52c ("i3c/master: introduce the mipi-i3c-hci driver") Signed-off-by:
David Gow <davidgow@google.com> Acked-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20210127040636.1535722-1-davidgow@google.com (cherry picked from commit 9d909f1b)
-
Nathan Chancellor authored
Clang warns: ../drivers/i3c/master/mipi-i3c-hci/core.c:780:21: warning: attribute declaration must precede definition [-Wignored-attributes] static const struct __maybe_unused of_device_id i3c_hci_of_match[] = { ^ ../include/linux/compiler_attributes.h:267:56: note: expanded from macro '__maybe_unused' #define __maybe_unused __attribute__((__unused__)) ^ ../include/linux/mod_devicetable.h:262:8: note: previous definition is here struct of_device_id { ^ 1 warning generated. 'struct of_device_id' should not be split, as it is a type. Move the __maybe_unused attribute after the static and const qualifiers so that there are no warnings about this variable, period. Fixes: 95393f3e ("i3c/master/mipi-i3c-hci: quiet maybe-unused variable warning") Link: https://github.com/ClangBuiltLinux/linux/issues/1221 Signed-off-by:
Nathan Chancellor <natechancellor@gmail.com> Acked-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20201222025931.3043480-1-natechancellor@gmail.com (cherry picked from commit 291b5c98)
-
Nicolas Pitre authored
If CONFIG_OF is disabled then the matching table is notreferenced. Reported-by:
kernel test robot <lkp@intel.com> Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Boris Brezillon <boris.brezillon@collabora.com> (cherry picked from commit 95393f3e)
-
Colin Ian King authored
The variable next_addr is not initialized and is being used in a call to i3c_master_get_free_addr as a starting point to find the next address. Fix this by initializing next_addr to 0 to avoid an uninitialized garbage starting address from being used. Addresses-Coverity: ("Uninitialized scalar variable") Fixes: 9ad9a52c ("i3c/master: introduce the mipi-i3c-hci driver") Signed-off-by:
Colin Ian King <colin.king@canonical.com> Acked-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Boris Brezillon <boris.brezillon@collabora.com> Link: https://lore.kernel.org/linux-i3c/20201124123504.396249-1-colin.king@canonical.com (cherry picked from commit 8e345737)
-
Nicolas Pitre authored
This adds basic support for hardware implementing the MIPI I3C HCI specification. This driver is currently limited by the capabilities of the I3C subsystem, meaning things like scheduled commands, auto-commands and NCM mode are not yet supported. This supports version 1.0 of the MIPI I3C HCI spec, as well as the imminent release of version 1.1. Support for draft version 2.0 of the spec is also largely included with the caveat that future adjustments to this code are likely as the spec is still a work in progress. This is also lightly tested as actual hardware is still very scarce, even for HCI v1.0. Hence the EXPERIMENTAL tag. Further contributions to this driver are expected once vendor implementations and new I3C devices become available. Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Boris Brezillon <boris.brezillon@collabora.com> Link: https://lore.kernel.org/linux-i3c/20201111220510.3622216-3-nico@fluxnic.net (cherry picked from commit 9ad9a52c)
-
Clark Wang authored
When the defer probe occurs, the pm_runtime_put() used before may cause runtime pm to be disabled before clks of device truly closed. So use pm_runtime_put_sync() in the error path to suspend it immediately and put pm_runtime_disable() to the last. Signed-off-by:
Clark Wang <xiaoning.wang@nxp.com> Reviewed-by:
Jun Li <jun.li@nxp.com> Reviewed-by:
Haibo Chen <haibo.chen@nxp.com>
-
Apeksha Gupta authored
add file for new fec-uio driver and maintainers for net/fec-uio. Signed-off-by:
Apeksha Gupta <apeksha.gupta@nxp.com>
-
Apeksha Gupta authored
Enable fec-uio driver for imx booting up support. CONFIG_FEC_UIO flag added to compile the fec-uio driver. Signed-off-by:
Apeksha Gupta <apeksha.gupta@nxp.com> Reviewed-by:
Dong Aisheng <aisheng.dong@nxp.com>
-
Apeksha Gupta authored
New DTS file 'imx8mmevk-evk-dpdk.dts' is added to support fec ethernet device detection in user space DPDK application via fec-uio driver. Signed-off-by:
Sachin Saxena <sachin.saxena@nxp.com> Signed-off-by:
Apeksha Gupta <apeksha.gupta@nxp.com> Reviewed-by:
Dong Aisheng <aisheng.dong@nxp.com>
-
Apeksha Gupta authored
i.mx: fec-uio driver This patch adds the userspace support. In the new mode, basic hardware initialization is performed in kernel via userspace input/output, while the majority of code is written in the userspace. Signed-off-by:
Sachin Saxena <sachin.saxena@nxp.com> Signed-off-by:
Apeksha Gupta <apeksha.gupta@nxp.com> Reviewed-by:
Sachin Saxena <sachin.saxena@nxp.com>
-
Sandor Yu authored
Add a new drm bridge driver for ITE IT6161 MIPI to HDMI converter. EDID and HDMI Audio are supported. Driver default work in 2 lanes and video mode 480p60 has verified on iMX8ULP EVK board. Signed-off-by:
Sandor Yu <Sandor.yu@nxp.com>
-
Sandor Yu authored
Add it6161 to imx_v8_deconfig. Signed-off-by:
Sandor Yu <Sandor.yu@nxp.com>
-