With GCC version 5 and 6, this uninitialized warning can be seen.
GCC have been fixed in newer versions.

drivers/gpu/drm/sun4i/sun4i_tcon.c: In function ‘sun4i_tcon_bind’:
drivers/gpu/drm/sun4i/sun4i_tcon.c:1091:21: warning: ‘has_lvds_alt’ may be used 
uninitialized in this function [-Wmaybe-uninitialized]
  bool has_lvds_rst, has_lvds_alt, can_lvds;
                     ^~~~~~~~~~~~

Reworked the code so it covers that false positive also.

Co-developed-by: Arnd Bergmann <a...@arndb.de>
Signed-off-by: Arnd Bergmann <a...@arndb.de>
Signed-off-by: Anders Roxell <anders.rox...@linaro.org>
---
 drivers/gpu/drm/sun4i/sun4i_tcon.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c 
b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index 0420f5c978b9..317d4fa3429c 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -1161,20 +1161,20 @@ static int sun4i_tcon_bind(struct device *dev, struct 
device *master,
                 */
                if (tcon->quirks->has_lvds_alt) {
                        tcon->lvds_pll = devm_clk_get(dev, "lvds-alt");
-                       if (IS_ERR(tcon->lvds_pll)) {
-                               if (PTR_ERR(tcon->lvds_pll) == -ENOENT) {
-                                       has_lvds_alt = false;
-                               } else {
-                                       dev_err(dev, "Couldn't get the LVDS 
PLL\n");
-                                       return PTR_ERR(tcon->lvds_pll);
-                               }
+                       ret = PTR_ERR_OR_ZERO(tcon->lvds_pll);
+                       if (ret == -ENOENT) {
+                               has_lvds_alt = false;
+                       } else if (ret) {
+                               dev_err(dev, "Couldn't get the LVDS PLL\n");
+                               return ret;
                        } else {
                                has_lvds_alt = true;
                        }
+               } else  {
+                       has_lvds_alt = false;
                }
 
-               if (!has_lvds_rst ||
-                   (tcon->quirks->has_lvds_alt && !has_lvds_alt)) {
+               if (!has_lvds_rst || !has_lvds_alt) {
                        dev_warn(dev, "Missing LVDS properties, Please upgrade 
your DT\n");
                        dev_warn(dev, "LVDS output disabled\n");
                        can_lvds = false;
-- 
2.19.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to