[bug report] drm/vc4: dsi: Fix bridge chain handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Boris Brezillon,

The patch 033bfe7538a1: "drm/vc4: dsi: Fix bridge chain handling"
from Dec 27, 2019, leads to the following static checker warning:

	drivers/gpu/drm/vc4/vc4_dsi.c:758 vc4_dsi_encoder_disable()
	warn: iterator used outside loop: 'iter'

drivers/gpu/drm/vc4/vc4_dsi.c
   743  static void vc4_dsi_encoder_disable(struct drm_encoder *encoder)
   744  {
   745          struct vc4_dsi_encoder *vc4_encoder = to_vc4_dsi_encoder(encoder);
   746          struct vc4_dsi *dsi = vc4_encoder->dsi;
   747          struct device *dev = &dsi->pdev->dev;
   748          struct drm_bridge *iter;
   749  
   750          list_for_each_entry_reverse(iter, &dsi->bridge_chain, chain_node) {
   751                  if (iter->funcs->disable)
   752                          iter->funcs->disable(iter);
   753          }

This loops backwards until iter is parked on the list head.

   754  
   755          vc4_dsi_ulps(dsi, true);
   756  
   757          list_for_each_entry_from(iter, &dsi->bridge_chain, chain_node) {

But then this "continues" until the iter is parked on the list head.
Since we ended with the iterator already on the list head then we never
enter this loop and it is a no-op.

Am I missing something?

   758                  if (iter->funcs->post_disable)
   759                          iter->funcs->post_disable(iter);
   760          }
   761  
   762          clk_disable_unprepare(dsi->pll_phy_clock);
   763          clk_disable_unprepare(dsi->escape_clock);
   764          clk_disable_unprepare(dsi->pixel_clock);
   765  
   766          pm_runtime_put(dev);
   767  }

regards,
dan carpenter
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux