Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-7]: src/sys/external/bsd/drm2 Pull up following revision(s) (requ...



details:   https://anonhg.NetBSD.org/src/rev/8102f18022f6
branches:  netbsd-7
changeset: 800065:8102f18022f6
user:      snj <snj%NetBSD.org@localhost>
date:      Wed Dec 14 19:13:24 2016 +0000

description:
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

diffstat:

 sys/external/bsd/drm2/drm/drmfb.c         |  8 +++-----
 sys/external/bsd/drm2/i915drm/intelfb.c   |  7 +++++--
 sys/external/bsd/drm2/include/drm/drmfb.h |  3 ++-
 sys/external/bsd/drm2/nouveau/nouveaufb.c |  5 +++--
 4 files changed, 13 insertions(+), 10 deletions(-)

diffs (105 lines):

diff -r 93ceb6335420 -r 8102f18022f6 sys/external/bsd/drm2/drm/drmfb.c
--- a/sys/external/bsd/drm2/drm/drmfb.c Wed Dec 14 10:52:38 2016 +0000
+++ b/sys/external/bsd/drm2/drm/drmfb.c Wed Dec 14 19:13:24 2016 +0000
@@ -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 @@
        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",
diff -r 93ceb6335420 -r 8102f18022f6 sys/external/bsd/drm2/i915drm/intelfb.c
--- a/sys/external/bsd/drm2/i915drm/intelfb.c   Wed Dec 14 10:52:38 2016 +0000
+++ b/sys/external/bsd/drm2/i915drm/intelfb.c   Wed Dec 14 19:13:24 2016 +0000
@@ -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 @@
        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;
diff -r 93ceb6335420 -r 8102f18022f6 sys/external/bsd/drm2/include/drm/drmfb.h
--- a/sys/external/bsd/drm2/include/drm/drmfb.h Wed Dec 14 10:52:38 2016 +0000
+++ b/sys/external/bsd/drm2/include/drm/drmfb.h Wed Dec 14 19:13:24 2016 +0000
@@ -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 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;
 };
 
diff -r 93ceb6335420 -r 8102f18022f6 sys/external/bsd/drm2/nouveau/nouveaufb.c
--- a/sys/external/bsd/drm2/nouveau/nouveaufb.c Wed Dec 14 10:52:38 2016 +0000
+++ b/sys/external/bsd/drm2/nouveau/nouveaufb.c Wed Dec 14 19:13:24 2016 +0000
@@ -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 @@
                .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;



Home | Main Index | Thread Index | Old Index