summaryrefslogtreecommitdiffstats
path: root/0004-device-property-keep-single-value-inplace.patch
diff options
context:
space:
mode:
authorLaura Abbott <labbott@fedoraproject.org>2016-01-05 08:35:12 -0800
committerLaura Abbott <labbott@fedoraproject.org>2016-01-05 08:35:14 -0800
commit597938b6aabbba29b6d0cac84fe44d2648faff53 (patch)
tree9856c8e3134a2d452fd0f557d8cad6726fdd14c7 /0004-device-property-keep-single-value-inplace.patch
parent94beff34d1612edbd141baafed867613860eee79 (diff)
downloadkernel-597938b6aabbba29b6d0cac84fe44d2648faff53.tar.gz
kernel-597938b6aabbba29b6d0cac84fe44d2648faff53.tar.xz
kernel-597938b6aabbba29b6d0cac84fe44d2648faff53.zip
Drop patches for Lenovo Yoga Touchpad (rhbz 1275718)
These patches break the touchpad on Dell Inspiron 7559. Drop until they make it in.
Diffstat (limited to '0004-device-property-keep-single-value-inplace.patch')
-rw-r--r--0004-device-property-keep-single-value-inplace.patch123
1 files changed, 0 insertions, 123 deletions
diff --git a/0004-device-property-keep-single-value-inplace.patch b/0004-device-property-keep-single-value-inplace.patch
deleted file mode 100644
index 39f07cac2..000000000
--- a/0004-device-property-keep-single-value-inplace.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 66586baba56679baa2da1a10a96ccf15b1e96b95 Mon Sep 17 00:00:00 2001
-From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Date: Mon, 30 Nov 2015 17:11:32 +0200
-Subject: [PATCH 04/16] device property: keep single value inplace
-
-We may save a lot of lines of code and space by keeping single values inside
-the struct property_entry. Refactor the implementation to do so.
-
-Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
----
- drivers/base/property.c | 33 ++++++++++++++++++++++++++++++---
- include/linux/property.h | 31 +++++++++++++++++++++++--------
- 2 files changed, 53 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/base/property.c b/drivers/base/property.c
-index 86834bd..ad3cb09 100644
---- a/drivers/base/property.c
-+++ b/drivers/base/property.c
-@@ -72,7 +72,10 @@ static void *pset_prop_find(struct property_set *pset, const char *propname,
- prop = pset_prop_get(pset, propname);
- if (!prop)
- return ERR_PTR(-EINVAL);
-- pointer = prop->value.raw_data;
-+ if (prop->is_array)
-+ pointer = prop->pointer.raw_data;
-+ else
-+ pointer = &prop->value.raw_data;
- if (!pointer)
- return ERR_PTR(-ENODATA);
- if (length > prop->length)
-@@ -167,6 +170,31 @@ static int pset_prop_read_string_array(struct property_set *pset,
- return 0;
- }
-
-+static int pset_prop_read_string(struct property_set *pset,
-+ const char *propname, const char **strings)
-+{
-+ struct property_entry *prop;
-+ const char **pointer;
-+
-+ prop = pset_prop_get(pset, propname);
-+ if (!prop)
-+ return -EINVAL;
-+ if (!prop->is_string)
-+ return -EILSEQ;
-+ if (prop->is_array) {
-+ pointer = prop->pointer.str;
-+ if (!pointer)
-+ return -ENODATA;
-+ } else {
-+ pointer = &prop->value.str;
-+ if (*pointer && strnlen(*pointer, prop->length) >= prop->length)
-+ return -EILSEQ;
-+ }
-+
-+ *strings = *pointer;
-+ return 0;
-+}
-+
- static inline struct fwnode_handle *dev_fwnode(struct device *dev)
- {
- return IS_ENABLED(CONFIG_OF) && dev->of_node ?
-@@ -566,8 +594,7 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode,
- return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
- val, 1);
- else if (is_pset_node(fwnode))
-- return pset_prop_read_string_array(to_pset_node(fwnode),
-- propname, val, 1);
-+ return pset_prop_read_string(to_pset_node(fwnode), propname, val);
- return -ENXIO;
- }
- EXPORT_SYMBOL_GPL(fwnode_property_read_string);
-diff --git a/include/linux/property.h b/include/linux/property.h
-index c29460a..69a8a08 100644
---- a/include/linux/property.h
-+++ b/include/linux/property.h
-@@ -145,19 +145,34 @@ static inline int fwnode_property_read_u64(struct fwnode_handle *fwnode,
- * struct property_entry - "Built-in" device property representation.
- * @name: Name of the property.
- * @length: Length of data making up the value.
-- * @value: Value of the property (an array of items of the given type).
-+ * @is_array: True when the property is an array.
-+ * @is_string: True when property is a string.
-+ * @pointer: Pointer to the property (an array of items of the given type).
-+ * @value: Value of the property (when it is a single item of the given type).
- */
- struct property_entry {
- const char *name;
- size_t length;
-+ bool is_array;
-+ bool is_string;
- union {
-- void *raw_data;
-- u8 *u8_data;
-- u16 *u16_data;
-- u32 *u32_data;
-- u64 *u64_data;
-- const char **str;
-- } value;
-+ union {
-+ void *raw_data;
-+ u8 *u8_data;
-+ u16 *u16_data;
-+ u32 *u32_data;
-+ u64 *u64_data;
-+ const char **str;
-+ } pointer;
-+ union {
-+ unsigned long long raw_data;
-+ u8 u8_data;
-+ u16 u16_data;
-+ u32 u32_data;
-+ u64 u64_data;
-+ const char *str;
-+ } value;
-+ };
- };
-
- /**
---
-2.5.0
-