Module Name: src Committed By: jmcneill Date: Fri Aug 8 02:27:40 UTC 2014
Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: add a pmf shutdown handler to switch genfb into polling mode To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/i915drm/intelfb.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/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.7 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.8 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.7 Wed Aug 6 22:16:38 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Fri Aug 8 02:27:40 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.7 2014/08/06 22:16:38 jmcneill Exp $ */ +/* $NetBSD: intelfb.c,v 1.8 2014/08/08 02:27:40 jmcneill Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.7 2014/08/06 22:16:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.8 2014/08/08 02:27:40 jmcneill Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -90,6 +90,7 @@ static int intelfb_genfb_ioctl(void *, v static paddr_t intelfb_genfb_mmap(void *, void *, off_t, int); static int intelfb_genfb_enable_polling(void *); static int intelfb_genfb_disable_polling(void *); +static bool intelfb_genfb_shutdown(device_t, int); static bool intelfb_genfb_setmode(struct genfb_softc *, int); static const struct genfb_mode_callback intelfb_genfb_mode_callback = { @@ -244,6 +245,9 @@ intelfb_setconfig_task(struct i915drmkms } sc->sc_attached = true; + pmf_device_register1(sc->sc_dev, NULL, NULL, + intelfb_genfb_shutdown); + drm_fb_helper_set_config(sc->sc_ifa.ifa_fb_helper); /* Success! */ @@ -421,6 +425,13 @@ intelfb_genfb_disable_polling(void *cook } static bool +intelfb_genfb_shutdown(device_t self, int flags) +{ + genfb_enable_polling(self); + return true; +} + +static bool intelfb_genfb_setmode(struct genfb_softc *genfb, int mode) { struct intelfb_softc *sc = (struct intelfb_softc *)genfb;