[PATCH v2 10/22] mtd: spi-nor: Rework write_sr()

Tudor.Ambarus at microchip.com Tudor.Ambarus at microchip.com
Fri Oct 4 20:03:40 AEST 2019


Hi, John,

On 10/04/2019 12:39 PM, John Garry wrote:
> External E-Mail
> 
> 
> On 24/09/2019 08:46, Tudor.Ambarus at microchip.com wrote:
>> +}
>> +
>> +/**
>> + * spi_nor_write_sr() - Write the Status Register.
>> + * @nor:    pointer to 'struct spi_nor'.
>> + * @sr:        buffer to write to the Status Register.
>> + * @len:    number of bytes to write to the Status Register.
>> + *
>> + * Return: 0 on success, -errno otherwise.
>>   */
>> -static int write_sr(struct spi_nor *nor, u8 val)
>> +static int spi_nor_write_sr(struct spi_nor *nor, const u8 *sr, size_t len)
>>  {
>> -    nor->bouncebuf[0] = val;
>> +    int ret;
>> +
>> +    ret = spi_nor_write_enable(nor);
>> +    if (ret)
>> +        return ret;
>> +
> 
> Hi Tudor,
> 
>>      if (nor->spimem) {
>>          struct spi_mem_op op =
>>              SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1),
>>                     SPI_MEM_OP_NO_ADDR,
>>                     SPI_MEM_OP_NO_DUMMY,
>> -                   SPI_MEM_OP_DATA_IN(1, nor->bouncebuf, 1));
> 
> This be SPI_MEM_OP_DATA_OUT() in the current mainline code also, right?

In v5.4-rc1 this is defined as SPI_MEM_OP_DATA_IN, so the Mainline code should
fail. This looks like a bug. I didn't noticed it when doing the patch.

> 
> I'm testing my under development driver on top of v5.4-rc1, and flash_lock -u is broken.

It's not clear to me, does flash_lock fail with my patches on top of v5.4-rc1?
Or it fails when testing v5.4-rc1?

Can you test v5.4-rc1 and see if flash_lock works on you flash or not?

Please specify which flash do you use, and which controller.

Thanks for testing this!
ta


More information about the Linux-aspeed mailing list