* Released under the GPLv2 only.
*/
-#include <linux/version.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
* and new apis in the same driver for now, until this is merged
* upstream, when all of these version checks can be removed.
*/
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
+#ifdef DRIVER_OWNS_PSY_STRUCT
struct power_supply bat;
#define to_gb_battery(x) container_of(x, struct gb_battery, bat)
#else
POWER_SUPPLY_PROP_VOLTAGE_NOW,
};
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
+#ifdef DRIVER_OWNS_PSY_STRUCT
static int init_and_register(struct gb_connection *connection,
struct gb_battery *gb)
{
{
struct gb_battery *gb = connection->private;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
+#ifdef DRIVER_OWNS_PSY_STRUCT
power_supply_unregister(&gb->bat);
#else
power_supply_unregister(gb->bat);
#define __GREYBUS_KERNEL_VER_H
#include <linux/kernel.h>
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
+/* Commit: 297d716 power_supply: Change ownership from driver to core */
+#define DRIVER_OWNS_PSY_STRUCT
+#endif
#ifndef __ATTR_WO
#define __ATTR_WO(_name) { \
* 3.17, which they explicitly changed in the 3.17 kernel. Consistency is
* overrated.
*/
-#include <linux/version.h>
#include <linux/gpio.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)