Source-Changes-HG archive

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

[src/trunk]: src/sys/external/bsd/drm2/dist/drm/i915 Fix up intel_bios.c.



details:   https://anonhg.NetBSD.org/src/rev/b6d850394b97
branches:  trunk
changeset: 835018:b6d850394b97
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Mon Aug 27 07:19:55 2018 +0000

description:
Fix up intel_bios.c.

diffstat:

 sys/external/bsd/drm2/dist/drm/i915/intel_bios.c |  39 ++++++++++++++++-------
 1 files changed, 27 insertions(+), 12 deletions(-)

diffs (119 lines):

diff -r 224bdac45034 -r b6d850394b97 sys/external/bsd/drm2/dist/drm/i915/intel_bios.c
--- a/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c  Mon Aug 27 07:19:44 2018 +0000
+++ b/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c  Mon Aug 27 07:19:55 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: intel_bios.c,v 1.6 2018/08/27 04:58:24 riastradh Exp $ */
+/*     $NetBSD: intel_bios.c,v 1.7 2018/08/27 07:19:55 riastradh Exp $ */
 
 /*
  * Copyright © 2006 Intel Corporation
@@ -27,7 +27,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_bios.c,v 1.6 2018/08/27 04:58:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_bios.c,v 1.7 2018/08/27 07:19:55 riastradh Exp $");
 
 #include <linux/dmi.h>
 #include <drm/drm_dp_helper.h>
@@ -81,9 +81,10 @@
 static u16
 get_blocksize(const void *p)
 {
-       u16 *block_ptr, block_size;
+       const u16 *block_ptr;
+       u16 block_size;
 
-       block_ptr = (u16 *)((char *)p - 2);
+       block_ptr = (const u16 *)((const char *)p - 2);
        block_size = *block_ptr;
        return block_size;
 }
@@ -838,7 +839,7 @@
         */
        for (i = 0; i < MAX_MIPI_CONFIGURATIONS; i++) {
                panel_id = *seq_data;
-               seq_size = *((u16 *) (seq_data + 1));
+               seq_size = *((const u16 *) (seq_data + 1));
                if (panel_id == panel_type)
                        break;
 
@@ -1255,7 +1256,7 @@
                                             const void *_vbt,
                                             const char *source)
 {
-       size_t offset = _vbt - base;
+       size_t offset = (const char *)_vbt - (const char *)base;
        const struct vbt_header *vbt = _vbt;
        const struct bdb_header *bdb;
 
@@ -1275,7 +1276,7 @@
                return NULL;
        }
 
-       bdb = base + offset;
+       bdb = (const void *)((const char *)base + offset);
        if (offset + bdb->bdb_size > size) {
                DRM_DEBUG_DRIVER("BDB incomplete\n");
                return NULL;
@@ -1286,6 +1287,21 @@
        return bdb;
 }
 
+#ifdef __NetBSD__
+#  define      __iomem __pci_rom_iomem
+#  define      ioread32        fake_ioread32
+static inline uint32_t
+fake_ioread32(const void __iomem *p)
+{
+       uint32_t v;
+
+       v = *(const uint32_t __iomem *)p;
+       __insn_barrier();
+
+       return v;
+}
+#endif
+
 static const struct bdb_header *find_vbt(void __iomem *bios, size_t size)
 {
        const struct bdb_header *bdb = NULL;
@@ -1293,7 +1309,7 @@
 
        /* Scour memory looking for the VBT signature. */
        for (i = 0; i + 4 < size; i++) {
-               if (ioread32(bios + i) == *((const u32 *) "$VBT")) {
+               if (ioread32((char __iomem *)bios + i) == *((const u32 *) "$VBT")) {
                        /*
                         * This is the one place where we explicitly discard the
                         * address space (__iomem) of the BIOS/VBT. From now on
@@ -1302,7 +1318,7 @@
                         */
                        void *_bios = (void __force *) bios;
 
-                       bdb = validate_vbt(_bios, size, _bios + i, "PCI ROM");
+                       bdb = validate_vbt(_bios, size, (char *)_bios + i, "PCI ROM");
                        break;
                }
        }
@@ -1319,9 +1335,6 @@
  *
  * Returns 0 on success, nonzero on failure.
  */
-#ifdef __NetBSD__
-#  define      __iomem __pci_rom_iomem
-#endif
 int
 intel_parse_bios(struct drm_device *dev)
 {
@@ -1373,8 +1386,10 @@
 
        return 0;
 }
+
 #ifdef __NetBSD__
 #  undef       __iomem
+#  undef       ioread32
 #endif
 
 /**



Home | Main Index | Thread Index | Old Index