+++ /dev/null
-From e814e688413aabd7b0d75e2a8ed1caa472951dec Mon Sep 17 00:00:00 2001
-From: Thierry Reding <treding@nvidia.com>
-Date: Fri, 25 Jan 2019 14:11:42 +0100
-Subject: i2c: of: Try to find an I2C adapter matching the parent
-
-From: Thierry Reding <treding@nvidia.com>
-
-commit e814e688413aabd7b0d75e2a8ed1caa472951dec upstream.
-
-If an I2C adapter doesn't match the provided device tree node, also try
-matching the parent's device tree node. This allows finding an adapter
-based on the device node of the parent device that was used to register
-it.
-
-This fixes a regression on Tegra124-based Chromebooks (Nyan) where the
-eDP controller registers an I2C adapter that is used to read to EDID.
-After commit 993a815dcbb2 ("dt-bindings: panel: Add missing .txt
-suffix") this stopped working because the I2C adapter could no longer
-be found. The approach in this patch fixes the regression without
-introducing the issues that the above commit solved.
-
-Fixes: 17ab7806de0c ("drm: don't link DP aux i2c adapter to the hardware device node")
-Signed-off-by: Thierry Reding <treding@nvidia.com>
-Tested-by: Tristan Bastian <tristan-c.bastian@gmx.de>
-Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/i2c/i2c-core-of.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
---- a/drivers/i2c/i2c-core-of.c
-+++ b/drivers/i2c/i2c-core-of.c
-@@ -132,13 +132,25 @@ static int of_dev_or_parent_node_match(s
- return 0;
- }
-
-+static int of_dev_or_parent_node_match(struct device *dev, void *data)
-+{
-+ if (dev->of_node == data)
-+ return 1;
-+
-+ if (dev->parent)
-+ return dev->parent->of_node == data;
-+
-+ return 0;
-+}
-+
- /* must call put_device() when done with returned i2c_client device */
- struct i2c_client *of_find_i2c_device_by_node(struct device_node *node)
- {
- struct device *dev;
- struct i2c_client *client;
-
-- dev = bus_find_device(&i2c_bus_type, NULL, node, of_dev_node_match);
-+ dev = bus_find_device(&i2c_bus_type, NULL, node,
-+ of_dev_or_parent_node_match);
- if (!dev)
- return NULL;
-