mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
7e842d70fe
HyperFlash devices fail to probe:
rpc-if-hyperflash rpc-if-hyperflash: probing of hyperbus device failed
In HyperFlash or Octal-SPI Flash mode, the Transfer Data Enable bits
(SPIDE) in the Manual Mode Enable Setting Register (SMENR) are derived
from half of the transfer size, cfr. the rpcif_bits_set() helper
function. However, rpcif_reg_{read,write}() does not take the bus size
into account, and does not double all Manual Mode Data Register access
sizes when communicating with a HyperFlash or Octal-SPI Flash device.
Fix this, and avoid the back-and-forth conversion between transfer size
and Transfer Data Enable bits, by explicitly storing the transfer size
in struct rpcif, and using that value to determine access size in
rpcif_reg_{read,write}().
Enforce that the "high" Manual Mode Read/Write Data Registers
(SM[RW]DR1) are only used for 8-byte data accesses.
While at it, forbid writing to the Manual Mode Read Data Registers,
as they are read-only.
Fixes:
|
||
---|---|---|
.. | ||
samsung | ||
tegra | ||
.gitignore | ||
atmel-ebi.c | ||
atmel-sdramc.c | ||
brcmstb_dpfe.c | ||
bt1-l2-ctl.c | ||
da8xx-ddrctl.c | ||
dfl-emif.c | ||
emif-asm-offsets.c | ||
emif.c | ||
emif.h | ||
fsl_ifc.c | ||
fsl-corenet-cf.c | ||
jedec_ddr_data.c | ||
jedec_ddr.h | ||
jz4780-nemc.c | ||
Kconfig | ||
Makefile | ||
mtk-smi.c | ||
mvebu-devbus.c | ||
of_memory.c | ||
of_memory.h | ||
omap-gpmc.c | ||
pl172.c | ||
pl353-smc.c | ||
renesas-rpc-if.c | ||
stm32-fmc2-ebi.c | ||
ti-aemif.c | ||
ti-emif-pm.c | ||
ti-emif-sram-pm.S |