Switch to use the fwnode APIs, which is a fundamental step to make this
driver OF-independent possible. No functional changes for DT-based systems.

Signed-off-by: Sui Jingfeng <sui.jingf...@linux.dev>
---
 drivers/gpu/drm/bridge/display-connector.c | 23 +++++++++++-----------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/bridge/display-connector.c 
b/drivers/gpu/drm/bridge/display-connector.c
index fb1e97d385fe..7436e7cd53fc 100644
--- a/drivers/gpu/drm/bridge/display-connector.c
+++ b/drivers/gpu/drm/bridge/display-connector.c
@@ -9,7 +9,6 @@
 #include <linux/media-bus-format.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
-#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/regulator/consumer.h>
 
@@ -204,6 +203,7 @@ static int display_connector_get_supply(struct 
platform_device *pdev,
 
 static int display_connector_probe(struct platform_device *pdev)
 {
+       struct fwnode_handle *fwnode = dev_fwnode(&pdev->dev);
        struct display_connector *conn;
        unsigned int type;
        const char *label = NULL;
@@ -215,15 +215,15 @@ static int display_connector_probe(struct platform_device 
*pdev)
 
        platform_set_drvdata(pdev, conn);
 
-       type = (uintptr_t)of_device_get_match_data(&pdev->dev);
+       type = (uintptr_t)device_get_match_data(&pdev->dev);
 
        /* Get the exact connector type. */
        switch (type) {
        case DRM_MODE_CONNECTOR_DVII: {
                bool analog, digital;
 
-               analog = of_property_read_bool(pdev->dev.of_node, "analog");
-               digital = of_property_read_bool(pdev->dev.of_node, "digital");
+               analog = fwnode_property_present(fwnode, "analog");
+               digital = fwnode_property_present(fwnode, "digital");
                if (analog && !digital) {
                        conn->bridge.type = DRM_MODE_CONNECTOR_DVIA;
                } else if (!analog && digital) {
@@ -240,8 +240,7 @@ static int display_connector_probe(struct platform_device 
*pdev)
        case DRM_MODE_CONNECTOR_HDMIA: {
                const char *hdmi_type;
 
-               ret = of_property_read_string(pdev->dev.of_node, "type",
-                                             &hdmi_type);
+               ret = fwnode_property_read_string(fwnode, "type", &hdmi_type);
                if (ret < 0) {
                        dev_err(&pdev->dev, "HDMI connector with no type\n");
                        return -EINVAL;
@@ -271,7 +270,7 @@ static int display_connector_probe(struct platform_device 
*pdev)
        conn->bridge.interlace_allowed = true;
 
        /* Get the optional connector label. */
-       of_property_read_string(pdev->dev.of_node, "label", &label);
+       fwnode_property_read_string(fwnode, "label", &label);
 
        /*
         * Get the HPD GPIO for DVI, HDMI and DP connectors. If the GPIO can 
provide
@@ -309,12 +308,12 @@ static int display_connector_probe(struct platform_device 
*pdev)
        if (type == DRM_MODE_CONNECTOR_DVII ||
            type == DRM_MODE_CONNECTOR_HDMIA ||
            type == DRM_MODE_CONNECTOR_VGA) {
-               struct device_node *phandle;
+               struct fwnode_handle *phandle;
 
-               phandle = of_parse_phandle(pdev->dev.of_node, "ddc-i2c-bus", 0);
-               if (phandle) {
-                       conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle);
-                       of_node_put(phandle);
+               phandle = fwnode_find_reference(fwnode, "ddc-i2c-bus", 0);
+               if (!IS_ERR(phandle)) {
+                       conn->bridge.ddc = i2c_get_adapter_by_fwnode(phandle);
+                       fwnode_handle_put(phandle);
                        if (!conn->bridge.ddc)
                                return -EPROBE_DEFER;
                } else {
-- 
2.34.1

Reply via email to