From 2689a8614c50668d9260840ad4094d2ab79aa1ab Mon Sep 17 00:00:00 2001 From: jmcneill Date: Sat, 23 Dec 2017 12:50:55 +0000 Subject: [PATCH] Apply RTL8211E 'no-rx-delay' workaround on Pine64+ boards --- sys/arch/arm/sunxi/sunxi_platform.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/arch/arm/sunxi/sunxi_platform.c b/sys/arch/arm/sunxi/sunxi_platform.c index c140567b9319..6a6f1c46d14b 100644 --- a/sys/arch/arm/sunxi/sunxi_platform.c +++ b/sys/arch/arm/sunxi/sunxi_platform.c @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_platform.c,v 1.17 2017/12/19 09:04:19 skrll Exp $ */ +/* $NetBSD: sunxi_platform.c,v 1.18 2017/12/23 12:50:55 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -31,7 +31,7 @@ #include "opt_fdt_arm.h" #include -__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.17 2017/12/19 09:04:19 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.18 2017/12/23 12:50:55 jmcneill Exp $"); #include #include @@ -137,6 +137,15 @@ sunxi_platform_early_putchar(char c) static void sunxi_platform_device_register(device_t self, void *aux) { + prop_dictionary_t prop = device_properties(self); + + if (device_is_a(self, "rgephy")) { + /* Pine64+ gigabit ethernet workaround */ + const char * compat[] = { "pine64,pine64-plus", NULL }; + if (of_match_compatible(OF_finddevice("/"), compat)) { + prop_dictionary_set_bool(prop, "no-rx-delay", true); + } + } } static u_int