Module Name: src Committed By: jmcneill Date: Sun Feb 3 15:43:57 UTC 2019
Modified Files: src/sys/arch/arm/sunxi: sunxi_drm.c sunxi_platform.c Log Message: Support "nomodeset" kernel cmdline flag to disable sunxidrm To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/sunxi/sunxi_drm.c cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/sunxi/sunxi_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/sunxi/sunxi_drm.c diff -u src/sys/arch/arm/sunxi/sunxi_drm.c:1.4 src/sys/arch/arm/sunxi/sunxi_drm.c:1.5 --- src/sys/arch/arm/sunxi/sunxi_drm.c:1.4 Thu Jan 31 01:49:28 2019 +++ src/sys/arch/arm/sunxi/sunxi_drm.c Sun Feb 3 15:43:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_drm.c,v 1.4 2019/01/31 01:49:28 jmcneill Exp $ */ +/* $NetBSD: sunxi_drm.c,v 1.5 2019/02/03 15:43:57 jmcneill Exp $ */ /*- * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_drm.c,v 1.4 2019/01/31 01:49:28 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_drm.c,v 1.5 2019/02/03 15:43:57 jmcneill Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -121,6 +121,8 @@ sunxi_drm_attach(device_t parent, device struct sunxi_drm_softc * const sc = device_private(self); struct fdt_attach_args * const faa = aux; struct drm_driver * const driver = &sunxi_drm_driver; + prop_dictionary_t dict = device_properties(self); + bool is_disabled; sc->sc_dev = self; sc->sc_dmat = faa->faa_dmat; @@ -128,6 +130,12 @@ sunxi_drm_attach(device_t parent, device sc->sc_phandle = faa->faa_phandle; aprint_naive("\n"); + + if (prop_dictionary_get_bool(dict, "disabled", &is_disabled) && is_disabled) { + aprint_normal(": Display Engine Pipeline (disabled)\n"); + return; + } + aprint_normal(": Display Engine Pipeline\n"); sc->sc_ddev = drm_dev_alloc(driver, sc->sc_dev); Index: src/sys/arch/arm/sunxi/sunxi_platform.c diff -u src/sys/arch/arm/sunxi/sunxi_platform.c:1.34 src/sys/arch/arm/sunxi/sunxi_platform.c:1.35 --- src/sys/arch/arm/sunxi/sunxi_platform.c:1.34 Thu Jan 3 14:44:21 2019 +++ src/sys/arch/arm/sunxi/sunxi_platform.c Sun Feb 3 15:43:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_platform.c,v 1.34 2019/01/03 14:44:21 jmcneill Exp $ */ +/* $NetBSD: sunxi_platform.c,v 1.35 2019/02/03 15:43:57 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca> @@ -31,7 +31,7 @@ #include "opt_console.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.34 2019/01/03 14:44:21 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.35 2019/02/03 15:43:57 jmcneill Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -201,6 +201,7 @@ static void sunxi_platform_device_register(device_t self, void *aux) { prop_dictionary_t prop = device_properties(self); + int val; if (device_is_a(self, "rgephy")) { /* Pine64+ and NanoPi NEO Plus2 gigabit ethernet workaround */ @@ -224,6 +225,12 @@ sunxi_platform_device_register(device_t prop_dictionary_set_bool(prop, "sun50i-a64-unstable-timer", true); } } + + if (device_is_a(self, "sunxidrm")) { + if (get_bootconf_option(boot_args, "nomodeset", BOOTOPT_TYPE_BOOLEAN, &val)) + if (val) + prop_dictionary_set_bool(prop, "disabled", true); + } } static u_int