Re: [PATCH 3/4] dmaengine: dw: Simplify prepare CTL_LO methods
From: Serge Semin
Date: Fri Apr 19 2024 - 05:20:01 EST
On Fri, Apr 19, 2024 at 12:00:40AM +0300, Andy Shevchenko wrote:
> 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.
Agreed then. I'll change the order to the way you ask.
-Serge(y)
>
> > > > > > + } 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
>
>