diff options
author | Michael Buesch <mb@bu3sch.de> | 2009-05-11 00:21:14 +0200 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2009-05-28 17:26:37 +1000 |
commit | 651e3dc6dd58a79c90db7513ee2fb28360a4560d (patch) | |
tree | 54847b5fc4bc81ca56acb2af04ab728c1bda401f /linux-core | |
parent | c65a343ed29c24f812ca919f40dfeee948b6f14a (diff) |
drm: Fix compilation on 2.6.30
This fixes DRM compilation of nouveau.ko on kernel 2.6.30.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Diffstat (limited to 'linux-core')
-rw-r--r-- | linux-core/drm_os_linux.h | 19 | ||||
-rw-r--r-- | linux-core/drm_sysfs.c | 8 |
2 files changed, 24 insertions, 3 deletions
diff --git a/linux-core/drm_os_linux.h b/linux-core/drm_os_linux.h index f58296b7..be5e0991 100644 --- a/linux-core/drm_os_linux.h +++ b/linux-core/drm_os_linux.h @@ -32,12 +32,29 @@ /** 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 +#if !defined(IRQ_HANDLED) && LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,29) typedef void irqreturn_t; #define IRQ_HANDLED /* nothing */ #define IRQ_NONE /* nothing */ #endif +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,25) +static inline const char *dev_name(const struct device *dev) +{ + return dev->bus_id; +} +static inline int dev_set_name(struct device *dev, const char *name, ...) +{ + va_list vargs; + + va_start(vargs, name); + vsnprintf(dev->bus_id, sizeof(dev->bus_id), name, vargs); + va_end(vargs); + + return 0; +} +#endif + /** AGP types */ #if __OS_HAS_AGP #define DRM_AGP_MEM struct agp_memory diff --git a/linux-core/drm_sysfs.c b/linux-core/drm_sysfs.c index 6de93679..e9e7a316 100644 --- a/linux-core/drm_sysfs.c +++ b/linux-core/drm_sysfs.c @@ -168,8 +168,12 @@ int drm_sysfs_device_add(struct drm_minor *minor) minor->kdev.release = drm_sysfs_device_release; minor->kdev.devt = minor->device; minor_str = "card%d"; - - snprintf(minor->kdev.bus_id, BUS_ID_SIZE, minor_str, minor->index); + + err = dev_set_name(&minor->kdev, minor_str, minor->index); + if (err) { + DRM_ERROR("device set name failed: %d\n", err); + goto err_out; + } err = device_register(&minor->kdev); if (err) { |