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 |
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 >
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
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 >
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 --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); } /*-----------------------------------------------------------------------
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