]> Git Repo - linux.git/commit
mmc: core: Use mrq.sbc in close-ended ffu
authorAvri Altman <[email protected]>
Wed, 29 Nov 2023 09:25:35 +0000 (11:25 +0200)
committerUlf Hansson <[email protected]>
Thu, 7 Dec 2023 13:08:44 +0000 (14:08 +0100)
commit4d0c8d0aef6355660b6775d57ccd5d4ea2e15802
treee164b5afdf08bb011ddee183dd14a5ce51747ba6
parent5cb2f9286a31f33dc732c57540838ad9339393ab
mmc: core: Use mrq.sbc in close-ended ffu

Field Firmware Update (ffu) may use close-ended or open ended sequence.
Each such sequence is comprised of a write commands enclosed between 2
switch commands - to and from ffu mode. So for the close-ended case, it
will be: cmd6->cmd23-cmd25-cmd6.

Some host controllers however, get confused when multi-block rw is sent
without sbc, and may generate auto-cmd12 which breaks the ffu sequence.
I encountered  this issue while testing fwupd (github.com/fwupd/fwupd)
on HP Chromebook x2, a qualcomm based QC-7c, code name - strongbad.

Instead of a quirk, or hooking the request function of the msm ops,
it would be better to fix the ioctl handling and make it use mrq.sbc
instead of issuing SET_BLOCK_COUNT separately.

Signed-off-by: Avri Altman <[email protected]>
Acked-by: Adrian Hunter <[email protected]>
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Ulf Hansson <[email protected]>
drivers/mmc/core/block.c
This page took 0.062437 seconds and 4 git commands to generate.