Message ID | 20190117103748.36613-5-anup.patel@wdc.com |
---|---|
State | Superseded |
Delegated to: | Andes |
Headers | show |
Series | SiFive FU540 Support | expand |
On 01/17/2019 11:38 AM, Anup Patel wrote: > This patch does following fixes in MACB ethernet driver > for using it on RISC-V systems (particularly QEMU sifive_u > machine): > 1. asm/arch/clk.h is not available on RISC-V port so include > it only for non-RISC-V systems. > 2. Don't fail in macb_enable_clk() if clk_enable() returns > -ENOSYS because we get -ENOSYS for fixed-rate clocks. > > Signed-off-by: Anup Patel <anup.patel@wdc.com> > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > --- > drivers/net/macb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/macb.c b/drivers/net/macb.c > index 94c89c762b..9a06b523cc 100644 > --- a/drivers/net/macb.c > +++ b/drivers/net/macb.c > @@ -38,7 +38,9 @@ > #include <linux/mii.h> > #include <asm/io.h> > #include <asm/dma-mapping.h> > +#ifndef CONFIG_RISCV > #include <asm/arch/clk.h> > +#endif > #include <linux/errno.h> > > #include "macb.h" > @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice *dev) > */ > #ifndef CONFIG_MACB_ZYNQ > ret = clk_enable(&clk); If clk.h is not available, who exports clk_enable() then; and why is the included needed in the first place? Alex > - if (ret) > + if (ret && ret != -ENOSYS) > return ret; > #endif >
> -----Original Message----- > From: Alexander Graf [mailto:agraf@suse.de] > Sent: Thursday, January 17, 2019 11:37 PM > To: Anup Patel <Anup.Patel@wdc.com>; Rick Chen <rick@andestech.com>; > Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger > <joe.hershberger@ni.com>; Lukas Auer <lukas.auer@aisec.fraunhofer.de>; > Masahiro Yamada <yamada.masahiro@socionext.com>; Simon Glass > <sjg@chromium.org> > Cc: Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > boot@lists.denx.de> > Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V systems > > On 01/17/2019 11:38 AM, Anup Patel wrote: > > This patch does following fixes in MACB ethernet driver for using it > > on RISC-V systems (particularly QEMU sifive_u > > machine): > > 1. asm/arch/clk.h is not available on RISC-V port so include > > it only for non-RISC-V systems. > > 2. Don't fail in macb_enable_clk() if clk_enable() returns > > -ENOSYS because we get -ENOSYS for fixed-rate clocks. > > > > Signed-off-by: Anup Patel <anup.patel@wdc.com> > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > > --- > > drivers/net/macb.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/macb.c b/drivers/net/macb.c index > > 94c89c762b..9a06b523cc 100644 > > --- a/drivers/net/macb.c > > +++ b/drivers/net/macb.c > > @@ -38,7 +38,9 @@ > > #include <linux/mii.h> > > #include <asm/io.h> > > #include <asm/dma-mapping.h> > > +#ifndef CONFIG_RISCV > > #include <asm/arch/clk.h> > > +#endif > > #include <linux/errno.h> > > > > #include "macb.h" > > @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice *dev) > > */ > > #ifndef CONFIG_MACB_ZYNQ > > ret = clk_enable(&clk); > > If clk.h is not available, who exports clk_enable() then; and why is the > included needed in the first place? For some of the ARM boards, clk instances are provided directly by arch/arm/mach-xyz sources. For such boards, asm/arch/clk.h is required. I think these boards should move to DT based clk drivers. In all other cases, we use generic <clk.h> which provides clk instances using DT based clk drivers. Regards, Anup
> Am 18.01.2019 um 07:05 schrieb Anup Patel <Anup.Patel@wdc.com>: > > > >> -----Original Message----- >> From: Alexander Graf [mailto:agraf@suse.de] >> Sent: Thursday, January 17, 2019 11:37 PM >> To: Anup Patel <Anup.Patel@wdc.com>; Rick Chen <rick@andestech.com>; >> Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger >> <joe.hershberger@ni.com>; Lukas Auer <lukas.auer@aisec.fraunhofer.de>; >> Masahiro Yamada <yamada.masahiro@socionext.com>; Simon Glass >> <sjg@chromium.org> >> Cc: Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley >> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; >> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- >> boot@lists.denx.de> >> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V systems >> >>> On 01/17/2019 11:38 AM, Anup Patel wrote: >>> This patch does following fixes in MACB ethernet driver for using it >>> on RISC-V systems (particularly QEMU sifive_u >>> machine): >>> 1. asm/arch/clk.h is not available on RISC-V port so include >>> it only for non-RISC-V systems. >>> 2. Don't fail in macb_enable_clk() if clk_enable() returns >>> -ENOSYS because we get -ENOSYS for fixed-rate clocks. >>> >>> Signed-off-by: Anup Patel <anup.patel@wdc.com> >>> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> >>> --- >>> drivers/net/macb.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/macb.c b/drivers/net/macb.c index >>> 94c89c762b..9a06b523cc 100644 >>> --- a/drivers/net/macb.c >>> +++ b/drivers/net/macb.c >>> @@ -38,7 +38,9 @@ >>> #include <linux/mii.h> >>> #include <asm/io.h> >>> #include <asm/dma-mapping.h> >>> +#ifndef CONFIG_RISCV >>> #include <asm/arch/clk.h> >>> +#endif >>> #include <linux/errno.h> >>> >>> #include "macb.h" >>> @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice *dev) >>> */ >>> #ifndef CONFIG_MACB_ZYNQ >>> ret = clk_enable(&clk); >> >> If clk.h is not available, who exports clk_enable() then; and why is the >> included needed in the first place? > > For some of the ARM boards, clk instances are provided > directly by arch/arm/mach-xyz sources. For such boards, > asm/arch/clk.h is required. I think these boards should > move to DT based clk drivers. Can you at least make this a positive #ifdef then rather than ifndef? We want to isolate the odd case, not the normal one. Maybe you can even find a config option that isolates it further? Alex > > In all other cases, we use generic <clk.h> which provides > clk instances using DT based clk drivers. > > Regards, > Anup
> -----Original Message----- > From: Alexander Graf [mailto:agraf@suse.de] > Sent: Friday, January 18, 2019 5:05 PM > To: Anup Patel <Anup.Patel@wdc.com> > Cc: Rick Chen <rick@andestech.com>; Bin Meng <bmeng.cn@gmail.com>; > Joe Hershberger <joe.hershberger@ni.com>; Lukas Auer > <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada > <yamada.masahiro@socionext.com>; Simon Glass <sjg@chromium.org>; > Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > boot@lists.denx.de> > Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V systems > > > > > Am 18.01.2019 um 07:05 schrieb Anup Patel <Anup.Patel@wdc.com>: > > > > > > > >> -----Original Message----- > >> From: Alexander Graf [mailto:agraf@suse.de] > >> Sent: Thursday, January 17, 2019 11:37 PM > >> To: Anup Patel <Anup.Patel@wdc.com>; Rick Chen > <rick@andestech.com>; > >> Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger > >> <joe.hershberger@ni.com>; Lukas Auer > >> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada > >> <yamada.masahiro@socionext.com>; Simon Glass <sjg@chromium.org> > >> Cc: Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > >> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > >> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > >> boot@lists.denx.de> > >> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V > >> systems > >> > >>> On 01/17/2019 11:38 AM, Anup Patel wrote: > >>> This patch does following fixes in MACB ethernet driver for using it > >>> on RISC-V systems (particularly QEMU sifive_u > >>> machine): > >>> 1. asm/arch/clk.h is not available on RISC-V port so include > >>> it only for non-RISC-V systems. > >>> 2. Don't fail in macb_enable_clk() if clk_enable() returns > >>> -ENOSYS because we get -ENOSYS for fixed-rate clocks. > >>> > >>> Signed-off-by: Anup Patel <anup.patel@wdc.com> > >>> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > >>> --- > >>> drivers/net/macb.c | 4 +++- > >>> 1 file changed, 3 insertions(+), 1 deletion(-) > >>> > >>> diff --git a/drivers/net/macb.c b/drivers/net/macb.c index > >>> 94c89c762b..9a06b523cc 100644 > >>> --- a/drivers/net/macb.c > >>> +++ b/drivers/net/macb.c > >>> @@ -38,7 +38,9 @@ > >>> #include <linux/mii.h> > >>> #include <asm/io.h> > >>> #include <asm/dma-mapping.h> > >>> +#ifndef CONFIG_RISCV > >>> #include <asm/arch/clk.h> > >>> +#endif > >>> #include <linux/errno.h> > >>> > >>> #include "macb.h" > >>> @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice > *dev) > >>> */ > >>> #ifndef CONFIG_MACB_ZYNQ > >>> ret = clk_enable(&clk); > >> > >> If clk.h is not available, who exports clk_enable() then; and why is > >> the included needed in the first place? > > > > For some of the ARM boards, clk instances are provided directly by > > arch/arm/mach-xyz sources. For such boards, asm/arch/clk.h is > > required. I think these boards should move to DT based clk drivers. > > Can you at least make this a positive #ifdef then rather than ifndef? We want > to isolate the odd case, not the normal one. > > Maybe you can even find a config option that isolates it further? With the additional check "ret != -ENOSYS", we don't require the #ifndef but someone with Zynq SOC board need to confirm that removing #ifndef won't hurt. Regards, Anup
On 18.01.19 14:28, Anup Patel wrote: > > >> -----Original Message----- >> From: Alexander Graf [mailto:agraf@suse.de] >> Sent: Friday, January 18, 2019 5:05 PM >> To: Anup Patel <Anup.Patel@wdc.com> >> Cc: Rick Chen <rick@andestech.com>; Bin Meng <bmeng.cn@gmail.com>; >> Joe Hershberger <joe.hershberger@ni.com>; Lukas Auer >> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada >> <yamada.masahiro@socionext.com>; Simon Glass <sjg@chromium.org>; >> Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley >> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; >> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- >> boot@lists.denx.de> >> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V systems >> >> >> >>> Am 18.01.2019 um 07:05 schrieb Anup Patel <Anup.Patel@wdc.com>: >>> >>> >>> >>>> -----Original Message----- >>>> From: Alexander Graf [mailto:agraf@suse.de] >>>> Sent: Thursday, January 17, 2019 11:37 PM >>>> To: Anup Patel <Anup.Patel@wdc.com>; Rick Chen >> <rick@andestech.com>; >>>> Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger >>>> <joe.hershberger@ni.com>; Lukas Auer >>>> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada >>>> <yamada.masahiro@socionext.com>; Simon Glass <sjg@chromium.org> >>>> Cc: Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley >>>> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; >>>> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- >>>> boot@lists.denx.de> >>>> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V >>>> systems >>>> >>>>> On 01/17/2019 11:38 AM, Anup Patel wrote: >>>>> This patch does following fixes in MACB ethernet driver for using it >>>>> on RISC-V systems (particularly QEMU sifive_u >>>>> machine): >>>>> 1. asm/arch/clk.h is not available on RISC-V port so include >>>>> it only for non-RISC-V systems. >>>>> 2. Don't fail in macb_enable_clk() if clk_enable() returns >>>>> -ENOSYS because we get -ENOSYS for fixed-rate clocks. >>>>> >>>>> Signed-off-by: Anup Patel <anup.patel@wdc.com> >>>>> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> >>>>> --- >>>>> drivers/net/macb.c | 4 +++- >>>>> 1 file changed, 3 insertions(+), 1 deletion(-) >>>>> >>>>> diff --git a/drivers/net/macb.c b/drivers/net/macb.c index >>>>> 94c89c762b..9a06b523cc 100644 >>>>> --- a/drivers/net/macb.c >>>>> +++ b/drivers/net/macb.c >>>>> @@ -38,7 +38,9 @@ >>>>> #include <linux/mii.h> >>>>> #include <asm/io.h> >>>>> #include <asm/dma-mapping.h> >>>>> +#ifndef CONFIG_RISCV >>>>> #include <asm/arch/clk.h> >>>>> +#endif >>>>> #include <linux/errno.h> >>>>> >>>>> #include "macb.h" >>>>> @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice >> *dev) >>>>> */ >>>>> #ifndef CONFIG_MACB_ZYNQ >>>>> ret = clk_enable(&clk); >>>> >>>> If clk.h is not available, who exports clk_enable() then; and why is >>>> the included needed in the first place? >>> >>> For some of the ARM boards, clk instances are provided directly by >>> arch/arm/mach-xyz sources. For such boards, asm/arch/clk.h is >>> required. I think these boards should move to DT based clk drivers. >> >> Can you at least make this a positive #ifdef then rather than ifndef? We want >> to isolate the odd case, not the normal one. >> >> Maybe you can even find a config option that isolates it further? > > With the additional check "ret != -ENOSYS", we don't require the #ifndef but > someone with Zynq SOC board need to confirm that removing #ifndef won't > hurt. In that case let's CC Michal :). Alex
Hi, On Fri, 18 Jan 2019 at 06:35, Alexander Graf <agraf@suse.de> wrote: > > > > On 18.01.19 14:28, Anup Patel wrote: > > > > > >> -----Original Message----- > >> From: Alexander Graf [mailto:agraf@suse.de] > >> Sent: Friday, January 18, 2019 5:05 PM > >> To: Anup Patel <Anup.Patel@wdc.com> > >> Cc: Rick Chen <rick@andestech.com>; Bin Meng <bmeng.cn@gmail.com>; > >> Joe Hershberger <joe.hershberger@ni.com>; Lukas Auer > >> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada > >> <yamada.masahiro@socionext.com>; Simon Glass <sjg@chromium.org>; > >> Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > >> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > >> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > >> boot@lists.denx.de> > >> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V systems > >> > >> > >> > >>> Am 18.01.2019 um 07:05 schrieb Anup Patel <Anup.Patel@wdc.com>: > >>> > >>> > >>> > >>>> -----Original Message----- > >>>> From: Alexander Graf [mailto:agraf@suse.de] > >>>> Sent: Thursday, January 17, 2019 11:37 PM > >>>> To: Anup Patel <Anup.Patel@wdc.com>; Rick Chen > >> <rick@andestech.com>; > >>>> Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger > >>>> <joe.hershberger@ni.com>; Lukas Auer > >>>> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada > >>>> <yamada.masahiro@socionext.com>; Simon Glass <sjg@chromium.org> > >>>> Cc: Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > >>>> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > >>>> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > >>>> boot@lists.denx.de> > >>>> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V > >>>> systems > >>>> > >>>>> On 01/17/2019 11:38 AM, Anup Patel wrote: > >>>>> This patch does following fixes in MACB ethernet driver for using it > >>>>> on RISC-V systems (particularly QEMU sifive_u > >>>>> machine): > >>>>> 1. asm/arch/clk.h is not available on RISC-V port so include > >>>>> it only for non-RISC-V systems. > >>>>> 2. Don't fail in macb_enable_clk() if clk_enable() returns > >>>>> -ENOSYS because we get -ENOSYS for fixed-rate clocks. > >>>>> > >>>>> Signed-off-by: Anup Patel <anup.patel@wdc.com> > >>>>> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > >>>>> --- > >>>>> drivers/net/macb.c | 4 +++- > >>>>> 1 file changed, 3 insertions(+), 1 deletion(-) > >>>>> > >>>>> diff --git a/drivers/net/macb.c b/drivers/net/macb.c index > >>>>> 94c89c762b..9a06b523cc 100644 > >>>>> --- a/drivers/net/macb.c > >>>>> +++ b/drivers/net/macb.c > >>>>> @@ -38,7 +38,9 @@ > >>>>> #include <linux/mii.h> > >>>>> #include <asm/io.h> > >>>>> #include <asm/dma-mapping.h> > >>>>> +#ifndef CONFIG_RISCV > >>>>> #include <asm/arch/clk.h> > >>>>> +#endif > >>>>> #include <linux/errno.h> > >>>>> > >>>>> #include "macb.h" > >>>>> @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice > >> *dev) > >>>>> */ > >>>>> #ifndef CONFIG_MACB_ZYNQ > >>>>> ret = clk_enable(&clk); > >>>> > >>>> If clk.h is not available, who exports clk_enable() then; and why is > >>>> the included needed in the first place? > >>> > >>> For some of the ARM boards, clk instances are provided directly by > >>> arch/arm/mach-xyz sources. For such boards, asm/arch/clk.h is > >>> required. I think these boards should move to DT based clk drivers. > >> > >> Can you at least make this a positive #ifdef then rather than ifndef? We want > >> to isolate the odd case, not the normal one. > >> > >> Maybe you can even find a config option that isolates it further? > > > > With the additional check "ret != -ENOSYS", we don't require the #ifndef but > > someone with Zynq SOC board need to confirm that removing #ifndef won't > > hurt. > > In that case let's CC Michal :). Yes, although putting an arch-specific #ifdef in a driver is not correct, so I think the onus would be on Michal to fix that if it were a problem. Regards, Simon
> -----Original Message----- > From: Simon Glass [mailto:sjg@chromium.org] > Sent: Thursday, January 31, 2019 3:34 PM > To: Alexander Graf <agraf@suse.de> > Cc: Anup Patel <Anup.Patel@wdc.com>; Rick Chen <rick@andestech.com>; > Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger > <joe.hershberger@ni.com>; Lukas Auer <lukas.auer@aisec.fraunhofer.de>; > Masahiro Yamada <yamada.masahiro@socionext.com>; Palmer Dabbelt > <palmer@sifive.com>; Paul Walmsley <paul.walmsley@sifive.com>; Atish > Patra <Atish.Patra@wdc.com>; Christoph Hellwig <hch@infradead.org>; U- > Boot Mailing List <u-boot@lists.denx.de>; Michal Simek > <michal.simek@xilinx.com> > Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V systems > > Hi, > > On Fri, 18 Jan 2019 at 06:35, Alexander Graf <agraf@suse.de> wrote: > > > > > > > > On 18.01.19 14:28, Anup Patel wrote: > > > > > > > > >> -----Original Message----- > > >> From: Alexander Graf [mailto:agraf@suse.de] > > >> Sent: Friday, January 18, 2019 5:05 PM > > >> To: Anup Patel <Anup.Patel@wdc.com> > > >> Cc: Rick Chen <rick@andestech.com>; Bin Meng > <bmeng.cn@gmail.com>; > > >> Joe Hershberger <joe.hershberger@ni.com>; Lukas Auer > > >> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada > > >> <yamada.masahiro@socionext.com>; Simon Glass > <sjg@chromium.org>; > > >> Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > > >> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > > >> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > > >> boot@lists.denx.de> > > >> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for RISC-V > > >> systems > > >> > > >> > > >> > > >>> Am 18.01.2019 um 07:05 schrieb Anup Patel <Anup.Patel@wdc.com>: > > >>> > > >>> > > >>> > > >>>> -----Original Message----- > > >>>> From: Alexander Graf [mailto:agraf@suse.de] > > >>>> Sent: Thursday, January 17, 2019 11:37 PM > > >>>> To: Anup Patel <Anup.Patel@wdc.com>; Rick Chen > > >> <rick@andestech.com>; > > >>>> Bin Meng <bmeng.cn@gmail.com>; Joe Hershberger > > >>>> <joe.hershberger@ni.com>; Lukas Auer > > >>>> <lukas.auer@aisec.fraunhofer.de>; Masahiro Yamada > > >>>> <yamada.masahiro@socionext.com>; Simon Glass > <sjg@chromium.org> > > >>>> Cc: Palmer Dabbelt <palmer@sifive.com>; Paul Walmsley > > >>>> <paul.walmsley@sifive.com>; Atish Patra <Atish.Patra@wdc.com>; > > >>>> Christoph Hellwig <hch@infradead.org>; U-Boot Mailing List <u- > > >>>> boot@lists.denx.de> > > >>>> Subject: Re: [PATCH 04/11] net: macb: Fix clk API usage for > > >>>> RISC-V systems > > >>>> > > >>>>> On 01/17/2019 11:38 AM, Anup Patel wrote: > > >>>>> This patch does following fixes in MACB ethernet driver for > > >>>>> using it on RISC-V systems (particularly QEMU sifive_u > > >>>>> machine): > > >>>>> 1. asm/arch/clk.h is not available on RISC-V port so include > > >>>>> it only for non-RISC-V systems. > > >>>>> 2. Don't fail in macb_enable_clk() if clk_enable() returns > > >>>>> -ENOSYS because we get -ENOSYS for fixed-rate clocks. > > >>>>> > > >>>>> Signed-off-by: Anup Patel <anup.patel@wdc.com> > > >>>>> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > > >>>>> --- > > >>>>> drivers/net/macb.c | 4 +++- > > >>>>> 1 file changed, 3 insertions(+), 1 deletion(-) > > >>>>> > > >>>>> diff --git a/drivers/net/macb.c b/drivers/net/macb.c index > > >>>>> 94c89c762b..9a06b523cc 100644 > > >>>>> --- a/drivers/net/macb.c > > >>>>> +++ b/drivers/net/macb.c > > >>>>> @@ -38,7 +38,9 @@ > > >>>>> #include <linux/mii.h> > > >>>>> #include <asm/io.h> > > >>>>> #include <asm/dma-mapping.h> > > >>>>> +#ifndef CONFIG_RISCV > > >>>>> #include <asm/arch/clk.h> > > >>>>> +#endif > > >>>>> #include <linux/errno.h> > > >>>>> > > >>>>> #include "macb.h" > > >>>>> @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice > > >> *dev) > > >>>>> */ > > >>>>> #ifndef CONFIG_MACB_ZYNQ > > >>>>> ret = clk_enable(&clk); > > >>>> > > >>>> If clk.h is not available, who exports clk_enable() then; and why > > >>>> is the included needed in the first place? > > >>> > > >>> For some of the ARM boards, clk instances are provided directly by > > >>> arch/arm/mach-xyz sources. For such boards, asm/arch/clk.h is > > >>> required. I think these boards should move to DT based clk drivers. > > >> > > >> Can you at least make this a positive #ifdef then rather than > > >> ifndef? We want to isolate the odd case, not the normal one. > > >> > > >> Maybe you can even find a config option that isolates it further? > > > > > > With the additional check "ret != -ENOSYS", we don't require the > > > #ifndef but someone with Zynq SOC board need to confirm that > > > removing #ifndef won't hurt. > > > > In that case let's CC Michal :). > > Yes, although putting an arch-specific #ifdef in a driver is not correct, so I > think the onus would be on Michal to fix that if it were a problem. Okay, I will drop the #ifndef and if required Michal can fix it for Zynq SoC. Regards, Anup
diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 94c89c762b..9a06b523cc 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -38,7 +38,9 @@ #include <linux/mii.h> #include <asm/io.h> #include <asm/dma-mapping.h> +#ifndef CONFIG_RISCV #include <asm/arch/clk.h> +#endif #include <linux/errno.h> #include "macb.h" @@ -1066,7 +1068,7 @@ static int macb_enable_clk(struct udevice *dev) */ #ifndef CONFIG_MACB_ZYNQ ret = clk_enable(&clk); - if (ret) + if (ret && ret != -ENOSYS) return ret; #endif