All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [linux-next:master 3205/5236] drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:2666 vop2_setup_layer_mixer() error: uninitialized symbol 'old_win'.
Date: Mon, 23 Dec 2024 21:35:07 +0800	[thread overview]
Message-ID: <202412232121.J7FqM7Ct-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Andy Yan <andy.yan@rock-chips.com>
CC: Heiko Stuebner <heiko@sntech.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
commit: 0ca953ac226eaffbe1a795f5e517095a8d494921 [3205/5236] drm/rockchip: vop2: Fix the windows switch between different layers
:::::: branch date: 3 days ago
:::::: commit date: 9 days ago
config: powerpc-randconfig-r072-20241223 (https://download.01.org/0day-ci/archive/20241223/202412232121.J7FqM7Ct-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 14.2.0

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202412232121.J7FqM7Ct-lkp@intel.com/

New smatch warnings:
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:2666 vop2_setup_layer_mixer() error: uninitialized symbol 'old_win'.

Old smatch warnings:
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:692 vop2_afbc_transform_offset() error: uninitialized symbol 'tx'.
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:693 vop2_afbc_transform_offset() error: uninitialized symbol 'ty'.

vim +/old_win +2666 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c

604be85547ce4d Andy Yan 2022-04-22  2537  
604be85547ce4d Andy Yan 2022-04-22  2538  static void vop2_setup_layer_mixer(struct vop2_video_port *vp)
604be85547ce4d Andy Yan 2022-04-22  2539  {
604be85547ce4d Andy Yan 2022-04-22  2540  	struct vop2 *vop2 = vp->vop2;
604be85547ce4d Andy Yan 2022-04-22  2541  	struct drm_plane *plane;
604be85547ce4d Andy Yan 2022-04-22  2542  	u32 layer_sel = 0;
604be85547ce4d Andy Yan 2022-04-22  2543  	u32 port_sel;
0ca953ac226eaf Andy Yan 2024-12-14  2544  	u8 layer_id;
0ca953ac226eaf Andy Yan 2024-12-14  2545  	u8 old_layer_id;
0ca953ac226eaf Andy Yan 2024-12-14  2546  	u8 layer_sel_id;
0ca953ac226eaf Andy Yan 2024-12-14  2547  	unsigned int ofs;
dd49ee4614cfb0 Andy Yan 2023-12-11  2548  	u32 ovl_ctrl;
604be85547ce4d Andy Yan 2022-04-22  2549  	int i;
604be85547ce4d Andy Yan 2022-04-22  2550  	struct vop2_video_port *vp0 = &vop2->vps[0];
604be85547ce4d Andy Yan 2022-04-22  2551  	struct vop2_video_port *vp1 = &vop2->vps[1];
604be85547ce4d Andy Yan 2022-04-22  2552  	struct vop2_video_port *vp2 = &vop2->vps[2];
dd49ee4614cfb0 Andy Yan 2023-12-11  2553  	struct rockchip_crtc_state *vcstate = to_rockchip_crtc_state(vp->crtc.state);
604be85547ce4d Andy Yan 2022-04-22  2554  
dd49ee4614cfb0 Andy Yan 2023-12-11  2555  	ovl_ctrl = vop2_readl(vop2, RK3568_OVL_CTRL);
dd49ee4614cfb0 Andy Yan 2023-12-11  2556  	ovl_ctrl |= RK3568_OVL_CTRL__LAYERSEL_REGDONE_IMD;
dd49ee4614cfb0 Andy Yan 2023-12-11  2557  	if (vcstate->yuv_overlay)
dd49ee4614cfb0 Andy Yan 2023-12-11  2558  		ovl_ctrl |= RK3568_OVL_CTRL__YUV_MODE(vp->id);
dd49ee4614cfb0 Andy Yan 2023-12-11  2559  	else
dd49ee4614cfb0 Andy Yan 2023-12-11  2560  		ovl_ctrl &= ~RK3568_OVL_CTRL__YUV_MODE(vp->id);
dd49ee4614cfb0 Andy Yan 2023-12-11  2561  
dd49ee4614cfb0 Andy Yan 2023-12-11  2562  	vop2_writel(vop2, RK3568_OVL_CTRL, ovl_ctrl);
dd49ee4614cfb0 Andy Yan 2023-12-11  2563  
604be85547ce4d Andy Yan 2022-04-22  2564  	port_sel = vop2_readl(vop2, RK3568_OVL_PORT_SEL);
604be85547ce4d Andy Yan 2022-04-22  2565  	port_sel &= RK3568_OVL_PORT_SEL__SEL_PORT;
604be85547ce4d Andy Yan 2022-04-22  2566  
604be85547ce4d Andy Yan 2022-04-22  2567  	if (vp0->nlayers)
604be85547ce4d Andy Yan 2022-04-22  2568  		port_sel |= FIELD_PREP(RK3568_OVL_PORT_SET__PORT0_MUX,
604be85547ce4d Andy Yan 2022-04-22  2569  				     vp0->nlayers - 1);
604be85547ce4d Andy Yan 2022-04-22  2570  	else
604be85547ce4d Andy Yan 2022-04-22  2571  		port_sel |= FIELD_PREP(RK3568_OVL_PORT_SET__PORT0_MUX, 8);
604be85547ce4d Andy Yan 2022-04-22  2572  
604be85547ce4d Andy Yan 2022-04-22  2573  	if (vp1->nlayers)
604be85547ce4d Andy Yan 2022-04-22  2574  		port_sel |= FIELD_PREP(RK3568_OVL_PORT_SET__PORT1_MUX,
604be85547ce4d Andy Yan 2022-04-22  2575  				     (vp0->nlayers + vp1->nlayers - 1));
604be85547ce4d Andy Yan 2022-04-22  2576  	else
604be85547ce4d Andy Yan 2022-04-22  2577  		port_sel |= FIELD_PREP(RK3568_OVL_PORT_SET__PORT1_MUX, 8);
604be85547ce4d Andy Yan 2022-04-22  2578  
604be85547ce4d Andy Yan 2022-04-22  2579  	if (vp2->nlayers)
604be85547ce4d Andy Yan 2022-04-22  2580  		port_sel |= FIELD_PREP(RK3568_OVL_PORT_SET__PORT2_MUX,
604be85547ce4d Andy Yan 2022-04-22  2581  			(vp2->nlayers + vp1->nlayers + vp0->nlayers - 1));
604be85547ce4d Andy Yan 2022-04-22  2582  	else
2bdb481bf7a93c Andy Yan 2024-04-22  2583  		port_sel |= FIELD_PREP(RK3568_OVL_PORT_SET__PORT2_MUX, 8);
604be85547ce4d Andy Yan 2022-04-22  2584  
604be85547ce4d Andy Yan 2022-04-22  2585  	layer_sel = vop2_readl(vop2, RK3568_OVL_LAYER_SEL);
604be85547ce4d Andy Yan 2022-04-22  2586  
604be85547ce4d Andy Yan 2022-04-22  2587  	ofs = 0;
604be85547ce4d Andy Yan 2022-04-22  2588  	for (i = 0; i < vp->id; i++)
604be85547ce4d Andy Yan 2022-04-22  2589  		ofs += vop2->vps[i].nlayers;
604be85547ce4d Andy Yan 2022-04-22  2590  
604be85547ce4d Andy Yan 2022-04-22  2591  	drm_atomic_crtc_for_each_plane(plane, &vp->crtc) {
604be85547ce4d Andy Yan 2022-04-22  2592  		struct vop2_win *win = to_vop2_win(plane);
0ca953ac226eaf Andy Yan 2024-12-14  2593  		struct vop2_win *old_win;
0ca953ac226eaf Andy Yan 2024-12-14  2594  
0ca953ac226eaf Andy Yan 2024-12-14  2595  		layer_id = (u8)(plane->state->normalized_zpos + ofs);
0ca953ac226eaf Andy Yan 2024-12-14  2596  
0ca953ac226eaf Andy Yan 2024-12-14  2597  		/*
0ca953ac226eaf Andy Yan 2024-12-14  2598  		 * Find the layer this win bind in old state.
0ca953ac226eaf Andy Yan 2024-12-14  2599  		 */
0ca953ac226eaf Andy Yan 2024-12-14  2600  		for (old_layer_id = 0; old_layer_id < vop2->data->win_size; old_layer_id++) {
0ca953ac226eaf Andy Yan 2024-12-14  2601  			layer_sel_id = (layer_sel >> (4 * old_layer_id)) & 0xf;
0ca953ac226eaf Andy Yan 2024-12-14  2602  			if (layer_sel_id == win->data->layer_sel_id)
0ca953ac226eaf Andy Yan 2024-12-14  2603  				break;
0ca953ac226eaf Andy Yan 2024-12-14  2604  		}
0ca953ac226eaf Andy Yan 2024-12-14  2605  
0ca953ac226eaf Andy Yan 2024-12-14  2606  		/*
0ca953ac226eaf Andy Yan 2024-12-14  2607  		 * Find the win bind to this layer in old state
0ca953ac226eaf Andy Yan 2024-12-14  2608  		 */
0ca953ac226eaf Andy Yan 2024-12-14  2609  		for (i = 0; i < vop2->data->win_size; i++) {
0ca953ac226eaf Andy Yan 2024-12-14  2610  			old_win = &vop2->win[i];
0ca953ac226eaf Andy Yan 2024-12-14  2611  			layer_sel_id = (layer_sel >> (4 * layer_id)) & 0xf;
0ca953ac226eaf Andy Yan 2024-12-14  2612  			if (layer_sel_id == old_win->data->layer_sel_id)
0ca953ac226eaf Andy Yan 2024-12-14  2613  				break;
0ca953ac226eaf Andy Yan 2024-12-14  2614  		}
604be85547ce4d Andy Yan 2022-04-22  2615  
604be85547ce4d Andy Yan 2022-04-22  2616  		switch (win->data->phys_id) {
604be85547ce4d Andy Yan 2022-04-22  2617  		case ROCKCHIP_VOP2_CLUSTER0:
604be85547ce4d Andy Yan 2022-04-22  2618  			port_sel &= ~RK3568_OVL_PORT_SEL__CLUSTER0;
604be85547ce4d Andy Yan 2022-04-22  2619  			port_sel |= FIELD_PREP(RK3568_OVL_PORT_SEL__CLUSTER0, vp->id);
604be85547ce4d Andy Yan 2022-04-22  2620  			break;
604be85547ce4d Andy Yan 2022-04-22  2621  		case ROCKCHIP_VOP2_CLUSTER1:
604be85547ce4d Andy Yan 2022-04-22  2622  			port_sel &= ~RK3568_OVL_PORT_SEL__CLUSTER1;
604be85547ce4d Andy Yan 2022-04-22  2623  			port_sel |= FIELD_PREP(RK3568_OVL_PORT_SEL__CLUSTER1, vp->id);
604be85547ce4d Andy Yan 2022-04-22  2624  			break;
5a028e8f062fc8 Andy Yan 2023-12-11  2625  		case ROCKCHIP_VOP2_CLUSTER2:
5a028e8f062fc8 Andy Yan 2023-12-11  2626  			port_sel &= ~RK3588_OVL_PORT_SEL__CLUSTER2;
5a028e8f062fc8 Andy Yan 2023-12-11  2627  			port_sel |= FIELD_PREP(RK3588_OVL_PORT_SEL__CLUSTER2, vp->id);
5a028e8f062fc8 Andy Yan 2023-12-11  2628  			break;
5a028e8f062fc8 Andy Yan 2023-12-11  2629  		case ROCKCHIP_VOP2_CLUSTER3:
5a028e8f062fc8 Andy Yan 2023-12-11  2630  			port_sel &= ~RK3588_OVL_PORT_SEL__CLUSTER3;
5a028e8f062fc8 Andy Yan 2023-12-11  2631  			port_sel |= FIELD_PREP(RK3588_OVL_PORT_SEL__CLUSTER3, vp->id);
5a028e8f062fc8 Andy Yan 2023-12-11  2632  			break;
604be85547ce4d Andy Yan 2022-04-22  2633  		case ROCKCHIP_VOP2_ESMART0:
604be85547ce4d Andy Yan 2022-04-22  2634  			port_sel &= ~RK3568_OVL_PORT_SEL__ESMART0;
604be85547ce4d Andy Yan 2022-04-22  2635  			port_sel |= FIELD_PREP(RK3568_OVL_PORT_SEL__ESMART0, vp->id);
604be85547ce4d Andy Yan 2022-04-22  2636  			break;
604be85547ce4d Andy Yan 2022-04-22  2637  		case ROCKCHIP_VOP2_ESMART1:
604be85547ce4d Andy Yan 2022-04-22  2638  			port_sel &= ~RK3568_OVL_PORT_SEL__ESMART1;
604be85547ce4d Andy Yan 2022-04-22  2639  			port_sel |= FIELD_PREP(RK3568_OVL_PORT_SEL__ESMART1, vp->id);
604be85547ce4d Andy Yan 2022-04-22  2640  			break;
5a028e8f062fc8 Andy Yan 2023-12-11  2641  		case ROCKCHIP_VOP2_ESMART2:
5a028e8f062fc8 Andy Yan 2023-12-11  2642  			port_sel &= ~RK3588_OVL_PORT_SEL__ESMART2;
5a028e8f062fc8 Andy Yan 2023-12-11  2643  			port_sel |= FIELD_PREP(RK3588_OVL_PORT_SEL__ESMART2, vp->id);
5a028e8f062fc8 Andy Yan 2023-12-11  2644  			break;
5a028e8f062fc8 Andy Yan 2023-12-11  2645  		case ROCKCHIP_VOP2_ESMART3:
5a028e8f062fc8 Andy Yan 2023-12-11  2646  			port_sel &= ~RK3588_OVL_PORT_SEL__ESMART3;
5a028e8f062fc8 Andy Yan 2023-12-11  2647  			port_sel |= FIELD_PREP(RK3588_OVL_PORT_SEL__ESMART3, vp->id);
5a028e8f062fc8 Andy Yan 2023-12-11  2648  			break;
604be85547ce4d Andy Yan 2022-04-22  2649  		case ROCKCHIP_VOP2_SMART0:
604be85547ce4d Andy Yan 2022-04-22  2650  			port_sel &= ~RK3568_OVL_PORT_SEL__SMART0;
604be85547ce4d Andy Yan 2022-04-22  2651  			port_sel |= FIELD_PREP(RK3568_OVL_PORT_SEL__SMART0, vp->id);
604be85547ce4d Andy Yan 2022-04-22  2652  			break;
604be85547ce4d Andy Yan 2022-04-22  2653  		case ROCKCHIP_VOP2_SMART1:
604be85547ce4d Andy Yan 2022-04-22  2654  			port_sel &= ~RK3568_OVL_PORT_SEL__SMART1;
604be85547ce4d Andy Yan 2022-04-22  2655  			port_sel |= FIELD_PREP(RK3568_OVL_PORT_SEL__SMART1, vp->id);
604be85547ce4d Andy Yan 2022-04-22  2656  			break;
604be85547ce4d Andy Yan 2022-04-22  2657  		}
604be85547ce4d Andy Yan 2022-04-22  2658  
0ca953ac226eaf Andy Yan 2024-12-14  2659  		layer_sel &= ~RK3568_OVL_LAYER_SEL__LAYER(layer_id, 0x7);
0ca953ac226eaf Andy Yan 2024-12-14  2660  		layer_sel |= RK3568_OVL_LAYER_SEL__LAYER(layer_id, win->data->layer_sel_id);
0ca953ac226eaf Andy Yan 2024-12-14  2661  		/*
0ca953ac226eaf Andy Yan 2024-12-14  2662  		 * When we bind a window from layerM to layerN, we also need to move the old
0ca953ac226eaf Andy Yan 2024-12-14  2663  		 * window on layerN to layerM to avoid one window selected by two or more layers.
0ca953ac226eaf Andy Yan 2024-12-14  2664  		 */
0ca953ac226eaf Andy Yan 2024-12-14  2665  		layer_sel &= ~RK3568_OVL_LAYER_SEL__LAYER(old_layer_id, 0x7);
0ca953ac226eaf Andy Yan 2024-12-14 @2666  		layer_sel |= RK3568_OVL_LAYER_SEL__LAYER(old_layer_id, old_win->data->layer_sel_id);
604be85547ce4d Andy Yan 2022-04-22  2667  	}
604be85547ce4d Andy Yan 2022-04-22  2668  
604be85547ce4d Andy Yan 2022-04-22  2669  	vop2_writel(vop2, RK3568_OVL_LAYER_SEL, layer_sel);
604be85547ce4d Andy Yan 2022-04-22  2670  	vop2_writel(vop2, RK3568_OVL_PORT_SEL, port_sel);
604be85547ce4d Andy Yan 2022-04-22  2671  }
604be85547ce4d Andy Yan 2022-04-22  2672  

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

                 reply	other threads:[~2024-12-23 13:35 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202412232121.J7FqM7Ct-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.