diff mbox series

[1/1] mtd: cfi_flash: use __raw_writeq(), __raw_readq()

Message ID 20200606211353.17905-1-xypron.glpk@gmx.de
State New
Headers show
Series [1/1] mtd: cfi_flash: use __raw_writeq(), __raw_readq() | expand

Commit Message

Heinrich Schuchardt June 6, 2020, 9:13 p.m. UTC
Functions __raw_writeq(), __raw_readq() are available for all
architectures. So let's use them.

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 drivers/mtd/cfi_flash.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

--
2.26.2

Comments

Heinrich Schuchardt June 7, 2020, 6:42 p.m. UTC | #1
On 6/6/20 11:13 PM, Heinrich Schuchardt wrote:
> Functions __raw_writeq(), __raw_readq() are available for all
> architectures. So let's use them.

The major architectures have these but not m68k, microblaze, nd32,
nios2, powerpc, sh, xtenza.

>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>  drivers/mtd/cfi_flash.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
> index b7289ba539..e31e07ca80 100644
> --- a/drivers/mtd/cfi_flash.c
> +++ b/drivers/mtd/cfi_flash.c
> @@ -155,8 +155,7 @@ __maybe_weak void flash_write32(u32 value, void *addr)
>
>  __maybe_weak void flash_write64(u64 value, void *addr)
>  {
> -	/* No architectures currently implement __raw_writeq() */
> -	*(volatile u64 *)addr = value;
> +	__raw_writeq(value, addr);
>  }
>
>  __maybe_weak u8 flash_read8(void *addr)
> @@ -176,8 +175,7 @@ __maybe_weak u32 flash_read32(void *addr)
>
>  __maybe_weak u64 flash_read64(void *addr)
>  {
> -	/* No architectures currently implement __raw_readq() */
> -	return *(volatile u64 *)addr;
> +	return __raw_readq(addr);
>  }
>
>  /*-----------------------------------------------------------------------
> --
> 2.26.2
>
Stefan Roese June 8, 2020, 7:07 a.m. UTC | #2
On 07.06.20 20:42, Heinrich Schuchardt wrote:
> On 6/6/20 11:13 PM, Heinrich Schuchardt wrote:
>> Functions __raw_writeq(), __raw_readq() are available for all
>> architectures. So let's use them.
> 
> The major architectures have these but not m68k, microblaze, nd32,
> nios2, powerpc, sh, xtenza.

Just checking to be clear: This patch breaks compiling on these
platforms and you are withdrawing it (for now)?

Thanks,
Stefan

>>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>>   drivers/mtd/cfi_flash.c | 6 ++----
>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
>> index b7289ba539..e31e07ca80 100644
>> --- a/drivers/mtd/cfi_flash.c
>> +++ b/drivers/mtd/cfi_flash.c
>> @@ -155,8 +155,7 @@ __maybe_weak void flash_write32(u32 value, void *addr)
>>
>>   __maybe_weak void flash_write64(u64 value, void *addr)
>>   {
>> -	/* No architectures currently implement __raw_writeq() */
>> -	*(volatile u64 *)addr = value;
>> +	__raw_writeq(value, addr);
>>   }
>>
>>   __maybe_weak u8 flash_read8(void *addr)
>> @@ -176,8 +175,7 @@ __maybe_weak u32 flash_read32(void *addr)
>>
>>   __maybe_weak u64 flash_read64(void *addr)
>>   {
>> -	/* No architectures currently implement __raw_readq() */
>> -	return *(volatile u64 *)addr;
>> +	return __raw_readq(addr);
>>   }
>>
>>   /*-----------------------------------------------------------------------
>> --
>> 2.26.2
>>
> 


Viele Gr??e,
Stefan
Heinrich Schuchardt June 8, 2020, 7:12 a.m. UTC | #3
On 6/8/20 9:07 AM, Stefan Roese wrote:
> On 07.06.20 20:42, Heinrich Schuchardt wrote:
>> On 6/6/20 11:13 PM, Heinrich Schuchardt wrote:
>>> Functions __raw_writeq(), __raw_readq() are available for all
>>> architectures. So let's use them.
>>
>> The major architectures have these but not m68k, microblaze, nd32,
>> nios2, powerpc, sh, xtenza.
>
> Just checking to be clear: This patch breaks compiling on these
> platforms and you are withdrawing it (for now)?

Yes, it breaks compiling on the specified platforms.

This can be fixed by adding the missing functions to the platforms:
https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/commits/sunxi

But is it worthwhile to add __raw_writeq(), __raw_readq() to all of these?

Best regards

Heinrich

>
> Thanks,
> Stefan
>
>>>
>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>>> ---
>>> ? drivers/mtd/cfi_flash.c | 6 ++----
>>> ? 1 file changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
>>> index b7289ba539..e31e07ca80 100644
>>> --- a/drivers/mtd/cfi_flash.c
>>> +++ b/drivers/mtd/cfi_flash.c
>>> @@ -155,8 +155,7 @@ __maybe_weak void flash_write32(u32 value, void
>>> *addr)
>>>
>>> ? __maybe_weak void flash_write64(u64 value, void *addr)
>>> ? {
>>> -??? /* No architectures currently implement __raw_writeq() */
>>> -??? *(volatile u64 *)addr = value;
>>> +??? __raw_writeq(value, addr);
>>> ? }
>>>
>>> ? __maybe_weak u8 flash_read8(void *addr)
>>> @@ -176,8 +175,7 @@ __maybe_weak u32 flash_read32(void *addr)
>>>
>>> ? __maybe_weak u64 flash_read64(void *addr)
>>> ? {
>>> -??? /* No architectures currently implement __raw_readq() */
>>> -??? return *(volatile u64 *)addr;
>>> +??? return __raw_readq(addr);
>>> ? }
>>>
>>> ?
>>> /*-----------------------------------------------------------------------
>>>
>>> --
>>> 2.26.2
>>>
>>
>
>
> Viele Gr??e,
> Stefan
>
Stefan Roese June 8, 2020, 7:27 a.m. UTC | #4
On 08.06.20 09:12, Heinrich Schuchardt wrote:
> On 6/8/20 9:07 AM, Stefan Roese wrote:
>> On 07.06.20 20:42, Heinrich Schuchardt wrote:
>>> On 6/6/20 11:13 PM, Heinrich Schuchardt wrote:
>>>> Functions __raw_writeq(), __raw_readq() are available for all
>>>> architectures. So let's use them.
>>>
>>> The major architectures have these but not m68k, microblaze, nd32,
>>> nios2, powerpc, sh, xtenza.
>>
>> Just checking to be clear: This patch breaks compiling on these
>> platforms and you are withdrawing it (for now)?
> 
> Yes, it breaks compiling on the specified platforms.
> 
> This can be fixed by adding the missing functions to the platforms:
> https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/commits/sunxi
> 
> But is it worthwhile to add __raw_writeq(), __raw_readq() to all of these?

Sure, why not?

Thanks,
Stefan

> Best regards
> 
> Heinrich
> 
>>
>> Thanks,
>> Stefan
>>
>>>>
>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>>>> ---
>>>>  ? drivers/mtd/cfi_flash.c | 6 ++----
>>>>  ? 1 file changed, 2 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
>>>> index b7289ba539..e31e07ca80 100644
>>>> --- a/drivers/mtd/cfi_flash.c
>>>> +++ b/drivers/mtd/cfi_flash.c
>>>> @@ -155,8 +155,7 @@ __maybe_weak void flash_write32(u32 value, void
>>>> *addr)
>>>>
>>>>  ? __maybe_weak void flash_write64(u64 value, void *addr)
>>>>  ? {
>>>> -??? /* No architectures currently implement __raw_writeq() */
>>>> -??? *(volatile u64 *)addr = value;
>>>> +??? __raw_writeq(value, addr);
>>>>  ? }
>>>>
>>>>  ? __maybe_weak u8 flash_read8(void *addr)
>>>> @@ -176,8 +175,7 @@ __maybe_weak u32 flash_read32(void *addr)
>>>>
>>>>  ? __maybe_weak u64 flash_read64(void *addr)
>>>>  ? {
>>>> -??? /* No architectures currently implement __raw_readq() */
>>>> -??? return *(volatile u64 *)addr;
>>>> +??? return __raw_readq(addr);
>>>>  ? }
>>>>
>>>>   
>>>> /*-----------------------------------------------------------------------
>>>>
>>>> --
>>>> 2.26.2
>>>>
>>>
>>
>>
>> Viele Gr??e,
>> Stefan
>>
> 


Viele Gr??e,
Stefan
diff mbox series

Patch

diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index b7289ba539..e31e07ca80 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -155,8 +155,7 @@  __maybe_weak void flash_write32(u32 value, void *addr)

 __maybe_weak void flash_write64(u64 value, void *addr)
 {
-	/* No architectures currently implement __raw_writeq() */
-	*(volatile u64 *)addr = value;
+	__raw_writeq(value, addr);
 }

 __maybe_weak u8 flash_read8(void *addr)
@@ -176,8 +175,7 @@  __maybe_weak u32 flash_read32(void *addr)

 __maybe_weak u64 flash_read64(void *addr)
 {
-	/* No architectures currently implement __raw_readq() */
-	return *(volatile u64 *)addr;
+	return __raw_readq(addr);
 }

 /*-----------------------------------------------------------------------