Re: [PATCH 3/4] dmaengine: dw: Simplify prepare CTL_LO methods

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 18, 2024 at 10:00:02PM +0300, Serge Semin wrote:
> On Thu, Apr 18, 2024 at 02:47:18PM +0300, Andy Shevchenko wrote:
> > On Wed, Apr 17, 2024 at 11:11:46PM +0300, Serge Semin wrote:
> > > On Tue, Apr 16, 2024 at 10:04:42PM +0300, Andy Shevchenko wrote:
> > > > On Tue, Apr 16, 2024 at 07:28:57PM +0300, Serge Semin wrote:

...

> > > > > +	if (dwc->direction == DMA_MEM_TO_DEV) {
> > > > > +		sms = dwc->dws.m_master;
> > > > > +		smsize = 0;
> > > > > +		dms = dwc->dws.p_master;
> > > > > +		dmsize = sconfig->dst_maxburst;
> > > 
> > > > I would group it differently, i.e.
> > > > 
> > > > 		sms = dwc->dws.m_master;
> > > > 		dms = dwc->dws.p_master;
> > > > 		smsize = 0;
> > > > 		dmsize = sconfig->dst_maxburst;
> > > 
> > > Could you please clarify, why? From my point of view it was better to
> > > group the source master ID and the source master burst size inits
> > > together.
> 
> > Sure. The point here is that when you look at the DMA channel configuration
> > usually you operate with the semantically tied fields for source and
> > destination. At least this is my experience, I always check both sides
> > of the transfer for the same field, e.g., master setting, hence I want to
> > have them coupled.
> 
> Ok. I see. Thanks for clarification. I normally do that in another
> order: group the functionally related fields together - all
> source-related configs first, then all destination-related configs.
> Honestly I don't have strong opinion about this part, it's just my
> personal preference. Am I right to think that from your experience in
> kernel it's normally done in the order you described?

In this driver I believe I have followed that one, yes.

> > > > > +	} else if (dwc->direction == DMA_DEV_TO_MEM) {
> > > > > +		sms = dwc->dws.p_master;
> > > > > +		smsize = sconfig->src_maxburst;
> > > > > +		dms = dwc->dws.m_master;
> > > > > +		dmsize = 0;
> > > > > +	} else /* DMA_MEM_TO_MEM */ {
> > > > > +		sms = dwc->dws.m_master;
> > > > > +		smsize = 0;
> > > > > +		dms = dwc->dws.m_master;
> > > > > +		dmsize = 0;
> > > > > +	}
> > > > 
> > > > Ditto for two above cases.

-- 
With Best Regards,
Andy Shevchenko






[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux