video: rockchip: dw_mipi_dsi: Fix external phy existence check
authorOndrej Jirman <megi@xff.cz>
Mon, 22 May 2023 21:47:03 +0000 (23:47 +0200)
committerAnatolij Gustschin <agust@denx.de>
Fri, 14 Jul 2023 16:19:08 +0000 (18:19 +0200)
&priv->phy is always true. Compiler warns about this loudly.

Use a propper check for phy device allocation. Without this fix
using this driver with SoC that doesn't use external phy (eg. RK3399)
doesn't work.

Signed-off-by: Ondrej Jirman <megi@xff.cz>
drivers/video/rockchip/dw_mipi_dsi_rockchip.c

index ca548a6..b1b5328 100644 (file)
@@ -344,7 +344,7 @@ static int dsi_phy_init(void *priv_data)
        struct dw_rockchip_dsi_priv *dsi = dev_get_priv(dev);
        int ret, i, vco;
 
-       if (&dsi->phy) {
+       if (dsi->phy.dev) {
                ret = generic_phy_configure(&dsi->phy, &dsi->phy_opts);
                if (ret) {
                        dev_err(dsi->dsi_host,
@@ -527,7 +527,7 @@ dw_mipi_dsi_get_lane_mbps(void *priv_data, struct display_timing *timings,
        }
 
        /* for external phy only the mipi_dphy_config is necessary */
-       if (&dsi->phy) {
+       if (dsi->phy.dev) {
                phy_mipi_dphy_get_default_config(timings->pixelclock.typ  * 10 / 8,
                                                 bpp, lanes,
                                                 &dsi->phy_opts);
@@ -827,7 +827,7 @@ static int dw_mipi_dsi_rockchip_probe(struct udevice *dev)
        }
 
        /* Get a ref clock only if not using an external phy. */
-       if (&priv->phy) {
+       if (priv->phy.dev) {
                dev_dbg(dev, "setting priv->ref to NULL\n");
                priv->ref = NULL;