Module Name:    src
Committed By:   snj
Date:           Wed Dec 14 19:13:24 UTC 2016

Modified Files:
        src/sys/external/bsd/drm2/drm [netbsd-7]: drmfb.c
        src/sys/external/bsd/drm2/i915drm [netbsd-7]: intelfb.c
        src/sys/external/bsd/drm2/include/drm [netbsd-7]: drmfb.h
        src/sys/external/bsd/drm2/nouveau [netbsd-7]: nouveaufb.c

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #1322):
        sys/external/bsd/drm2/drm/drmfb.c: revision 1.3
        sys/external/bsd/drm2/i915drm/intelfb.c: revision 1.14
        sys/external/bsd/drm2/include/drm/drmfb.h: revision 1.2
        sys/external/bsd/drm2/nouveau/nouveaufb.c: revision 1.4
add da_fb_linebytes to drmfb_attach_args and use it to pass linebytes
from nouveau code to drmfb. keep the same linebytes logic for i915.
nvidia hardware needs 256 byte alignment, so aligning to just 64 was
not enough.
fixes broken console with a width of 1440px (PR kern/51181)
ok riastradh


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.3 -r1.1.2.4 src/sys/external/bsd/drm2/drm/drmfb.c
cvs rdiff -u -r1.9.4.3 -r1.9.4.4 src/sys/external/bsd/drm2/i915drm/intelfb.c
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 \
    src/sys/external/bsd/drm2/include/drm/drmfb.h
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 \
    src/sys/external/bsd/drm2/nouveau/nouveaufb.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/drm/drmfb.c
diff -u src/sys/external/bsd/drm2/drm/drmfb.c:1.1.2.3 src/sys/external/bsd/drm2/drm/drmfb.c:1.1.2.4
--- src/sys/external/bsd/drm2/drm/drmfb.c:1.1.2.3	Thu Feb 11 23:17:06 2016
+++ src/sys/external/bsd/drm2/drm/drmfb.c	Wed Dec 14 19:13:24 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmfb.c,v 1.1.2.3 2016/02/11 23:17:06 snj Exp $	*/
+/*	$NetBSD: drmfb.c,v 1.1.2.4 2016/12/14 19:13:24 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drmfb.c,v 1.1.2.3 2016/02/11 23:17:06 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drmfb.c,v 1.1.2.4 2016/12/14 19:13:24 snj Exp $");
 
 #ifdef _KERNEL_OPT
 #include "vga.h"
@@ -103,9 +103,7 @@ drmfb_attach(struct drmfb_softc *sc, con
 	prop_dictionary_set_uint32(dict, "width", sizes->surface_width);
 	prop_dictionary_set_uint32(dict, "height", sizes->surface_height);
 	prop_dictionary_set_uint8(dict, "depth", sizes->surface_bpp);
-	prop_dictionary_set_uint16(dict, "linebytes",
-	    roundup2((sizes->surface_width * howmany(sizes->surface_bpp, 8)),
-		64));
+	prop_dictionary_set_uint16(dict, "linebytes", da->da_fb_linebytes);
 	prop_dictionary_set_uint32(dict, "address", 0); /* XXX >32-bit */
 	CTASSERT(sizeof(uintptr_t) <= sizeof(uint64_t));
 	prop_dictionary_set_uint64(dict, "virtual_address",

Index: src/sys/external/bsd/drm2/i915drm/intelfb.c
diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.9.4.3 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.9.4.4
--- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.9.4.3	Thu Apr 23 07:31:17 2015
+++ src/sys/external/bsd/drm2/i915drm/intelfb.c	Wed Dec 14 19:13:24 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: intelfb.c,v 1.9.4.3 2015/04/23 07:31:17 snj Exp $	*/
+/*	$NetBSD: intelfb.c,v 1.9.4.4 2016/12/14 19:13:24 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.9.4.3 2015/04/23 07:31:17 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.9.4.4 2016/12/14 19:13:24 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/bus.h>
@@ -164,11 +164,14 @@ 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_params = &intelfb_drmfb_params,
 	};
 	int error;

Index: src/sys/external/bsd/drm2/include/drm/drmfb.h
diff -u src/sys/external/bsd/drm2/include/drm/drmfb.h:1.1.2.2 src/sys/external/bsd/drm2/include/drm/drmfb.h:1.1.2.3
--- src/sys/external/bsd/drm2/include/drm/drmfb.h:1.1.2.2	Fri Mar  6 21:39:10 2015
+++ src/sys/external/bsd/drm2/include/drm/drmfb.h	Wed Dec 14 19:13:24 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmfb.h,v 1.1.2.2 2015/03/06 21:39:10 snj Exp $	*/
+/*	$NetBSD: drmfb.h,v 1.1.2.3 2016/12/14 19:13:24 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -76,6 +76,7 @@ struct drmfb_attach_args {
 	struct drm_fb_helper		*da_fb_helper;
 	const struct drm_fb_helper_surface_size	*da_fb_sizes;
 	void				*da_fb_vaddr;
+	uint32_t			da_fb_linebytes;
 	const struct drmfb_params	*da_params;
 };
 

Index: src/sys/external/bsd/drm2/nouveau/nouveaufb.c
diff -u src/sys/external/bsd/drm2/nouveau/nouveaufb.c:1.1.2.4 src/sys/external/bsd/drm2/nouveau/nouveaufb.c:1.1.2.5
--- src/sys/external/bsd/drm2/nouveau/nouveaufb.c:1.1.2.4	Thu Feb 11 22:48:22 2016
+++ src/sys/external/bsd/drm2/nouveau/nouveaufb.c	Wed Dec 14 19:13:24 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveaufb.c,v 1.1.2.4 2016/02/11 22:48:22 snj Exp $	*/
+/*	$NetBSD: nouveaufb.c,v 1.1.2.5 2016/12/14 19:13:24 snj Exp $	*/
 
 /*-
  * Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveaufb.c,v 1.1.2.4 2016/02/11 22:48:22 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveaufb.c,v 1.1.2.5 2016/12/14 19:13:24 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/bus.h>
@@ -147,6 +147,7 @@ nouveaufb_attach_task(struct nouveau_pci
 		.da_fb_helper = nfa->nfa_fb_helper,
 		.da_fb_sizes = &nfa->nfa_fb_sizes,
 		.da_fb_vaddr = __UNVOLATILE(nfa->nfa_fb_ptr),
+		.da_fb_linebytes = nfa->nfa_fb_linebytes,
 		.da_params = &nouveaufb_drmfb_params,
 	};
 	int error;

Reply via email to