summaryrefslogtreecommitdiffstats
path: root/meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source-4.42.0/build.patch
blob: ce6f2aa41b916360595130ff16354ec280cade6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# These are various fixes needed to make the psb kernel driver build against
# 2.6.33.2.
# The Makefile patch is specific to the Poky environment - the external kernel
# module build expects the kernel tree it's building against to have fixdep
# and modpost built, which isn't the case here.  So, the modules rule makes
# sure that they are built before the module is built.
# Aside from that, the changes involve adding missing header files and 
# compensating for a structure field changing name and type.

Index: psb-kernel-source-4.42.0/drm_os_linux.h
===================================================================
--- psb-kernel-source-4.42.0.orig/drm_os_linux.h
+++ psb-kernel-source-4.42.0/drm_os_linux.h
@@ -50,12 +50,6 @@
 
 /** IRQ handler arguments and return type and values */
 #define DRM_IRQ_ARGS		int irq, void *arg
-/** backwards compatibility with old irq return values */
-#ifndef IRQ_HANDLED
-typedef void irqreturn_t;
-#define IRQ_HANDLED		/* nothing */
-#define IRQ_NONE		/* nothing */
-#endif
 
 /** AGP types */
 #if __OS_HAS_AGP
Index: psb-kernel-source-4.42.0/Makefile
===================================================================
--- psb-kernel-source-4.42.0.orig/Makefile
+++ psb-kernel-source-4.42.0/Makefile
@@ -165,7 +165,10 @@ endif
 all: modules
 
 modules: includes
-	+make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
+	+make -C $(LINUXDIR)/scripts/basic fixdep
+#	+make -C $(LINUXDIR) SUBDIRS=scripts/mod modpost
+	+make -C $(LINUXDIR) SUBDIRS=scripts
+	+make -k -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
 
 ifeq ($(HEADERFROMBOOT),1)
 
@@ -243,7 +246,7 @@ dristat: dristat.c
 drmstat: drmstat.c
 	$(CC) $(PRGCFLAGS) $< -o $@ $(DRMSTATLIBS)
 
-install:
+modules_install:
 	make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules_install
 
 else
Index: psb-kernel-source-4.42.0/drm_edid.c
===================================================================
--- psb-kernel-source-4.42.0.orig/drm_edid.c
+++ psb-kernel-source-4.42.0/drm_edid.c
@@ -11,6 +11,7 @@
 #include "drm_edid.h"
 
 #include <acpi/acpi_drivers.h>
+#include <linux/i2c.h>
 
 /* Valid EDID header has these bytes */
 static u8 edid_header[] = { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 };
@@ -39,7 +40,7 @@ int drm_get_acpi_edid(char *method, char
 	if (obj && obj->type == ACPI_TYPE_BUFFER)
 		memcpy(edid, obj->buffer.pointer, obj->buffer.length);
 	else {
-		printk(KERN_ERR PREFIX "Invalid _DDC data\n");
+		printk(KERN_ERR "Invalid _DDC data\n");
 		status = -EFAULT;
 		kfree(obj);
 	}
Index: psb-kernel-source-4.42.0/drm_ttm.c
===================================================================
--- psb-kernel-source-4.42.0.orig/drm_ttm.c
+++ psb-kernel-source-4.42.0/drm_ttm.c
@@ -28,6 +28,8 @@
  * Authors: Thomas Hellstr�m <thomas-at-tungstengraphics-dot-com>
  */
 
+#include "linux/spinlock.h"
+#include "asm/agp.h"
 #include "drmP.h"
 
 static void drm_ttm_ipi_handler(void *null)
Index: psb-kernel-source-4.42.0/psb_drv.c
===================================================================
--- psb-kernel-source-4.42.0.orig/psb_drv.c
+++ psb-kernel-source-4.42.0/psb_drv.c
@@ -34,8 +34,10 @@
 #include <linux/cpu.h>
 #include <linux/notifier.h>
 #include <linux/fb.h>
+#include "linux/spinlock.h"
+#include "asm/agp.h"
 
-int drm_psb_debug = 0;
+int drm_psb_debug = 255;
 EXPORT_SYMBOL(drm_psb_debug);
 static int drm_psb_trap_pagefaults = 0;
 static int drm_psb_clock_gating = 0;
Index: psb-kernel-source-4.42.0/intel_lvds.c
===================================================================
--- psb-kernel-source-4.42.0.orig/intel_lvds.c
+++ psb-kernel-source-4.42.0/intel_lvds.c
@@ -29,6 +29,7 @@
 
 #include <linux/i2c.h>
 #include <linux/backlight.h>
+#include <linux/i2c.h>
 #include "drm_crtc.h"
 #include "drm_edid.h"
 #include "intel_lvds.h"
Index: psb-kernel-source-4.42.0/drm_memory.c
===================================================================
--- psb-kernel-source-4.42.0.orig/drm_memory.c
+++ psb-kernel-source-4.42.0/drm_memory.c
@@ -264,9 +264,9 @@ static void *agp_remap(unsigned long off
 		return NULL;
 
 	phys_addr_map =
-	    agpmem->memory->memory + (offset - agpmem->bound) / PAGE_SIZE;
+	    agpmem->memory->pages + (offset - agpmem->bound) / PAGE_SIZE;
 	for (i = 0; i < num_pages; ++i)
-		page_map[i] = pfn_to_page(phys_addr_map[i] >> PAGE_SHIFT);
+                page_map[i] = phys_addr_map[i];
 	addr = vmap(page_map, num_pages, VM_IOREMAP, PAGE_AGP);
 	vfree(page_map);
 
Index: psb-kernel-source-4.42.0/drm_agpsupport.c
===================================================================
--- psb-kernel-source-4.42.0.orig/drm_agpsupport.c
+++ psb-kernel-source-4.42.0/drm_agpsupport.c
@@ -524,7 +524,7 @@ static int drm_agp_populate(struct drm_t
 	DRM_DEBUG("Current page count is %ld\n", (long) mem->page_count);
 	mem->page_count = 0;
 	for (cur_page = pages; cur_page < last_page; ++cur_page)
-		mem->pages[mem->page_count++] = phys_to_gart(page_to_phys(*cur_page));
+		mem->pages[mem->page_count++] = page_to_phys(*cur_page);
 	agp_be->mem = mem;
 	return 0;
 }
Index: psb-kernel-source-4.42.0/drm_vm.c
===================================================================
--- psb-kernel-source-4.42.0.orig/drm_vm.c
+++ psb-kernel-source-4.42.0/drm_vm.c
@@ -145,13 +145,13 @@ static int drm_do_vm_fault(struct vm_are
 		 * Get the page, inc the use count, and return it
 		 */
 		offset = (baddr - agpmem->bound) >> PAGE_SHIFT;
-		page = virt_to_page(__va(agpmem->memory->memory[offset]));
+		page = agpmem->memory->pages[offset];
 		get_page(page);
 		vmf->page = page;
 
 		DRM_DEBUG
 		    ("baddr = 0x%lx page = 0x%p, offset = 0x%lx, count=%d\n",
-		     baddr, __va(agpmem->memory->memory[offset]), offset,
+		     baddr, agpmem->memory->pages[offset], offset,
 		     page_count(page));
 		return 0;
 	}
Index: psb-kernel-source-4.42.0/psb_drv.h
===================================================================
--- psb-kernel-source-4.42.0.orig/psb_drv.h
+++ psb-kernel-source-4.42.0/psb_drv.h
@@ -809,7 +809,7 @@ extern int drm_psb_detear;
 #define PSB_DEBUG(_flag, _fmt, _arg...)					\
 	do {								\
 	  if (unlikely((_flag) & drm_psb_debug))			\
-			printk(KERN_DEBUG				\
+			printk(KERN_ERR				\
 			       "[psb:0x%02x:%s] " _fmt , _flag,	\
 			       __FUNCTION__ , ##_arg);			\
 	} while (0)