2020-07-23 08:21:16

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH] sh: clk: Fix assignment from incompatible pointer type for ioreadX()

The ioreadX() helpers accept now pointer to const memory so declaration
of read function needs updating.

This fixes build errors like:

drivers/sh/clk/cpg.c: In function ‘sh_clk_mstp_enable’:
drivers/sh/clk/cpg.c:49:9: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
read = ioread8;

Cc: Geert Uytterhoeven <[email protected]>
Cc: Kuninori Morimoto <[email protected]>
Signed-off-by: Krzysztof Kozlowski <[email protected]>

---

Dear Andrew,

This was part of my v3 patchset commit 9ab7fb303cc1 ("iomap: Constify
ioreadX() iomem argument (as in generic implementation)") but I think it
was skipped when applying to your tree.

Maybe because it depends on commit 58c4d8659186 ("sh: clkfwk: remove
r8/r16/r32") which landed later? Anyway it should go through your tree,
I think.
---
drivers/sh/clk/cpg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/sh/clk/cpg.c b/drivers/sh/clk/cpg.c
index a5cacfe24a42..fd72d9088bdc 100644
--- a/drivers/sh/clk/cpg.c
+++ b/drivers/sh/clk/cpg.c
@@ -40,7 +40,7 @@ static int sh_clk_mstp_enable(struct clk *clk)
{
sh_clk_write(sh_clk_read(clk) & ~(1 << clk->enable_bit), clk);
if (clk->status_reg) {
- unsigned int (*read)(void __iomem *addr);
+ unsigned int (*read)(const void __iomem *addr);
int i;
void __iomem *mapped_status = (phys_addr_t)clk->status_reg -
(phys_addr_t)clk->enable_reg + clk->mapped_reg;
--
2.17.1


Subject: Re: [PATCH] sh: clk: Fix assignment from incompatible pointer type for ioreadX()

Hi Krzysztof!

On 7/23/20 10:20 AM, Krzysztof Kozlowski wrote:
> Maybe because it depends on commit 58c4d8659186 ("sh: clkfwk: remove
> r8/r16/r32") which landed later? Anyway it should go through your tree,
> I think.
> ---
> drivers/sh/clk/cpg.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/sh/clk/cpg.c b/drivers/sh/clk/cpg.c
> index a5cacfe24a42..fd72d9088bdc 100644
> --- a/drivers/sh/clk/cpg.c
> +++ b/drivers/sh/clk/cpg.c
> @@ -40,7 +40,7 @@ static int sh_clk_mstp_enable(struct clk *clk)
> {
> sh_clk_write(sh_clk_read(clk) & ~(1 << clk->enable_bit), clk);
> if (clk->status_reg) {
> - unsigned int (*read)(void __iomem *addr);
> + unsigned int (*read)(const void __iomem *addr);
> int i;
> void __iomem *mapped_status = (phys_addr_t)clk->status_reg -
> (phys_addr_t)clk->enable_reg + clk->mapped_reg;

Is that a reverted patch, by any chance? The patch does not apply for me and looking at
the sources, the qualifier is already "const" [1].

Adrian

> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/sh/clk/cpg.c#n58

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - [email protected]
`. `' Freie Universitaet Berlin - [email protected]
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913

2020-07-23 12:58:14

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] sh: clk: Fix assignment from incompatible pointer type for ioreadX()

On Thu, Jul 23, 2020 at 02:49:46PM +0200, John Paul Adrian Glaubitz wrote:
> Hi Krzysztof!
>
> On 7/23/20 10:20 AM, Krzysztof Kozlowski wrote:
> > Maybe because it depends on commit 58c4d8659186 ("sh: clkfwk: remove
> > r8/r16/r32") which landed later? Anyway it should go through your tree,
> > I think.
> > ---
> > drivers/sh/clk/cpg.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/sh/clk/cpg.c b/drivers/sh/clk/cpg.c
> > index a5cacfe24a42..fd72d9088bdc 100644
> > --- a/drivers/sh/clk/cpg.c
> > +++ b/drivers/sh/clk/cpg.c
> > @@ -40,7 +40,7 @@ static int sh_clk_mstp_enable(struct clk *clk)
> > {
> > sh_clk_write(sh_clk_read(clk) & ~(1 << clk->enable_bit), clk);
> > if (clk->status_reg) {
> > - unsigned int (*read)(void __iomem *addr);
> > + unsigned int (*read)(const void __iomem *addr);
> > int i;
> > void __iomem *mapped_status = (phys_addr_t)clk->status_reg -
> > (phys_addr_t)clk->enable_reg + clk->mapped_reg;
>
> Is that a reverted patch, by any chance? The patch does not apply for me and looking at
> the sources, the qualifier is already "const" [1].

The patch is for Andrew Morton's tree which contain two commits:
1. sh: clkfwk: remove r8/r16/r32
2. iomap: constify ioreadX() iomem argument (as in generic implementation)

This patch here was actually part of #2 because of being based on
linux-next. However it disappeared when applying to Andrew's tree
because patch #1 came later.

Best regards,
Krzysztof

Subject: Re: [PATCH] sh: clk: Fix assignment from incompatible pointer type for ioreadX()

Hi!

On 7/23/20 2:57 PM, Krzysztof Kozlowski wrote:
> The patch is for Andrew Morton's tree which contain two commits:
> 1. sh: clkfwk: remove r8/r16/r32
> 2. iomap: constify ioreadX() iomem argument (as in generic implementation)
>
> This patch here was actually part of #2 because of being based on
> linux-next. However it disappeared when applying to Andrew's tree
> because patch #1 came later.

Okay. I'll try to look at the other two patches later.

Adrian

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - [email protected]
`. `' Freie Universitaet Berlin - [email protected]
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913