summaryrefslogtreecommitdiffstats
path: root/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch')
-rw-r--r--meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch175
1 files changed, 175 insertions, 0 deletions
diff --git a/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch b/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch
new file mode 100644
index 0000000000..ce6f2aa41b
--- /dev/null
+++ b/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch
@@ -0,0 +1,175 @@
1# These are various fixes needed to make the psb kernel driver build against
2# 2.6.33.2.
3# The Makefile patch is specific to the Poky environment - the external kernel
4# module build expects the kernel tree it's building against to have fixdep
5# and modpost built, which isn't the case here. So, the modules rule makes
6# sure that they are built before the module is built.
7# Aside from that, the changes involve adding missing header files and
8# compensating for a structure field changing name and type.
9
10Index: psb-kernel-source-4.42.0/drm_os_linux.h
11===================================================================
12--- psb-kernel-source-4.42.0.orig/drm_os_linux.h
13+++ psb-kernel-source-4.42.0/drm_os_linux.h
14@@ -50,12 +50,6 @@
15
16 /** IRQ handler arguments and return type and values */
17 #define DRM_IRQ_ARGS int irq, void *arg
18-/** backwards compatibility with old irq return values */
19-#ifndef IRQ_HANDLED
20-typedef void irqreturn_t;
21-#define IRQ_HANDLED /* nothing */
22-#define IRQ_NONE /* nothing */
23-#endif
24
25 /** AGP types */
26 #if __OS_HAS_AGP
27Index: psb-kernel-source-4.42.0/Makefile
28===================================================================
29--- psb-kernel-source-4.42.0.orig/Makefile
30+++ psb-kernel-source-4.42.0/Makefile
31@@ -165,7 +165,10 @@ endif
32 all: modules
33
34 modules: includes
35- +make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
36+ +make -C $(LINUXDIR)/scripts/basic fixdep
37+# +make -C $(LINUXDIR) SUBDIRS=scripts/mod modpost
38+ +make -C $(LINUXDIR) SUBDIRS=scripts
39+ +make -k -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
40
41 ifeq ($(HEADERFROMBOOT),1)
42
43@@ -243,7 +246,7 @@ dristat: dristat.c
44 drmstat: drmstat.c
45 $(CC) $(PRGCFLAGS) $< -o $@ $(DRMSTATLIBS)
46
47-install:
48+modules_install:
49 make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules_install
50
51 else
52Index: psb-kernel-source-4.42.0/drm_edid.c
53===================================================================
54--- psb-kernel-source-4.42.0.orig/drm_edid.c
55+++ psb-kernel-source-4.42.0/drm_edid.c
56@@ -11,6 +11,7 @@
57 #include "drm_edid.h"
58
59 #include <acpi/acpi_drivers.h>
60+#include <linux/i2c.h>
61
62 /* Valid EDID header has these bytes */
63 static u8 edid_header[] = { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 };
64@@ -39,7 +40,7 @@ int drm_get_acpi_edid(char *method, char
65 if (obj && obj->type == ACPI_TYPE_BUFFER)
66 memcpy(edid, obj->buffer.pointer, obj->buffer.length);
67 else {
68- printk(KERN_ERR PREFIX "Invalid _DDC data\n");
69+ printk(KERN_ERR "Invalid _DDC data\n");
70 status = -EFAULT;
71 kfree(obj);
72 }
73Index: psb-kernel-source-4.42.0/drm_ttm.c
74===================================================================
75--- psb-kernel-source-4.42.0.orig/drm_ttm.c
76+++ psb-kernel-source-4.42.0/drm_ttm.c
77@@ -28,6 +28,8 @@
78 * Authors: Thomas Hellström <thomas-at-tungstengraphics-dot-com>
79 */
80
81+#include "linux/spinlock.h"
82+#include "asm/agp.h"
83 #include "drmP.h"
84
85 static void drm_ttm_ipi_handler(void *null)
86Index: psb-kernel-source-4.42.0/psb_drv.c
87===================================================================
88--- psb-kernel-source-4.42.0.orig/psb_drv.c
89+++ psb-kernel-source-4.42.0/psb_drv.c
90@@ -34,8 +34,10 @@
91 #include <linux/cpu.h>
92 #include <linux/notifier.h>
93 #include <linux/fb.h>
94+#include "linux/spinlock.h"
95+#include "asm/agp.h"
96
97-int drm_psb_debug = 0;
98+int drm_psb_debug = 255;
99 EXPORT_SYMBOL(drm_psb_debug);
100 static int drm_psb_trap_pagefaults = 0;
101 static int drm_psb_clock_gating = 0;
102Index: psb-kernel-source-4.42.0/intel_lvds.c
103===================================================================
104--- psb-kernel-source-4.42.0.orig/intel_lvds.c
105+++ psb-kernel-source-4.42.0/intel_lvds.c
106@@ -29,6 +29,7 @@
107
108 #include <linux/i2c.h>
109 #include <linux/backlight.h>
110+#include <linux/i2c.h>
111 #include "drm_crtc.h"
112 #include "drm_edid.h"
113 #include "intel_lvds.h"
114Index: psb-kernel-source-4.42.0/drm_memory.c
115===================================================================
116--- psb-kernel-source-4.42.0.orig/drm_memory.c
117+++ psb-kernel-source-4.42.0/drm_memory.c
118@@ -264,9 +264,9 @@ static void *agp_remap(unsigned long off
119 return NULL;
120
121 phys_addr_map =
122- agpmem->memory->memory + (offset - agpmem->bound) / PAGE_SIZE;
123+ agpmem->memory->pages + (offset - agpmem->bound) / PAGE_SIZE;
124 for (i = 0; i < num_pages; ++i)
125- page_map[i] = pfn_to_page(phys_addr_map[i] >> PAGE_SHIFT);
126+ page_map[i] = phys_addr_map[i];
127 addr = vmap(page_map, num_pages, VM_IOREMAP, PAGE_AGP);
128 vfree(page_map);
129
130Index: psb-kernel-source-4.42.0/drm_agpsupport.c
131===================================================================
132--- psb-kernel-source-4.42.0.orig/drm_agpsupport.c
133+++ psb-kernel-source-4.42.0/drm_agpsupport.c
134@@ -524,7 +524,7 @@ static int drm_agp_populate(struct drm_t
135 DRM_DEBUG("Current page count is %ld\n", (long) mem->page_count);
136 mem->page_count = 0;
137 for (cur_page = pages; cur_page < last_page; ++cur_page)
138- mem->pages[mem->page_count++] = phys_to_gart(page_to_phys(*cur_page));
139+ mem->pages[mem->page_count++] = page_to_phys(*cur_page);
140 agp_be->mem = mem;
141 return 0;
142 }
143Index: psb-kernel-source-4.42.0/drm_vm.c
144===================================================================
145--- psb-kernel-source-4.42.0.orig/drm_vm.c
146+++ psb-kernel-source-4.42.0/drm_vm.c
147@@ -145,13 +145,13 @@ static int drm_do_vm_fault(struct vm_are
148 * Get the page, inc the use count, and return it
149 */
150 offset = (baddr - agpmem->bound) >> PAGE_SHIFT;
151- page = virt_to_page(__va(agpmem->memory->memory[offset]));
152+ page = agpmem->memory->pages[offset];
153 get_page(page);
154 vmf->page = page;
155
156 DRM_DEBUG
157 ("baddr = 0x%lx page = 0x%p, offset = 0x%lx, count=%d\n",
158- baddr, __va(agpmem->memory->memory[offset]), offset,
159+ baddr, agpmem->memory->pages[offset], offset,
160 page_count(page));
161 return 0;
162 }
163Index: psb-kernel-source-4.42.0/psb_drv.h
164===================================================================
165--- psb-kernel-source-4.42.0.orig/psb_drv.h
166+++ psb-kernel-source-4.42.0/psb_drv.h
167@@ -809,7 +809,7 @@ extern int drm_psb_detear;
168 #define PSB_DEBUG(_flag, _fmt, _arg...) \
169 do { \
170 if (unlikely((_flag) & drm_psb_debug)) \
171- printk(KERN_DEBUG \
172+ printk(KERN_ERR \
173 "[psb:0x%02x:%s] " _fmt , _flag, \
174 __FUNCTION__ , ##_arg); \
175 } while (0)