[PATCH] mmc: dw_mmc: fix falling from idmac to PIO mode when dw_mci_reset occurs

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

 



On 15 March 2018 at 18:24, Evgeniy Didin <Evgeniy.Didin at synopsys.com> wrote:
> On Thu, 2018-03-15 at 14:39 +0100, Ulf Hansson wrote:
>> On 15 March 2018 at 14:18, Evgeniy Didin <Evgeniy.Didin at synopsys.com> wrote:
>> > Hello Ulf,
>> >
>> > On Thu, 2018-03-15 at 10:57 +0100, Ulf Hansson wrote:
>> > > On 14 March 2018 at 20:30, Evgeniy Didin <Evgeniy.Didin at synopsys.com> wrote:
>> > > > It was found that in IDMAC mode after soft-reset driver switches
>> > > > to PIO mode.
>> > > >
>> > > > That's what happens in case of DTO timeout overflow calculation failure:
>> > > > 1. soft-reset is called
>> > > > 2. driver restarts dma
>> > > > 3. descriptors states are checked, one of descriptor is owned by the IDMAC.
>> > > > 4. driver can't use DMA and then switches to PIO mode.
>> > > >
>> > > > Failure was already fixed in:
>> > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__www.spinics.net_lists_linux-2Dmmc_msg48125.html&d=DwIBaQ&c=DPL6_X_6JkXFx7AXWqB0tg&r=vQk-RIbjwN0zvlwiMSpq3LYUTNf7Gqc4ujh
>> > > > osYI
>> > > > TtAw&m=6rPWpKUYQD3kY-2OEikJUWyEJvwKJljWHFC8rd2TCak&s=JjX0Dx8-eSyW2cATMsnG1eAzrKgoDkS1bcS5XYrVtlE&e=.
>> > >
>> > > Evgeniy,
>> > >
>> > > It seems like I should squash this fix into the above commit? Makes sense?
>> >
>> > IMHO it is not a good idea, because this fix is orthogonal to the above commit.
>> > Debugging drto overflow issue we found this strange behavior.
>>
>> Okay! Thanks for clarifying.
>>
>> > This might be general issue of soft-reset. So I think this should be separate patch.
>> > Also if these patches are independent, it will be easier to backport them.
>>
>> Should I add a stable tag then?
>
> Sure. The issue can happen since v3.17, because starting with this version function dw_mci_reset was implemented.
> Commit 3a33a94ce270 ("mmc: dw_mmc: change to use recommended reset procedure").

Alright. I tried applying it, and the first kernel version that seems
to work is 4.4. Thus I am adding that tag, if you or other people want
it for an earlier version, please to send a backported version to
@stable.

Kind regards
Uffe



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux