From: <al...@ke...> - 2008-02-05 10:21:39
|
linux-core/ati_pcigart.c | 3 ++- linux-core/drm_compat.c | 35 +++++++++++++++++++++++++++++++++++ linux-core/drm_compat.h | 2 +- linux-core/drm_crtc.c | 2 +- linux-core/drm_crtc.h | 4 ++-- linux-core/i915_buffer.c | 5 +++++ linux-core/intel_crt.c | 5 ++--- linux-core/intel_fb.c | 1 - shared-core/i915_irq.c | 8 ++++++++ 9 files changed, 56 insertions(+), 9 deletions(-) New commits: commit 53937a189f8dbe2dd82fb97c0e88454d29a6c7cd Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 10:12:21 2008 +0000 build fix for older kernels diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index 9b391b7..836a8c4 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -476,7 +476,11 @@ unlock: * This code is called in a more safe envirmoent to handle the hotplugs. * Add code here for hotplug love to userspace. */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +static void i915_hotplug_work_func(void *work) +#else static void i915_hotplug_work_func(struct work_struct *work) +#endif { struct drm_device *dev = hotplug_dev; int crt; @@ -503,7 +507,11 @@ static void i915_hotplug_work_func(struct work_struct *work) static int i915_run_hotplug_tasklet(struct drm_device *dev, uint32_t stat) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + static DECLARE_WORK(hotplug, i915_hotplug_work_func, NULL); +#else static DECLARE_WORK(hotplug, i915_hotplug_work_func); +#endif struct drm_i915_private *dev_priv = dev->dev_private; hotplug_dev = dev; commit de0084590bc34c2c23cb3d7a754f3e98059f4cf2 Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 10:11:46 2008 +0000 fix some warnings diff --git a/linux-core/intel_crt.c b/linux-core/intel_crt.c index 4be71cb..a9fb50a 100644 --- a/linux-core/intel_crt.c +++ b/linux-core/intel_crt.c @@ -219,11 +219,10 @@ static bool intel_crt_set_property(struct drm_output *output, uint64_t value) { struct drm_device *dev = output->dev; - int i; - if (property == dev->mode_config.dpms_property) { + if (property == dev->mode_config.dpms_property) intel_crt_dpms(output, (uint32_t)(value & 0xf)); - } + return true; } diff --git a/linux-core/intel_fb.c b/linux-core/intel_fb.c index 59df197..6df243b 100644 --- a/linux-core/intel_fb.c +++ b/linux-core/intel_fb.c @@ -490,7 +490,6 @@ static int intelfb_pan_display(struct fb_var_screeninfo *var, { struct intelfb_par *par = info->par; struct drm_crtc *crtc = par->crtc; - struct drm_framebuffer *fb = crtc->fb; DRM_DEBUG("\n"); commit 5e81a40f3b531ef95f84581a40b5a5badd9ee986 Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 10:11:24 2008 +0000 build fix for older kernels diff --git a/linux-core/i915_buffer.c b/linux-core/i915_buffer.c index 54aa75a..ba58688 100644 --- a/linux-core/i915_buffer.c +++ b/linux-core/i915_buffer.c @@ -270,10 +270,12 @@ static inline void clflush(volatile void *__p) static inline void drm_cache_flush_addr(void *virt) { +#ifdef cpu_has_clflush int i; for (i = 0; i < PAGE_SIZE; i += boot_cpu_data.x86_clflush_size) clflush(virt+i); +#endif } static inline void drm_cache_flush_page(struct page *p) @@ -291,6 +293,9 @@ void i915_flush_ttm(struct drm_ttm *ttm) DRM_MEMORYBARRIER(); #ifdef CONFIG_X86_32 +#ifndef cpu_has_clflush +#define cpu_has_clflush 0 +#endif /* Hopefully nobody has built an x86-64 processor without clflush */ if (!cpu_has_clflush) { wbinvd(); commit f2c706e24782940582b75d5286f9bbf2fe37f0cd Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 10:11:01 2008 +0000 Fix function declaration diff --git a/linux-core/drm_crtc.c b/linux-core/drm_crtc.c index 18fa02c..03e5ffe 100644 --- a/linux-core/drm_crtc.c +++ b/linux-core/drm_crtc.c @@ -2299,7 +2299,7 @@ done: return ret; } -int drm_mode_output_update_edid_property(struct drm_output *output, unsigned char *edid) +int drm_mode_output_update_edid_property(struct drm_output *output, struct edid *edid) { struct drm_device *dev = output->dev; int ret = 0; diff --git a/linux-core/drm_crtc.h b/linux-core/drm_crtc.h index 63324ca..3b22e88 100644 --- a/linux-core/drm_crtc.h +++ b/linux-core/drm_crtc.h @@ -592,7 +592,7 @@ extern int drm_mode_vrefresh(struct drm_display_mode *mode); extern void drm_mode_set_crtcinfo(struct drm_display_mode *p, int adjust_flags); extern void drm_mode_output_list_update(struct drm_output *output); -extern int drm_mode_output_update_edid_property(struct drm_output *output, unsigned char *edid); +extern int drm_mode_output_update_edid_property(struct drm_output *output, struct edid *edid); extern struct drm_display_mode *drm_crtc_mode_create(struct drm_device *dev); extern bool drm_initial_config(struct drm_device *dev, bool cangrow); extern void drm_framebuffer_set_object(struct drm_device *dev, commit 7cc825f5946659ad586fd4aa4fd867a1373f3373 Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 10:10:36 2008 +0000 Add missing round_jiffies_relative() for older kernels diff --git a/linux-core/ati_pcigart.c b/linux-core/ati_pcigart.c index c669067..97a5dfb 100644 --- a/linux-core/ati_pcigart.c +++ b/linux-core/ati_pcigart.c @@ -274,7 +274,8 @@ static int ati_pcigart_needs_unbind_cache_adjust(struct drm_ttm_backend *backend static int ati_pcigart_populate(struct drm_ttm_backend *backend, unsigned long num_pages, - struct page **pages) + struct page **pages, + struct page *dummy_page) { ati_pcigart_ttm_backend_t *atipci_be = container_of(backend, ati_pcigart_ttm_backend_t, backend); diff --git a/linux-core/drm_compat.c b/linux-core/drm_compat.c index a745a7d..cd4ff7d 100644 --- a/linux-core/drm_compat.c +++ b/linux-core/drm_compat.c @@ -729,3 +729,38 @@ void *idr_replace(struct idr *idp, void *ptr, int id) } EXPORT_SYMBOL(idr_replace); #endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) +static __inline__ unsigned long __round_jiffies(unsigned long j, int cpu) +{ + int rem; + unsigned long original = j; + + j += cpu * 3; + + rem = j % HZ; + + if (rem < HZ/4) /* round down */ + j = j - rem; + else /* round up */ + j = j - rem + HZ; + + /* now that we have rounded, subtract the extra skew again */ + j -= cpu * 3; + + if (j <= jiffies) /* rounding ate our timeout entirely; */ + return original; + return j; +} + +static __inline__ unsigned long __round_jiffies_relative(unsigned long j, int cpu) +{ + return __round_jiffies(j + jiffies, cpu) - jiffies; +} + +unsigned long round_jiffies_relative(unsigned long j) +{ + return __round_jiffies_relative(j, raw_smp_processor_id()); +} +EXPORT_SYMBOL(round_jiffies_relative); +#endif diff --git a/linux-core/drm_compat.h b/linux-core/drm_compat.h index c3a7048..92dcbc2 100644 --- a/linux-core/drm_compat.h +++ b/linux-core/drm_compat.h @@ -331,4 +331,8 @@ void idr_remove_all(struct idr *idp); void *idr_replace(struct idr *idp, void *ptr, int id); #endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) +extern unsigned long round_jiffies_relative(unsigned long j); +#endif + #endif commit c9772f8c037667ed3586337f90904e7978f8ab14 Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 09:28:51 2008 +0000 consistency diff --git a/linux-core/drm_crtc.h b/linux-core/drm_crtc.h index 8f6a893..63324ca 100644 --- a/linux-core/drm_crtc.h +++ b/linux-core/drm_crtc.h @@ -259,7 +259,7 @@ struct drm_property_blob { struct drm_property_enum { uint64_t value; struct list_head head; - unsigned char name[DRM_PROP_NAME_LEN]; + char name[DRM_PROP_NAME_LEN]; }; struct drm_property { commit 709aa4629321533bfa30c72c4e33f229c895358a Author: Alan Hourihane <al...@tu...> Date: Tue Feb 5 09:28:32 2008 +0000 Remove duplicate diff --git a/linux-core/drm_compat.h b/linux-core/drm_compat.h index 3f3abc9..c3a7048 100644 --- a/linux-core/drm_compat.h +++ b/linux-core/drm_compat.h @@ -331,8 +331,4 @@ void idr_remove_all(struct idr *idp); void *idr_replace(struct idr *idp, void *ptr, int id); #endif -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) -typedef _Bool bool; -#endif - #endif |