summaryrefslogtreecommitdiff
path: root/meta-emenlow/recipes/psb-kernel-source
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-11-02 10:08:00 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-11-02 10:08:00 +0000
commit01518ada4b0ca1571f4b4d21c884b02e9371da62 (patch)
tree25235b628ee04807ada4ef3ada76d4b534a8bb1a /meta-emenlow/recipes/psb-kernel-source
parentc90c0ceca50fee19e683c19468110fba51da6cfe (diff)
downloadopenembedded-core-01518ada4b0ca1571f4b4d21c884b02e9371da62.tar.gz
openembedded-core-01518ada4b0ca1571f4b4d21c884b02e9371da62.tar.bz2
openembedded-core-01518ada4b0ca1571f4b4d21c884b02e9371da62.tar.xz
openembedded-core-01518ada4b0ca1571f4b4d21c884b02e9371da62.zip
meta-emenlow: Rename packages to recipes in line with main repository
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta-emenlow/recipes/psb-kernel-source')
-rw-r--r--meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch175
-rw-r--r--meta-emenlow/recipes/psb-kernel-source/psb-kernel-source_4.42.0.bb24
2 files changed, 199 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 000000000..ce6f2aa41
--- /dev/null
+++ b/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch
@@ -0,0 +1,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)
diff --git a/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source_4.42.0.bb b/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source_4.42.0.bb
new file mode 100644
index 000000000..5c1a3e1c2
--- /dev/null
+++ b/meta-emenlow/recipes/psb-kernel-source/psb-kernel-source_4.42.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Kernel module for the Poulsbo (psb) 2D X11 driver"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://GPLv2_License.txt;md5=f5ca3155cfeaa64a6ea228b11ad6916d"
+PR = "r1"
+
+inherit module
+
+SRC_URI = "https://launchpad.net/~gma500/+archive/ppa/+files/psb-kernel-source_4.42.0-0ubuntu2~1004um2.tar.gz \
+ file://build.patch;patch=1"
+
+do_compile () {
+ oe_runmake LINUXDIR=${STAGING_KERNEL_DIR} DRM_MODULES="psb"
+}
+
+do_install () {
+ mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/extra
+ cp ${WORKDIR}/${PN}-${PV}/*.ko ${D}/lib/modules/${KERNEL_VERSION}/extra
+}
+
+FILES_${PN} += "${base_libdir}/modules/${KERNEL_VERSION}/extra/*.ko"
+
+DEPENDS += "virtual/kernel"
+
+COMPATIBLE_MACHINE = "emenlow"