Module Name: src Committed By: riastradh Date: Thu Jul 24 21:18:40 UTC 2014
Modified Files: src/sys/arch/amd64/conf: DRMKMS src/sys/external/bsd/drm2/dist/drm/i915: i915_drv.h intel_display.c intel_fbdev.c src/sys/external/bsd/drm2/dist/include/drm: drm_fb_helper.h src/sys/external/bsd/drm2/i915drm: files.i915drmkms i915_pci.c src/sys/modules/i915drmkms: Makefile i915drmkms.ioconf Added Files: src/sys/external/bsd/drm2/i915drm: i915_pci.h intelfb.c intelfb.h Log Message: Rework Intel framebuffer attachment. Turns out genfb_softc must be at the start of its own device_private, so we can't have it in the middle of a structure, and certainly can't have potentially multiple genfbs per graphics device. Failing to do this is why entering ddb didn't work with an i915drmkms console. Instead of putting a genfb_softc into each drm_fb_helper, put a device_t into each drm_fb_helper and create a new intelfb(4) device for each Intel framebuffer. This will be more flexible, too, in case we want accelerated framebuffers later on. (XXX Need to adapt the radeon code, which I'm disabling until that happens to avoid breaking the build.) While here, defer disabling VGA, vga_cndetach, and genfb_attach until we're actually ready to do them all together along with the mode switch. This should reduce the amount of time during which the screen is blanked, in case it hangs. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/amd64/conf/DRMKMS cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/i915drm/files.i915drmkms cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/drm2/i915drm/i915_pci.c cvs rdiff -u -r0 -r1.1 src/sys/external/bsd/drm2/i915drm/i915_pci.h \ src/sys/external/bsd/drm2/i915drm/intelfb.c \ src/sys/external/bsd/drm2/i915drm/intelfb.h cvs rdiff -u -r1.3 -r1.4 src/sys/modules/i915drmkms/Makefile cvs rdiff -u -r1.2 -r1.3 src/sys/modules/i915drmkms/i915drmkms.ioconf Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.