<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font size="2">Hi Jagan</font></p>
<font size="2">Could you have a look at this series ?<br>
It would be great if this series can be merged in the v2022.07</font>
<p><font size="2">Thanks</font></p>
<p><font size="2">Patrice</font><br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 3/30/22 09:33, Patrice Chotard
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:20220330073315.7703-1-patrice.chotard@foss.st.com">
<pre class="moz-quote-pre" wrap="">
Since commit e2e95e5e2542 ("spi: Update speed/mode on change")
when calling "sf probe" or "env save" on SPI flash,
spi_set_speed_mode() is called twice.
spi_get_bus_and_cs()
|--> spi_claim_bus()
| |--> spi_set_speed_mode(speed and mode from DT)
...
|--> spi_set_speed_mode(default speed and mode value)
The first spi_set_speed_mode() call is done with speed and mode
values from DT, whereas the second call is done with speed
and mode set to default value (speed is set to CONFIG_SF_DEFAULT_SPEED)
This is an issue because SPI flash performance are impacted by
using default speed which can be lower than the one defined in DT.
One solution is to set CONFIG_SF_DEFAULT_SPEED to the speed defined
in DT, but we loose flexibility offered by DT.
Another issue can be encountered with 2 SPI flashes using 2 different
speeds. In this specific case usage of CONFIG_SF_DEFAULT_SPEED is not
flexible compared to get the 2 different speeds from DT.
Changes in v4:
- Split previous series in 3 patches
- Update commit message with additionnal information
Changes in v3:
- Update commit header to reflect what the patch really do.
- Rename legacy spi_get_bus_and_cs() to _spi_get_bus_and_cs().
- New spi_get_bus_and_cs() rely on DT for spi speed and mode values.
- spi_flash_probe_bus_cs() rely also on DT for spi and mode values.
Changes in v2:
- add spi_flash_probe_bus_cs_default() which calls spi_get_bus_and_cs()
with "use_dt" param set to true, whereas spi_flash_probe_bus_cs() calls
spi_get_bus_and_cs() with "use_dt" param set to true.
Patrice Chotard (3):
spi: spi-uclass: Add new spi_get_bus_and_cs() implementation
spi: spi_flash_probe_bus_cs() rely on DT for spi speed and mode
test: dm: spi: Replace _spi_get_bus_and_cs() by spi_get_bus_and_cs()
in some case
board/CZ.NIC/turris_mox/turris_mox.c | 6 +--
cmd/sf.c | 15 +++++--
cmd/spi.c | 4 +-
drivers/mtd/spi/sf-uclass.c | 33 +++++++-------
drivers/net/fm/fm.c | 4 +-
drivers/net/pfe_eth/pfe_firmware.c | 19 ++------
drivers/net/sni_netsec.c | 6 +--
drivers/spi/spi-uclass.c | 66 +++++++++++++++++++++++++---
drivers/usb/gadget/max3420_udc.c | 4 +-
env/sf.c | 1 -
include/spi.h | 19 +++++++-
include/spi_flash.h | 1 -
test/dm/spi.c | 33 +++++++-------
13 files changed, 137 insertions(+), 74 deletions(-)
</pre>
</blockquote>
</body>
</html>