[Freedreno] [PATCH v2] drm/msm/dpu: Capture dpu snapshot when frame_done_timer timeouts

kernel test robot lkp at intel.com
Thu Nov 30 18:35:03 UTC 2023


Hi Paloma,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on linus/master v6.7-rc3 next-20231130]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Paloma-Arellano/drm-msm-dpu-Capture-dpu-snapshot-when-frame_done_timer-timeouts/20231130-055033
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    https://lore.kernel.org/r/20231129184159.24216-1-quic_parellan%40quicinc.com
patch subject: [PATCH v2] drm/msm/dpu: Capture dpu snapshot when frame_done_timer timeouts
config: arm-defconfig (https://download.01.org/0day-ci/archive/20231201/202312010225.2OJWLKmA-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231201/202312010225.2OJWLKmA-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312010225.2OJWLKmA-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:211: warning: Function parameter or member 'frame_done_timeout_cnt' not described in 'dpu_encoder_virt'


vim +211 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c

25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  114  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  115  /**
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  116   * struct dpu_encoder_virt - virtual encoder. Container of one or more physical
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  117   *	encoders. Virtual encoder manages one "logical" display. Physical
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  118   *	encoders manage one intf block, tied to a specific panel/sub-panel.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  119   *	Virtual encoder defers as much as possible to the physical encoders.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  120   *	Virtual encoder registers itself with the DRM Framework as the encoder.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  121   * @base:		drm_encoder base class for registration with DRM
585b3f9472eea8 Sean Paul         2018-11-16  122   * @enc_spinlock:	Virtual-Encoder-Wide Spin Lock for IRQ purposes
fba7427eb59496 Sean Paul         2018-11-16  123   * @enabled:		True if the encoder is active, protected by enc_lock
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  124   * @num_phys_encs:	Actual number of physical encoders contained.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  125   * @phys_encs:		Container of physical encoders managed.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  126   * @cur_master:		Pointer to the current master in this mode. Optimization
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  127   *			Only valid after enable. Cleared as disable.
cca5ff947c7c6e Lee Jones         2020-11-23  128   * @cur_slave:		As above but for the slave encoder.
cca5ff947c7c6e Lee Jones         2020-11-23  129   * @hw_pp:		Handle to the pingpong blocks used for the display. No.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  130   *			pingpong blocks can be different than num_phys_encs.
58dca981074948 Vinod Koul        2022-04-06  131   * @hw_dsc:		Handle to the DSC blocks used for the display.
58dca981074948 Vinod Koul        2022-04-06  132   * @dsc_mask:		Bitmask of used DSC blocks.
cca5ff947c7c6e Lee Jones         2020-11-23  133   * @intfs_swapped:	Whether or not the phys_enc interfaces have been swapped
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  134   *			for partial update right-only cases, such as pingpong
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  135   *			split where virtual pingpong does not generate IRQs
e4914867ac99ca Sean Paul         2018-11-16  136   * @crtc:		Pointer to the currently assigned crtc. Normally you
e4914867ac99ca Sean Paul         2018-11-16  137   *			would use crtc->state->encoder_mask to determine the
e4914867ac99ca Sean Paul         2018-11-16  138   *			link between encoder/crtc. However in this case we need
e4914867ac99ca Sean Paul         2018-11-16  139   *			to track crtc in the disable() hook which is called
e4914867ac99ca Sean Paul         2018-11-16  140   *			_after_ encoder_mask is cleared.
6b6921e5537d0f Dmitry Baryshkov  2022-02-17  141   * @connector:		If a mode is set, cached pointer to the active connector
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  142   * @crtc_kickoff_cb:		Callback into CRTC that will flush & start
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  143   *				all CTL paths
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  144   * @crtc_kickoff_cb_data:	Opaque user data given to crtc_kickoff_cb
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  145   * @debugfs_root:		Debug file system root file node
fba7427eb59496 Sean Paul         2018-11-16  146   * @enc_lock:			Lock around physical encoder
fba7427eb59496 Sean Paul         2018-11-16  147   *				create/destroy/enable/disable
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  148   * @frame_busy_mask:		Bitmask tracking which phys_enc we are still
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  149   *				busy processing current command.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  150   *				Bit0 = phys_encs[0] etc.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  151   * @crtc_frame_event_cb:	callback handler for frame event
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  152   * @crtc_frame_event_cb_data:	callback handler private data
70df9610de0fd3 Sean Paul         2019-01-28  153   * @frame_done_timeout_ms:	frame done timeout in ms
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  154   * @frame_done_timer:		watchdog timer for frame done event
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  155   * @disp_info:			local copy of msm_display_info struct
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  156   * @idle_pc_supported:		indicate if idle power collaps is supported
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  157   * @rc_lock:			resource control mutex lock to protect
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  158   *				virt encoder over various state changes
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  159   * @rc_state:			resource controller state
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  160   * @delayed_off_work:		delayed worker to schedule disabling of
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  161   *				clks and resources after IDLE_TIMEOUT time.
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  162   * @topology:                   topology of the display
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  163   * @idle_timeout:		idle timeout duration in milliseconds
4b27f469b155bd Dmitry Baryshkov  2023-01-18  164   * @wide_bus_en:		wide bus is enabled on this interface
46dd0c0658ff57 Dmitry Baryshkov  2022-07-11  165   * @dsc:			drm_dsc_config pointer, for DSC-enabled encoders
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  166   */
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  167  struct dpu_encoder_virt {
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  168  	struct drm_encoder base;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  169  	spinlock_t enc_spinlock;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  170  
fba7427eb59496 Sean Paul         2018-11-16  171  	bool enabled;
fba7427eb59496 Sean Paul         2018-11-16  172  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  173  	unsigned int num_phys_encs;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  174  	struct dpu_encoder_phys *phys_encs[MAX_PHYS_ENCODERS_PER_VIRTUAL];
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  175  	struct dpu_encoder_phys *cur_master;
86b89080368b46 Jeykumar Sankaran 2018-09-05  176  	struct dpu_encoder_phys *cur_slave;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  177  	struct dpu_hw_pingpong *hw_pp[MAX_CHANNELS_PER_ENC];
58dca981074948 Vinod Koul        2022-04-06  178  	struct dpu_hw_dsc *hw_dsc[MAX_CHANNELS_PER_ENC];
58dca981074948 Vinod Koul        2022-04-06  179  
58dca981074948 Vinod Koul        2022-04-06  180  	unsigned int dsc_mask;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  181  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  182  	bool intfs_swapped;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  183  
e4914867ac99ca Sean Paul         2018-11-16  184  	struct drm_crtc *crtc;
6b6921e5537d0f Dmitry Baryshkov  2022-02-17  185  	struct drm_connector *connector;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  186  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  187  	struct dentry *debugfs_root;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  188  	struct mutex enc_lock;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  189  	DECLARE_BITMAP(frame_busy_mask, MAX_PHYS_ENCODERS_PER_VIRTUAL);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  190  	void (*crtc_frame_event_cb)(void *, u32 event);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  191  	void *crtc_frame_event_cb_data;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  192  
70df9610de0fd3 Sean Paul         2019-01-28  193  	atomic_t frame_done_timeout_ms;
ccd5957a0bacc2 Paloma Arellano   2023-11-29  194  	atomic_t frame_done_timeout_cnt;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  195  	struct timer_list frame_done_timer;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  196  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  197  	struct msm_display_info disp_info;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  198  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  199  	bool idle_pc_supported;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  200  	struct mutex rc_lock;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  201  	enum dpu_enc_rc_states rc_state;
e077fe752cd344 Jeykumar Sankaran 2018-12-14  202  	struct delayed_work delayed_off_work;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  203  	struct msm_display_topology topology;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  204  
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  205  	u32 idle_timeout;
3309a75639718c Kuogee Hsieh      2022-02-25  206  
3309a75639718c Kuogee Hsieh      2022-02-25  207  	bool wide_bus_en;
58dca981074948 Vinod Koul        2022-04-06  208  
58dca981074948 Vinod Koul        2022-04-06  209  	/* DSC configuration */
46dd0c0658ff57 Dmitry Baryshkov  2022-07-11  210  	struct drm_dsc_config *dsc;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 @211  };
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27  212  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


More information about the Freedreno mailing list