7ef4087f99
We have a better idea why the Yoga patches are affecting one touchpad. Bring them back so everyone can benefit from Yoga.
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
From 55f89a8a4538803195395bdf347cbba51dcb1906 Mon Sep 17 00:00:00 2001
|
|
From: Mika Westerberg <mika.westerberg@linux.intel.com>
|
|
Date: Mon, 30 Nov 2015 17:11:39 +0200
|
|
Subject: [PATCH 11/16] driver core: Do not overwrite secondary fwnode with
|
|
NULL if it is set
|
|
|
|
If multiple devices share single firmware node like it is case with MFD
|
|
devices, the same firmware node (ACPI) is assigned to all of them. The
|
|
function also modifies the shared firmware node in order to preserve
|
|
secondary firmware node of the device in question.
|
|
|
|
If the new device which is sharing the firmware node does not have
|
|
secondary node it will be NULL which will be assigned to the secondary node
|
|
of the shared firmware node losing all built-in properties.
|
|
|
|
Prevent this by setting the secondary firmware node only if the replacement
|
|
is non-NULL.
|
|
|
|
Print also warning if someone tries to overwrite secondary node that has
|
|
already been assigned.
|
|
|
|
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
|
|
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
|
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
---
|
|
drivers/base/core.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/base/core.c b/drivers/base/core.c
|
|
index b7d56c5..0a8bdad 100644
|
|
--- a/drivers/base/core.c
|
|
+++ b/drivers/base/core.c
|
|
@@ -2261,7 +2261,10 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
|
|
if (fwnode_is_primary(fn))
|
|
fn = fn->secondary;
|
|
|
|
- fwnode->secondary = fn;
|
|
+ if (fn) {
|
|
+ WARN_ON(fwnode->secondary);
|
|
+ fwnode->secondary = fn;
|
|
+ }
|
|
dev->fwnode = fwnode;
|
|
} else {
|
|
dev->fwnode = fwnode_is_primary(dev->fwnode) ?
|
|
--
|
|
2.5.0
|
|
|