linux-stable/include/linux/firmware
Marek Vasut a4b2e6063c firmware: xilinx: Clear IOCTL_SET_SD_TAPDELAY using PM_MMIO_WRITE
In case the tap delay required by Arasan SDHCI is set to 0, the current
embeddedsw firmware unconditionally writes IOU_SLCR SD_ITAPDLY to 0x100
(SD0_ITAPDLYENA=1, SD0_ITAPDLYSEL=0). Previous behavior was to keep the
IOU_SLCR SD_ITAPDLY set to 0x0. There is some sort of difference in the
behavior between SD0_ITAPDLYENA=1/0 with the same SD0_ITAPDLYSEL=0, even
though the behavior should be identical -- zero delay added to rxclk_in
line. The former breaks HS200 training in low temperature conditions.

Write IOU_SLCR SD_ITAPDLY register to 0 using PM_MMIO_WRITE which seem
to allow unrestricted WRITE access (and PM_MMIO_READ which allows read
access) to the entire address space. This way, it is possible to work
around the defect in IOCTL_SET_SD_TAPDELAY design which does not permit
clearing SDx_ITAPDLYENA bit.

Note that the embeddedsw firmware does not permit clearing the SD_ITAPDLY
SD0_ITAPDLYENA bit, this bit can only ever be set by the firmware and it
is often impossible to update the possibly broken firmware.

Signed-off-by: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20221215152023.8387-1-marex@denx.de
Signed-off-by: Michal Simek <michal.simek@amd.com>
2023-01-05 10:18:07 +01:00
..
broadcom firmware: broadcom: add OP-TEE based BNXT f/w manager 2019-10-31 11:00:45 -07:00
cirrus firmware: cs_dsp: Add memory chunk helpers 2022-07-22 13:40:00 +01:00
imx firmware: imx: add get resource owner api 2022-02-12 14:07:36 +08:00
intel firmware: stratix10-svc: fix kernel-doc warning 2022-07-15 17:34:20 +02:00
mediatek firmware: mediatek: Add adsp ipc protocol interface 2022-05-16 12:58:11 +01:00
meson firmware: meson_sm: Add secure power domain support 2020-02-14 11:37:34 -08:00
trusted_foundations.h firmware: Hold a reference for of_find_compatible_node() 2022-07-01 10:36:04 +02:00
xlnx-event-manager.h driver: soc: xilinx: Update function prototype for xlnx_unregister_event 2022-05-19 18:57:28 +02:00
xlnx-zynqmp.h firmware: xilinx: Clear IOCTL_SET_SD_TAPDELAY using PM_MMIO_WRITE 2023-01-05 10:18:07 +01:00