From f91121b48fda4bba7eb298c51e9a871ec9c538d7 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 11 Sep 2014 08:22:06 -0700 Subject: [PATCH] greybus: Fix build errors on older kernels. Thanks to Marti for pointing out the code didn't build properly on 3.10. Added kernel_ver.h to handle any api mis-matches between the code and older kernel versions. --- drivers/staging/greybus/gpio-gb.c | 5 +++-- drivers/staging/greybus/kernel_ver.h | 22 ++++++++++++++++++++++ drivers/staging/greybus/sysfs.c | 2 ++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 drivers/staging/greybus/kernel_ver.h diff --git a/drivers/staging/greybus/gpio-gb.c b/drivers/staging/greybus/gpio-gb.c index 3428220..bcf65087 100644 --- a/drivers/staging/greybus/gpio-gb.c +++ b/drivers/staging/greybus/gpio-gb.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include "greybus.h" struct gb_gpio_device { @@ -90,10 +90,11 @@ int gb_gpio_probe(struct greybus_device *gdev, void gb_gpio_disconnect(struct greybus_device *gdev) { struct gb_gpio_device *gb_gpio_dev; + int retval; gb_gpio_dev = gdev->gb_gpio_dev; - gpiochip_remove(&gb_gpio_dev->chip); + retval = gpiochip_remove(&gb_gpio_dev->chip); kfree(gb_gpio_dev); } diff --git a/drivers/staging/greybus/kernel_ver.h b/drivers/staging/greybus/kernel_ver.h new file mode 100644 index 0000000..40cc2e8 --- /dev/null +++ b/drivers/staging/greybus/kernel_ver.h @@ -0,0 +1,22 @@ +/* + * Greybus kernel "version" glue logic. + * + * Copyright 2014 Google Inc. + * + * Released under the GPLv2 only. + * + * Backports of newer kernel apis to allow the code to build properly on older + * kernel versions. Remove this file when merging to upstream, it should not be + * needed at all + */ + +#ifndef __GREYBUS_KERNEL_VER_H +#define __GREYBUS_KERNEL_VER_H + +#ifndef DEVICE_ATTR_RO +#define DEVICE_ATTR_RO(_name) \ + struct device_attribute dev_attr_##_name = __ATTR_RO(_name) +#endif + + +#endif /* __GREYBUS_KERNEL_VER_H */ diff --git a/drivers/staging/greybus/sysfs.c b/drivers/staging/greybus/sysfs.c index 2393a6a..c02ca55 100644 --- a/drivers/staging/greybus/sysfs.c +++ b/drivers/staging/greybus/sysfs.c @@ -18,6 +18,8 @@ #include "greybus.h" +#include "kernel_ver.h" + /* Function fields */ #define greybus_function_attr(field) \ static ssize_t function_##field##_show(struct device *dev, \ -- 2.7.4