devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hyun Kwon <hyunk-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
To: Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Michal Simek
	<michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>,
	Tejas Upadhyay <TEJASU-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
Subject: RE: [PATCH 2/2] dma: xilinx: dpdma: Add the Xilinx DisplayPort DMA engine driver
Date: Wed, 24 Jan 2018 17:45:00 +0000	[thread overview]
Message-ID: <CY4PR02MB248850638A4D19CE51F1E224D6E20@CY4PR02MB2488.namprd02.prod.outlook.com> (raw)
In-Reply-To: <20180124144059.GI18649@localhost>




> -----Original Message-----
> From: Vinod Koul [mailto:vinod.koul@intel.com]
> Sent: Wednesday, January 24, 2018 6:41 AM
> To: Hyun Kwon <hyunk@xilinx.com>
> Cc: dmaengine@vger.kernel.org; devicetree@vger.kernel.org; Michal Simek
> <michal.simek@xilinx.com>; Tejas Upadhyay <TEJASU@xilinx.com>
> Subject: Re: [PATCH 2/2] dma: xilinx: dpdma: Add the Xilinx DisplayPort
> DMA engine driver
> 
> On Tue, Jan 23, 2018 at 05:03:19PM +0000, Hyun Kwon wrote:
> 
> > > why should this be a compile option
> > >
> >
> > This debugfs code is for testing / regression, and we don't want to enable
> it
> > for regular users.
> 
> Right and that is why you have CONFIG_DEBUGFS, why not use that?
> 
> > > do you need all these headers?
> > >
> >
> > I directly included all headers that are used in this driver. Some of them
> can
> > be removed from indirect inclusions, and I'm fine with that. Please let me
> know
> > if that's your preference.
> 
> Yes pls remove the ones that are needed
> 
> > > > +#define XILINX_DPDMA_INTR_DESC_DONE_SHIFT		0
> > >
> > > you can define a common shift using ffs
> > >
> >
> > I guess you mean to replace, (value & MASK) << SHIFT, with
> > (value & MASK) << ffs(MASK). I'll change to that way. Let me know
> otherwise.
> 
> yes and you may use the ones in bitfield.h
> 
> > > what does it mean (lower 32 bit of Nth 4KB page)
> > >
> >
> > Each descriptor can point up to 5 - 48bit address payloads. src_addr*
> fields
> > contain lower 32bit of 48bit address. Remaining upper 16bit is
> programmed in
> > addr_ext* fields.
> 
> pls document this
> 
> > > > +static int xilinx_dpdma_config(struct dma_chan *dchan,
> > > > +			       struct dma_slave_config *config)
> > > > +{
> > > > +	if (config->direction != DMA_MEM_TO_DEV)
> > > > +		return -EINVAL;
> > >
> > > ?? Why are the config values not used, how else do you configure the
> > > channel?
> > >
> >
> > There's not much configuration to be done. Channels are pretty much
> identical
> > with fixed configurations.
> 
> hmmm, you do support DMA_SLAVE right?
> 

Yes, and it's single direction, DMA_MEM_TO_DEV.

> > > why have these wrappers which do not do anything?
> > >
> >
> > It's just my personal preference to split into different code partitions, and
> > each section is partitioned / grouped with some comment line. :-)
> > Ex, a partition for struct dma_chan, and another one for
> > struct xilinx_dpdma_chan. It gives me sort of abstracted view. But it may
> be
> > just me, and it comes with extra indirections. I'll remove unnecessary
> wrappers.
> 
> wrapper without any logic dont help
> 
> > > > +	for (i = 0; i < XILINX_DPDMA_NUM_CHAN; i++)
> > > > +		if (xdev->chan[i])
> > > > +			xilinx_dpdma_chan_remove(xdev->chan[i]);
> > >
> > > At this point your irq is still enabled and can fire, and can schedule
> > > tasklet.. Are you sure you are okay with that?
> > >
> >
> > Ok. You mean that an interrupt can occur right before
> > xilinx_dpdma_disable_intr(), and the interrupt may be handled  in the
> middle or
> > after removing this driver. I'll switch to request_irq() from
> > devm_request_irq(), and remove the irq when removing the driver.
> 
> yes and ensure tasklets are quiesced
> 
> > > > +MODULE_AUTHOR("Xilinx, Inc.");
> > > > +MODULE_DESCRIPTION("Xilinx DPDMA driver");
> > > > +MODULE_LICENSE("GPL v2");
> > >
> > > No MODULE_ALIAS()?
> >
> > Is it required? Could you please elaborate, to help my understanding?
> 
> did you try builing as modules and testing this?

I'm testing it as a loadable kernel module.

I'll address rest of your comments.

Thanks,
-hyun


> 
> --
> ~Vinod

  reply	other threads:[~2018-01-24 17:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-06  2:14 [PATCH 1/2] dt: bindings: dma: xilinx: dpdma: DT bindings for Xilinx DPDMA Hyun Kwon
     [not found] ` <1515204848-3493-1-git-send-email-hyun.kwon-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2018-01-06  2:14   ` [PATCH 2/2] dma: xilinx: dpdma: Add the Xilinx DisplayPort DMA engine driver Hyun Kwon
     [not found]     ` <1515204848-3493-2-git-send-email-hyun.kwon-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2018-01-12 14:13       ` Vinod Koul
2018-01-23 17:03         ` Hyun Kwon
     [not found]           ` <MWHPR02MB249345183B6CCD86A56A4E1ED6E30-RUky8eZECECTw9ZLCNw7fKnrV9Ap65cLvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-24 14:40             ` Vinod Koul
2018-01-24 17:45               ` Hyun Kwon [this message]
     [not found]                 ` <CY4PR02MB248850638A4D19CE51F1E224D6E20-CJeEToEUXu1uV7Svx/7JSanrV9Ap65cLvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-29  4:19                   ` Vinod Koul
2018-01-12 13:28   ` [PATCH 1/2] dt: bindings: dma: xilinx: dpdma: DT bindings for Xilinx DPDMA Vinod Koul
2018-01-19 19:37   ` Rob Herring
2018-01-23 17:03     ` Hyun Kwon

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=CY4PR02MB248850638A4D19CE51F1E224D6E20@CY4PR02MB2488.namprd02.prod.outlook.com \
    --to=hyunk-gjffaj9ahvfqt0dzr+alfa@public.gmane.org \
    --cc=TEJASU-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
    --cc=vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /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).