From eca21e63590c165c5aaf14cbd51c7f325b731aba Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 20 Dec 2010 12:24:36 -0600 Subject: meta-emenlow: update to the new BSP layout This modifies the meta-emenlow BSP layer to reflect the new BSP standard layout as defined in the latestYocto BSP Developer's Guide. There's no change in functionality here - this simply moves things around, adds a README, and makes the SRCREVs local. Signed-off-by: Tom Zanussi --- .../psb-kernel-source-4.42.0/build.patch | 175 +++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source-4.42.0/build.patch (limited to 'meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source-4.42.0/build.patch') diff --git a/meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source-4.42.0/build.patch b/meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source-4.42.0/build.patch new file mode 100644 index 000000000..ce6f2aa41 --- /dev/null +++ b/meta-emenlow/recipes-graphics/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 ++#include + + /* 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 + */ + ++#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 + #include + #include ++#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 + #include ++#include + #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) -- cgit v1.2.3