[U-Boot] [PATCH] dm: spi: prevent setting a speed of 0 Hz

Simon Goldschmidt sgoldschmidt at de.pepperl-fuchs.com
Thu Jan 18 08:27:09 UTC 2018


On 18.01.2018 09:23, Michael Nazzareno Trimarchi wrote:
> Hi
>
> On Thu, Jan 18, 2018 at 9:15 AM, Simon Goldschmidt
> <sgoldschmidt at de.pepperl-fuchs.com> wrote:
>> When the device tree is missing a correct spi slave description below
>> the bus, the 'set_speed' callback can be called with 'speed' == 0 Hz.
>> At least with cadence qspi, this leads to a division by zero.
>>
>> Prevent this by initializing speed to 100 kHz in this case, as is
>> done in 'dm_spi_claim_bus'.
>>
>> Signed-off-by: Simon Goldschmidt <sgoldschmidt at de.pepperl-fuchs.com>
>> ---
>>
>>   drivers/spi/spi-uclass.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c
>> index e06a603ab1..41ecef77db 100644
>> --- a/drivers/spi/spi-uclass.c
>> +++ b/drivers/spi/spi-uclass.c
>> @@ -325,6 +325,8 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode,
>>          if (!speed) {
>>                  speed = plat->max_hz;
>>                  mode = plat->mode;
>> +               if (!speed)
>> +                       speed = 100000;
> You should add a warming message

Hmm, I just copied what 'dm_spi_claim_bus' does some hundred lines above 
in the same file. Why should one code path warn when the other doesn't?

Simon

>
> Michael
>
>>          }
>>          ret = spi_set_speed_mode(bus, speed, mode);
>>          if (ret)
>> --
>> 2.11.0
<snip>



More information about the U-Boot mailing list