Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0cc2601 authored by Sahitya Tummala's avatar Sahitya Tummala Committed by Gerrit - the friendly Code Review server
Browse files

mmc: cmdq_hci: Fix ADMA error issue



The controller triggers an ADMA error when ADMA engine is configured
and used in 32-bit mode. This is because the current code always
writes 64-bit address to 32-bit address field of a transfer
descriptor (bits [63:32]). This corrupts the first 32-bit value
of the next transfer descriptor.

Below scenario describes how ADMA error can happen -

1. Req#1 - uses slot 1, prepares it's descriptors, queues to the controller
2. Req#2 - uses slot 0, prepares max descriptors (cq_host->mmc->max_segs).
3. Req#1 gets ADMA error from the controller.

At step 2, when it prepares the last transfer descriptor (max_segs), it
overwrites the 32-bit address field with a 64-bit address and thus corrupts
the first entry of slot 1 transfer descriptor.

Change-Id: I3eb2dbb40c76ec77626f647d6ec24df4a0858fcb
Signed-off-by: default avatarSahitya Tummala <stummala@codeaurora.org>
parent 1c6b02e6
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment