Module Name: src Committed By: rin Date: Thu Aug 15 00:27:47 UTC 2019
Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: kern/52229 Correct linebytes (stride) for intelfb(4), which fixes screen corruption on the following machines: - MacBookAir5,2 (Ivy Bridge, 13-inch, Mid 2012) - MacBookAir6,1 (Haswell, 11-inch, Early 2014) Now, wsdisplay(4) console as well as intel(4) driver of Xorg works fine on these machines. Also there's no side effects found on another machine: - ThinkPad T480s (Kaby Lake R) XXX pullup to netbsd-9 To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 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.16 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.17 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.16 Sat Dec 1 01:56:30 2018 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Thu Aug 15 00:27:47 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.16 2018/12/01 01:56:30 msaitoh Exp $ */ +/* $NetBSD: intelfb.c,v 1.17 2019/08/15 00:27:47 rin Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.16 2018/12/01 01:56:30 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.17 2019/08/15 00:27:47 rin Exp $"); #include <sys/types.h> #include <sys/bus.h> @@ -166,14 +166,12 @@ intelfb_attach_task(struct i915drmkms_ta struct intelfb_softc *const sc = container_of(task, struct intelfb_softc, sc_attach_task); const struct intelfb_attach_args *const ifa = &sc->sc_ifa; - const struct drm_fb_helper_surface_size *const sizes = &ifa->ifa_fb_sizes; const struct drmfb_attach_args da = { .da_dev = sc->sc_dev, .da_fb_helper = ifa->ifa_fb_helper, .da_fb_sizes = &ifa->ifa_fb_sizes, .da_fb_vaddr = bus_space_vaddr(ifa->ifa_fb_bst, sc->sc_fb_bsh), - .da_fb_linebytes = roundup2((sizes->surface_width * - howmany(sizes->surface_bpp, 8)), 64), + .da_fb_linebytes = ifa->ifa_fb_helper->fb->pitches[0], .da_params = &intelfb_drmfb_params, }; int error;