
-----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):
- asm/arch/clk.h is not available on RISC-V port so include it only for non-RISC-V systems.
- 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