Re: [PATCH 4/4] mmc: sdhci: Add DMA memory boundary workaround

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

 



On Tue, 3 Dec 2019 09:05:23 +0000 Jisheng Zhang wrote:


> 
> + Christoph
> 
> On Tue, 3 Dec 2019 11:33:15 +0800 Jun Nie wrote:
> 
> >
> >
> > Jisheng Zhang <Jisheng.Zhang@xxxxxxxxxxxxx> 于2019年12月3日周二 上午10:47写道:  
> > >
> > > On Mon,  2 Dec 2019 22:41:04 +0800 Jun Nie wrote:
> > >
> > >  
> > > >
> > > >
> > > > DMA memory cannot cross specific boundary for some SDHCI controller,
> > > > such as DesignWare SDHCI controller. Add DMA memory boundary dt
> > > > property and workaround the limitation.  
> > >
> > > IMHO, the workaround could be implemented in each SDHCI host driver.
> > >
> > > eg. drivers/mmc/host/sdhci-of-dwcmshc.c
> > >  
> > Thanks for the suggestion! Christoph's suggestion can prevent the the issue
> > from the block layer, thus the code can be shared across all  
> 
> To be honest, I did consider similar solution from block layer, I.E set
> the seg_boundary_mask, when submitting the workaround last year, but per
> my understanding, SDHCI limitation is the physical DMA addr can't span one
> specific boundary, so setting seg_boundary_mask w/ blk_queue_segment_boundary
> can't work. I'm not sure I understand blk_queue_segment_boundary() properly.
> May Christoph help to clarify?

what's more, not all scatterlist in mmc are from block layer, for example, 
__mmc_blk_ioctl_cmd(), mmc_test.c etc..

How do we ensure the boundary is fine in these cases?

> 
> From another side, drivers/ata/libata-sff.c also workaround the 64K phy DMA
> boundary limitation itself rather than from block layer.

> Thanks
> 
> > controllers. I prefer
> > his suggestions.
> >
> > Jun  
> 





[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux