ment->size);
> - memset(data + offset, 0xff, segment->size);
> - } else {
> - memcpy(data + offset, ptr, segment->size);
> + memset(data + offset, 0xff, segment->size);
> + } else {
> + memcpy(data + offset, ptr, segment->size);
> + }
--
~Vinod
On 19-06-18, 22:58, Stephen Boyd wrote:
> Quoting Vinod Koul (2018-06-19 02:54:30)
> > Qcom 8996 and later chips support prng v2 which requires to
> > implement only .read callback for hwrng.
> >
> > This version of chip has multiple Execution Environments (EE) and
&g
dev, matchptr,
> + sdm845_release_of,
> + sdm845_compare_of,
> + dai_node);
> + }
> +
> + platform = of_get_child_by_name(np, "platform");
> + if (platform) {
> + dai_node = of_parse_phandle(platform, "sound-dai", 0);
> + component_match_add_release(dev, matchptr,
> + sdm845_release_of,
> + sdm845_compare_of,
> + dai_node);
> + }
> + }
> +
> + return 0;
> +}
And this one is generic DT parsing and seems quite similar to one in apq8096.c
Can we move these into a lib and use them instead of duplicating.
--
~Vinod
slim_val_inf
and you invoke that with required parameters to be filled.
> +/*
> + * slim_stream_enable() - Enable a prepared SLIMbus Stream
Do you want to check if it is already prepared ..?
> +/**
> + * slim_stream_direction: SLIMbus stream direction
> + *
> + * @SLIM_STREAM_DIR_PLAYBACK: Playback
> + * @SLIM_STREAM_DIR_CAPTURE: Capture
> + */
> +enum slim_stream_direction {
> + SLIM_STREAM_DIR_PLAYBACK = 0,
> + SLIM_STREAM_DIR_CAPTURE,
this is same as SNDRV_PCM_STREAM_PLAYBACK, so should we use that here?
--
~Vinod
On 21-06-18, 14:28, Matthew Wilcox wrote:
> Simpler and shorter code.
I couldn't find ida_alloc/ida_free in 4.18-rc1 so I assume this will go
thru tree adding this so:
Acked-by: Vinod Koul
>
> Signed-off-by: Matthew Wilcox
> ---
> drivers/dma/dmaengine.c | 20 +-
_MC_DEF_ACT_CHAN;
> + txn.rl = txn.msg->num_bytes + 4;
> + ret = qcom_slim_ngd_xfer_msg_sync(ctrl, &txn);
> + if (ret) {
> + slim_free_txn_tid(ctrl, &txn);
> + dev_err(&sdev->dev, "TX timed out:MC:0x%x,mt:0x%x", txn.mc,
> + txn.mt);
> + return ret;
> + }
> +
> + txn.mc = SLIM_USR_MC_RECONFIG_NOW;
> + txn.msg->num_bytes = 2;
> + wbuf[1] = sdev->laddr;
> + txn.rl = txn.msg->num_bytes + 4;
> +
> + ret = slim_alloc_txn_tid(ctrl, &txn);
> + if (ret) {
what about tid allocated in previous loop.. they are not freed here on
error and seems to be overwritten by this allocation.
--
~Vinod
On 24-08-18, 08:56, Fabrizio Castro wrote:
> From: Biju Das
>
> This patch adds binding for r8a774a1 (RZ/G2M).
Acked-by: Vinod Koul
--
~Vinod
/dma-jz4780.c
> +++ b/drivers/dma/dma-jz4780.c
> @@ -616,7 +616,8 @@ static size_t jz4780_dma_desc_residue(struct
> jz4780_dma_chan *jzchan,
> residue = 0;
>
> for (i = next_sg; i < desc->count; i++)
> - residue += desc->desc[i].dtc << jzchan->transfer_shift;
> + residue += (desc->desc[i].dtc & 0xff) <<
GENMASK(23, 0) please.
--
~Vinod
make sense and fix if it does.
Thanks
--
~Vinod
alc_copysize(period_len, sg_used);
> + copy = xilinx_dma_calc_copysize(chan,
> + period_len, sg_used);
> hw = &segment->hw;
> xilinx_axidma_buf(chan, hw, buf_addr, sg_used,
> period_len * i);
> --
> 2.17.1
--
~Vinod
+ is missing or invalid then the default value 23 is used. This is the
> + maximum value that is supported by all IP versions.
> - xlnx,mcdma: Tells whether configured for multi-channel mode in the
> hardware.
> Optional properties for VDMA:
> - xlnx,flush-fsync: Tells which channel to Flush on Frame sync.
> --
> 2.17.1
--
~Vinod
tasklet_init(&chan->tasklet, xilinx_dma_do_tasklet,
> (unsigned long)chan);
> @@ -2631,7 +2638,6 @@ static int xilinx_dma_probe(struct platform_device
> *pdev)
> return PTR_ERR(xdev->regs);
>
> /* Retrieve the DMA engine properties from the device tree */
> - xdev->has_sg = of_property_read_bool(node, "xlnx,include-sg");
> xdev->max_buffer_len = GENMASK(XILINX_DMA_MAX_TRANS_LEN_MAX - 1, 0);
>
> if (xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
> --
> 2.17.1
--
~Vinod
device_unregister(mic_dma_dev->device);
> .
> kfree(mic_dma_dev)
After fixing the subsystem name, applied thanks
--
~Vinod
On 27-08-18, 20:52, Rob Herring wrote:
> In preparation to remove the node name pointer from struct device_node,
> convert printf users to use the %pOFn format specifier.
>
> Cc: Dan Williams
> Cc: Vinod Koul
> Cc: dmaeng...@vger.kernel.org
Applied after dropping CC list. thanks
--
~Vinod
in xilinx_write it takes dma_addr_t as an arg which is 32/64 bit
> depending on _DMA_ADDR_T_64BIT. In 64bit CDMA transfer, there was a bug
> i.e in the call to xilinx_write src_addr_msb 32 bits were not passed. To fix
> that combine MSB and LSB 32 bits before passing it to xilinx_write.
Yeah that part was clear but the implementation can be better..
--
~Vinod
return desc->metadata_ops->get_ptr(desc, payload_len, max_len);
> +}
> +
> +static inline int dmaengine_desc_set_metadata_len(
> + struct dma_async_tx_descriptor *desc, size_t payload_len)
> +{
> + int ret;
> +
> + if (!desc)
> + return -EINVAL;
> +
> + ret = _desc_check_and_set_metadata_mode(desc, DESC_METADATA_ENGINE);
> + if (ret)
> + return ret;
> +
> + if (!desc->metadata_ops || !desc->metadata_ops->set_len)
> + return -ENOTSUPP;
> +
> + return desc->metadata_ops->set_len(desc, payload_len);
> +}
thats bit too much code for a header file :( Lets move it to C file
please. We can utilize local dmaengine.h and not expose all these and
possible misuse by clients
Also I would like to see a use :-) before further comments.
--
~Vinod
On 29-08-18, 19:14, Peter Ujfalusi wrote:
> Vinod,
>
> On 08/29/2018 06:52 PM, Vinod wrote:
> > On 23-08-18, 16:07, Peter Ujfalusi wrote:
> >> The metadata is best described as side band data or parameters traveling
> >> alongside the data DMAd by the DMA
/scm/linux/kernel/git/vkoul/soundwire.git
Let me know if you need more details.
Thanks
--
~Vinod
signature.asc
Description: PGP signature
Hey Peter,
On 30-08-18, 11:57, Peter Ujfalusi wrote:
> On 2018-08-29 19:22, Vinod wrote:
> >>>> + * 2. use dmaengine_desc_attach_metadata() to attach the buffer to the
> >>>> + * descriptor
> >>>> + * 3. submit the transfer
> >
On 30-08-18, 10:11, Andrea Merello wrote:
> On Wed, Aug 29, 2018 at 10:12 AM Andrea Merello
> wrote:
> >
> > On Mon, Aug 27, 2018 at 7:30 AM Vinod wrote:
> > >
> > > On 02-08-18, 16:10, Andrea Merello wrote:
> > >
> > > s/cylic/cyclic in p
sages
soundwire: Add support for multi link bank switch
soundwire: keep track of Masters in a stream
soundwire: intel: Add pre/post bank switch ops
soundwire: intel: Remove duplicate assignment
Vinod Koul (3):
soundwire: Handle multiple master instances in a s
t; + * |---|
> + * | |configuration n| |
> + * --->| | |
> + * | | |
> + * | | |
> + * | | |
> + * |linklist pointer |
> + *---
> + *
> + * To support the link-list mode, DMA slaves should allocate one segment
> memory
> + * from always-on IRAM or dma coherent memory to store these groups of DMA
> + * configuration, and pass the virtual and physical addess to DMA controller.
/s/addess/address
> + */
> +struct sprd_dma_linklist {
> + unsigned long virt_addr;
> + phys_addr_t phy_addr;
> +};
> +
> #endif
> --
> 1.7.9.5
--
~Vinod
ightly said we could have done devm_dmaengine... or like
few others do dmaenginem_
Yes it makes a little odd API but am trying to move away from dma_ to
dmaengine_ for everything new..
--
~Vinod
On 26-07-18, 10:36, Manivannan Sadhasivam wrote:
> Add devicetree binding for Actions Semi Owl SoCs DMA controller.
Applied, thanks
--
~Vinod
On 26-07-18, 10:36, Manivannan Sadhasivam wrote:
> Add Actions Semi Owl family S900 DMA driver.
Applied, thanks
--
~Vinod
nsaction
> @@ -2422,12 +2827,16 @@ static int xilinx_dma_chan_probe(struct
> xilinx_dma_device *xdev,
>
> if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel") ||
> of_device_is_compatible(node, "xlnx,axi-dma-mm2s-channel") ||
> - of_device_is_compatible(node, "xlnx,axi-cdma-channel")) {
> + of_device_is_compatible(node, "xlnx,axi-cdma-channel") ||
> + of_device_is_compatible(node, "xlnx,axi-mcdma-mm2s-channel")) {
this is not scaling, maybe you should use data with each
compatible to check for specific things..
> +static const struct xilinx_dma_config aximcdma_config = {
> + .dmatype = XDMA_TYPE_AXIMCDMA,
> + .clk_init = axidma_clk_init,
> + .irq_handler = xilinx_mcdma_irq_handler,
> +};
> static const struct xilinx_dma_config axicdma_config = {
> .dmatype = XDMA_TYPE_CDMA,
> .clk_init = axicdma_clk_init,
> + .irq_handler = xilinx_dma_irq_handler,
this should be in preparatory patch
--
~Vinod
if (list_empty(&chan->pending_list))
> return;
>
> head_desc = list_first_entry(&chan->pending_list,
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
~Vinod
2 | hw->dest_addr));
>
> /* Start the transfer */
> dma_ctrl_write(chan, XILINX_DMA_REG_BTT,
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
~Vinod
gt; +{
> + struct device *dev = &slim->dev;
> + struct wcd9335 *wcd;
> + int ret = 0;
> +
> + /* Interface device */
> + if (slim->e_addr.dev_index == 0)
> + return 0;
> +
> + wcd = devm_kzalloc(dev, sizeof(*wcd), GFP_KERNEL);
> + if (!wcd)
> + return -ENOMEM;
^^
double space
--
~Vinod
m Qualcomm andriod kernel,
> so credits to various authors.
>
> WCD9335 can be interfaced via I2S/I2C or SLIMbus.
>
> Here is my test branch incase someone want to try this out:
> https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=wcd9335
Apart from the few nitpicks I noticed, this looks good to me, so:
Reviewed-by: Vinod Koul
--
~Vinod
On 24-07-18, 01:46, Robin Gong wrote:
> Add macro SDMA_BD_MAX_CNT to replace '0x'.
Applied, thanks
--
~Vinod
On 24-07-18, 01:46, Robin Gong wrote:
> Add MEMCPY capability for imx-sdma driver.
Applied, thanks
--
~Vinod
etree node for the DMA driver in the
> JZ4740 DTS file.
>
> - Some other small changes; see per-file changelog.
>
> Regards,
> -Paul
--
~Vinod
adata is payload_len bytes and can be accessed in the return pointer.
I would think to unify this..
> BTW: The driver which is going to need this is now accessible in public:
> https://git.ti.com/ti-linux-kernel/ti-linux-kernel/trees/ti-linux-4.14.y/drivers/dma/ti
>
> or in my wip tree:
> https://github.com/omap-audio/linux-audio/tree/peter/ti-linux-4.14.y/wip/drivers/dma/ti
>
> prefixed with k3-*
>
--
~Vinod
ck_invoke(
> + &next_pending_sw_desc->async_tx, NULL);
>
> dma_descriptor_unmap(&next_pending_sw_desc->async_tx);
> }
--
~Vinod
On 17-07-18, 13:29, han...@marvell.com wrote:
> From: Hanna Hawa
>
> This series bring some minor fixes & alignmnet to the driver of
> Marvell XOR-v2 engine.
Applied after fixing typo is 3rd patch, thanks
--
~Vinod
On 30-07-18, 12:46, Peter Ujfalusi wrote:
> Vinod,
>
> On 2018-07-24 14:14, Vinod wrote:
> >>>> Clients must not mix the two way of handling the metadata.
> >>>> The set_len() is intended to tell the DMA driver the client provided
> >
x-next on DB820c for both playback
> and capture paths.
>
> This patchset also depends on the SLIMbus Stream apis which is already merged
> via char-misc tree for 4.19.
>
> Some parts of the code has been inherited from Qualcomm andriod kernel,
typo andriod
--
~Vinod
On 23-07-18, 16:53, Srinivas Kandagatla wrote:
> Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC, supports
> Qualcomm Technologies, Inc. (QTI) multimedia solutions, including
> the MSM8996, MSM8976, and MSM8956 chipsets. It has in-build
in-built perhaps?
--
~Vinod
On 20-07-18, 16:42, Peter Ujfalusi wrote:
>
>
> On 2018-07-19 12:22, Vinod wrote:
> > Hi Peter,
> >
> > On 18-07-18, 13:06, Peter Ujfalusi wrote:
> >
> >>>> +struct dma_async_tx_descriptor;
> >>>> +
> >>>&
ients connected to the Actions Semi Owl SoCs DMA controller must
> +use the format described in the dma.txt file, using a two-cell specifier
> +for each channel.
> +
> +The two cells in order are:
> +1. A phandle pointing to the DMA controller.
> +2. The channel id.
> +
> +uart5: serial@e012a000 {
> +...
> +dma-names = "tx", "rx";
> +dmas = <&dma 26>, <&dma 27>;
> +...
> +};
> --
> 2.17.1
--
~Vinod
On 24-07-18, 14:19, Andreas Färber wrote:
> Hi Vinod,
>
> Am 24.07.2018 um 14:16 schrieb Vinod:
> > Patch title should be dmaengine: ... Please always use the apt tags and
> > one can find them using git log
>
> Do you mean dt-bindings: dmaengine: ...? Because this is
somehow this got stuck so sending again...
On 24-07-18, 18:16, Vinod wrote:
> On 23-07-18, 09:47, Manivannan Sadhasivam wrote:
>
> > +#include
> > +#include
> > +#include
> > +#include
> > +#include
> > +#include
> > +#include
> >
On 24-07-18, 13:09, Paul Cercueil wrote:
> Hi,
>
> Le lun. 23 juil. 2018 à 19:58, Paul Burton a écrit :
> > Hi Paul & Vinod,
> >
> > On Sat, Jul 21, 2018 at 01:06:25PM +0200, Paul Cercueil wrote:
> > > This is the version 3 of my jz4780-dma driver upd
GFP_KERNEL);
> if (!jzdma)
> return -ENOMEM;
>
> + jzdma->soc_data = soc_data;
> + jzdma->version = version;
why do you need to store version, driver should handle values and not
versions..
--
~Vinod
n and use
that. For each controller it is set to true or false
--
~Vinod
st
I think Randy did flag this one some other patch as well. All the
patches need to be signed off by sender as well
--
~Vinod
On 24-07-18, 17:04, Paul Cercueil wrote:
> Hi Vinod,
>
> Le mar. 24 juil. 2018 à 15:32, Vinod a écrit :
> > On 21-07-18, 13:06, Paul Cercueil wrote:
> > > +static inline void jz4780_dma_chan_enable(struct jz4780_dma_dev
> > > *jzdma,
> > > +
snd_kcontrol *kc,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kc);
> + struct wcd9335_codec *wcd = dev_get_drvdata(component->dev);
> + u32 mode_val;
> +
> + mode_val = ucontrol->value.enumerated.item[0];
yaaay
--
~Vinod
#x27;
>include/linux/device.h:678:13: sparse: call with no type!
>
> Use lower_32_bits and upper_32_bits to set the hw_desq address, instead of
> using constant.
Applied after adding reported-by, thanks.
You should always give credit to error reports
--
~Vinod
30
> _stop channel
> unlock pl330
> lock pl330
> check req_running != -1
> req_running = -1
> _start channel
>
Applied, thanks
--
~Vinod
On 18-07-18, 12:29, Peter Ujfalusi wrote:
> If there are no DMA devices registered yet, return with EPROBE_DEFER
> similarly to the case when requesting a slave channel.
Applied, thanks
--
~Vinod
static inline int dmaengine_desc_free(struct
> dma_async_tx_descriptor *desc)
> /* --- DMA device --- */
>
> int dma_async_device_register(struct dma_device *device);
> +int dmam_async_device_register(struct dma_device *device);
> void dma_async_device_unregister(struct dma_device *device);
> void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
> struct dma_chan *dma_get_slave_channel(struct dma_chan *chan);
> --
> 2.17.1
--
~Vinod
ist, list) {
> + if (dev == t->dev) {
> + component = t;
you can skip this line and use t in below code.
> + break;
> + }
> + }
> +
> + if (component && !strcmp(component->name, data))
strncmp?
--
~Vinod
On 12-07-18, 13:02, Srinivas Kandagatla wrote:
> Thanks Vinod for taking look at this!
>
> On 12/07/18 11:59, Vinod wrote:
> > On 11-07-18, 09:43, Srinivas Kandagatla wrote:
> > > This patch aims at add achieving dynamic behaviour of audio card when
> > > the d
Btw this was handled/buried in the driver atm and asking realized that
this is better suited in core, so Srini pushed it up. Current QC stack
expects DSP to go off and card disappear as a result. Once DSP is back
it would appear again (DSP is handled thru remoteproc, I think you
should have a look at it and see if it would suit your DSP needs too)
--
~Vinod
an 1 times in loop on Qcom platforms.
> 6 files changed, 89 insertions(+), 156 deletions(-)
Looks good to me with a nice diff stat.
FWIW:
Reviewed-by: Vinod Koul
--
~Vinod
On 29-06-18, 11:51, Kees Cook wrote:
> In the quest to remove all stack VLA usage from the kernel[1], this
> switches to using a pre-allocated scratch register space, set up with
> all other other allocations.
Applied after fixing subsystem tag, thanks
--
~Vinod
On 02-07-18, 02:32, Robin Gong wrote:
> Hi Vinod,
> Do you have any comment for this patchset? Lucas and Sascha
> acked it and tty patch already merged in.
I was actually waiting for ACK/action on patch 1 :)
I have reviewed the series, some nitpicks nothing major, so I have
app
er
> 'chn_real_count' not described in 'sdma_desc'
> drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'chn_count'
> not described in 'sdma_desc
>
> Signed-off-by: Robin Gong
> Reported-by: Vinod Koul
> Signed-off-by: Robin Go
+
> > 4 files changed, 168 insertions(+)
> > create mode 100644 sound/soc/qcom/common.c
>
> common.c seems to miss
Btw do you need a new Kconfig symbol for this?
Alternate option would be to just add common.o to wherever it is needed
--
~Vinod
d\n");
> + goto register_card_fail;
> + }
> + return ret;
> +
> +register_card_fail:
> + sdm845_deinit_supplies(dev);
> + kfree(card->dai_link);
> +parse_dt_fail:
> + component_unbind_all(dev, card);
> +bind_fail:
> + kfree(data);
> + kfree(card);
> + return ret;
> +}
I would make a case for this to be moved into common too :)
--
~Vinod
t; + configured 1, like in hi3660 platform
> +
> Example:
>
> Controller:
> @@ -21,6 +26,7 @@ Controller:
> #dma-cells = <1>;
> dma-channels = <16>;
> dma-requests = <27>;
> + hisilicon,dma-min-chan = <1>;
Am still expecting this to be a mask
--
~Vinod
On 06-07-18, 06:47, Gustavo A. R. Silva wrote:
> Hi Vinod,
>
> On 07/06/2018 12:56 AM, Vinod wrote:
> > On 02-07-18, 13:06, Gustavo A. R. Silva wrote:
> >> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> >> where we are expecting to fall
> > +parse_dt_fail:
> > > + component_unbind_all(dev, card);
> > > +bind_fail:
> > > + kfree(data);
> > > + kfree(card);
> > > + return ret;
> > > +}
> > I would make a case for this to be moved into common too :)
>
> There are few platform specific APIs and structs here like struct
> sdm845_snd_data,
> sdm845_add_be_ops() which needs to be initialized and assigned before
> soundcard
> registration. Moving this complete API to common will restrict it. Please
> suggest.
Yes indeed, they can be split and done outside while the common stuff
use a 'core' object and use that to initialize. If you need to do some
driver step, you can invoke a callback.
--
~Vinod
el...
> - jzdma = devm_kzalloc(dev, sizeof(*jzdma), GFP_KERNEL);
> + if (of_id)
> + version = (enum jz_version)of_id->data;
> + else
> + version = ID_JZ4780; /* Default when not probed from DT */
where else would it be probed from ?
--
~Vinod
base);
> +
> + res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> + if (!res) {
> + dev_err(dev, "failed to get I/O memory\n");
> + return -EINVAL;
> + }
okay and this breaks if you happen to get probed on older DT. I think DT
is treated as ABI so you need to continue support older method while
finding if DT has split resources
--
~Vinod
_free(struct virt_dma_desc
> *vdesc)
> kfree(desc);
> }
>
> -static uint32_t jz4780_dma_transfer_size(unsigned long val, uint32_t *shift)
> +static const unsigned int jz4780_dma_ord_max[] = {
> + [ID_JZ4770] = 6,
> + [ID_JZ4780] = 7,
> +};
So this gives the transfer length supported?
--
~Vinod
*)ID_JZ4740 },
adding .compatible should be the only thing required, if at all for this
addition :)
--
~Vinod
else if (jzdma->version == ID_JZ4725B)
> + jz4780_dma_ctrl_writel(jzdma, JZ_DMA_REG_DCKE, BIT(chn));
but you are writing to a different register here..
--
~Vinod
On 06-07-18, 15:02, Benjamin Gaignard wrote:
> The format specifier "%p" can leak kernel addresses.
> Use "%pK" instead.
The subsystem name is 'dmaengine' and not dma.
The git log on the subsystem should have told you this
Applied after fixing the tag, thanks.
--
~Vinod
> Existing clients of dma_get_slave_caps() have been checked and the only
> driver which rely on proper channel resuming is soc-generic-dmaengine-pcm
> driver, which has been updated to check the newly added capability.
> Existing 'cmd_pause' now only indicates that DMA engine support pausing
> given DMA channel.
Applied after fixing the subsystem name, thanks
--
~Vinod
> Peter
>
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
>
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
~Vinod
a->dma_device.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
> + sdma->dma_device.device_prep_dma_memcpy = sdma_prep_memcpy;
> sdma->dma_device.device_issue_pending = sdma_issue_pending;
> sdma->dma_device.dev->dma_parms = &sdma->dma_parms;
> - dma_set_max_seg_size(sdma->dma_device.dev, 65535);
> + sdma->dma_device.copy_align = DMAENGINE_ALIGN_4_BYTES;
> + dma_set_max_seg_size(sdma->dma_device.dev, SDMA_BD_MAX_CNT);
this line should not be part of this patch
--
~Vinod
bd->mode.command = 1;
> + break;
> + default:
> + return -EINVAL;
> + }
> +
> + return ret;
> +}
> +
--
~Vinod
.dma_request = 0;
> + default_data.dma_request2 = 0;
> + data = &default_data;
> +
> + sdma_config_ownership(sdmac, false, true, false);
> + sdma_get_pc(sdmac, IMX_DMATYPE_MEMORY);
> + sdma_load_context(sdmac);
> + }
this needs to be default for memcpy
--
~Vinod
> Okay, will remove check bus width.
it is not about bus_width but the fact that you are using slave
concepts. In memcpy we have _no_ slave, hence do not use anything
related to slave including dma_slave_config
--
~Vinod
On 11-07-18, 08:53, s.ha...@pengutronix.de wrote:
> On Wed, Jul 11, 2018 at 06:37:02AM +, Robin Gong wrote:
> >
> > > -Original Message-
> > > From: Vinod [mailto:vk...@kernel.org]
> > > Sent: 2018年7月10日 23:33
> > > To: Robin Go
ad of device_alloc_chan_resources as I did in v1, thus we have no
> 'chan->private'
> issue, just like drivers/dma/stm32-mdma.c. The only limitation is those
> prepare jobs
> (some register setting) will be done every time memcpy instead of only one
> time in slave_config
> or v1 case. Is that ok?
sounds fine to me
--
~Vinod
num jz_version)of_id->data;
> > > +else
> > > +version = ID_JZ4780; /* Default when not probed from DT
> > > */
> >
> > where else would it be probed from ?
>
> Platform, MFD driver, etc. But not likely to happen.
> I can remove these lines if you want.
Lets add when we land support for those.
--
~Vinod
you need to continue support older method while
> > finding if DT has split resources
>
> See my response to PrasannaKumar. All the Ingenic-based boards do compile
> the devicetree within the kernel, so I think it's still fine to add breaking
> changes. I'll wait on @Rob to give his point of view on this, though.
>
> (It's not something hard to change, but I'd like to know what's the policy
> in that case. I have other DT-breaking patches to submit)
The policy is that DT is an ABI and should not break :)
Who maintains Ingenic arch. MAINTAINERS doesn't tell me.
--
~Vinod
On 10-07-18, 17:45, Paul Cercueil wrote:
>
>
> Le lun. 9 juil. 2018 à 19:14, Vinod a écrit :
> > On 03-07-18, 14:32, Paul Cercueil wrote:
> > > The JZ4725B has one DMA core starring six DMA channels.
> > > As for the JZ4770, each DMA channel's clock can b
gt; >
> > Do you want to check if it is already prepared ..?
> Yep, I think most of the code needs similar state machine check, I will add
> this in next version.
so if you are tying to snd stream states then I don't think you need a
state machine here. ALSA already does that for you so you can skip it :D
--
~Vinod
On 19-06-18, 15:20, Marek Szyprowski wrote:
> The reported residue is already calculated in BURST unit granularity, so
> advertise this capability properly to other devices in the system.
Applied, thanks
--
~Vinod
;1>;
> dma-channels = <16>;
> dma-requests = <27>;
> + dma_min_chan = <1>;
> interrupts = <0 12 4>;
> clocks = <&pclk>;
> };
> --
> 2.17.1
--
~Vinod
NEL);
> + d->phy = devm_kcalloc(&op->dev, (d->dma_channels - d->dma_min_chan),
> + sizeof(struct k3_dma_phy), GFP_KERNEL);
> if (d->phy == NULL)
> return -ENOMEM;
>
> - for (i = 0; i < d->dma_channels; i++) {
> + for (i = d->dma_min_chan; i < d->dma_channels; i++) {
> struct k3_dma_phy *p = &d->phy[i];
>
> p->idx = i;
> --
> 2.17.1
--
~Vinod
->xdev->common.copy_align) {
> + /*
> + * If this is not the last descriptor, make sure
> + * the next one will be properly aligned
> + */
> + copy = rounddown(copy,
> + (1 << chan->xdev->common.copy_align));
> + }
same code pasted twice, can we have a routine for this... perhaps more
code can be made common too
--
~Vinod
led (only for AXIDMA and CDMA) */
> + if (xdev->dma_config->dmatype != XDMA_TYPE_VDMA) {
> + if (dma_ctrl_read(chan, XILINX_DMA_REG_DMASR) &
> + XILINX_DMA_DMASR_SG_MASK)
why not read this for VDMA too, will it return false?
> + chan->has_sg = true;
> + dev_dbg(chan->dev, "ch %d: SG %s\n", chan->id,
> + chan->has_sg ? "enabled" : "disabled");
this debug print can be removed
--
~Vinod
On 29-06-18, 09:46, Andrea Merello wrote:
> On Fri, Jun 29, 2018 at 9:25 AM, Vinod wrote:
> >> +
> >> + if ((copy + sg_used < period_len) &&
> >> +
h, thanks
--
~Vinod
t; >
> > ___
> > linux-arm-kernel mailing list
> > linux-arm-ker...@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> >
>
> --
> Pengutronix e.K. | Uwe Kleine-König|
> Industrial Linux Solutions | http://www.pengutronix.de/ |
--
~Vinod
On 24-05-18, 09:07, Robert Jarzmik wrote:
> Add some documentation for the pxad_param structure, and describe the
> contract behind the minimal required priority of a DMA channel.
Acked-by: Vinod Koul
--
~Vinod
On 24-05-18, 09:07, Robert Jarzmik wrote:
> As the pxa architecture and all its related drivers do not rely anymore
> on the filter function, thanks to the slave map conversion, make
> pxad_filter_fn() static, and remove it from the global namespace.
Acked-by: Vinod Koul
--
~Vinod
On 25-05-18, 19:03, Shreyas NC wrote:
> Adding Vinod to help review as well..
Thanks Shreyas,
> > Commit dc31e741db49 ("ASoC: topology: ABI - Add the types for BE
> > DAI") introduced sound topology files version 5. Initially, this
> > change made the topology cod
x27;s do the latter.
>
> Created and tested against next-20180531 tag from linux-next tree.
This is not useful for log.
I have stripped this and applied
--
~Vinod
On 14-06-18, 09:37, Sinan Kaya wrote:
> I'm no longer with QCOM. I am still interested in maintaining or reviewing
> PCI/DMA engine patches. Update email-id to an active one.
Applied, thanks
--
~Vinod
hannel: channel handle
> * @data:buffer of data to write
> * @len: number of bytes to write
> + * @wait:flag to indicate if write has ca wait
> *
> * This is a blocking write of len bytes into the channel's tx ring buffer
> and
> * signal the remote end. It will sleep until there is enough space available
> --
> 2.16.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
~Vinod
{
> + dev_err(dev, "Error parsing card name: %d\n", ret);
> + return ret;
> + }
> +
> + node = dev->of_node;
> +
> + /* DAPM routes */
> + if (of_property_read_bool(node, "qcom,audio-routing")) {
> + ret = snd_soc_of_parse_audio_routing(card,
> + "qcom,audio-routing");
> + if (ret)
> + return ret;
> + }
so if we dont find audio-routing, then? we seems to continue..
--
~Vinod
Hi Rohit,
On 19-06-18, 19:20, Rohit Kumar wrote:
> On 6/19/2018 10:35 AM, Vinod wrote:
> > On 18-06-18, 16:46, Rohit kumar wrote:
> >
> > > +struct sdm845_snd_data {
> > > + struct snd_soc_card *card;
> > > + struct regulator *vdd_supply
Hi Rohit,
On 20-06-18, 13:07, Rohit Kumar wrote:
> > On 19-06-18, 19:20, Rohit Kumar wrote:
> > > On 6/19/2018 10:35 AM, Vinod wrote:
> > > > On 18-06-18, 16:46, Rohit kumar wrote:
> > > >
> > > > > +struct sdm845_snd_data {
> > &
1 - 100 of 1812 matches
Mail list logo