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.
This commit is contained in:
Greg Kroah-Hartman 2014-09-11 08:22:06 -07:00
parent 3d5453261b
commit f91121b48f
3 changed files with 27 additions and 2 deletions

View File

@ -10,7 +10,7 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/gpio.h>
#include <linux/gpio/driver.h>
#include <linux/gpio.h>
#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);
}

View File

@ -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 */

View File

@ -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, \