All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC] drm/msm/disp/dpu1: add support for inline rotation in dpu driver
Date: Sun, 04 Jul 2021 01:13:39 +0800	[thread overview]
Message-ID: <202107040114.MCedRjVE-lkp@intel.com> (raw)
In-Reply-To: <1625311947-14114-1-git-send-email-kalyan_t@codeaurora.org>

[-- Attachment #1: Type: text/plain, Size: 7144 bytes --]

Hi Kalyan,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master v5.13 next-20210701]
[cannot apply to drm/drm-next]
[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]

url:    https://github.com/0day-ci/linux/commits/Kalyan-Thota/drm-msm-disp-dpu1-add-support-for-inline-rotation-in-dpu-driver/20210703-193407
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/9323c4120318b59a45bff0ac004a5673a6f84e46
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Kalyan-Thota/drm-msm-disp-dpu1-add-support-for-inline-rotation-in-dpu-driver/20210703-193407
        git checkout 9323c4120318b59a45bff0ac004a5673a6f84e46
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c: In function 'dpu_plane_atomic_check':
>> drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:1051:19: warning: variable 'dpu_kms' set but not used [-Wunused-but-set-variable]
    1051 |   struct dpu_kms *dpu_kms;
         |                   ^~~~~~~


vim +/dpu_kms +1051 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c

   960	
   961	static int dpu_plane_atomic_check(struct drm_plane *plane,
   962					  struct drm_atomic_state *state)
   963	{
   964		struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,
   965											 plane);
   966		int ret = 0, min_scale;
   967		struct dpu_plane *pdpu = to_dpu_plane(plane);
   968		struct dpu_plane_state *pstate = to_dpu_plane_state(new_plane_state);
   969		const struct drm_crtc_state *crtc_state = NULL;
   970		const struct dpu_format *fmt;
   971		struct drm_rect src, dst, fb_rect = { 0 };
   972		uint32_t min_src_size, max_linewidth;
   973		unsigned int rotation;
   974	
   975		if (new_plane_state->crtc)
   976			crtc_state = drm_atomic_get_new_crtc_state(state,
   977								   new_plane_state->crtc);
   978	
   979		min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxupscale);
   980		ret = drm_atomic_helper_check_plane_state(new_plane_state, crtc_state,
   981							  min_scale,
   982							  pdpu->pipe_sblk->maxdwnscale << 16,
   983							  true, true);
   984		if (ret) {
   985			DPU_DEBUG_PLANE(pdpu, "Check plane state failed (%d)\n", ret);
   986			return ret;
   987		}
   988		if (!new_plane_state->visible)
   989			return 0;
   990	
   991		src.x1 = new_plane_state->src_x >> 16;
   992		src.y1 = new_plane_state->src_y >> 16;
   993		src.x2 = src.x1 + (new_plane_state->src_w >> 16);
   994		src.y2 = src.y1 + (new_plane_state->src_h >> 16);
   995	
   996		dst = drm_plane_state_dest(new_plane_state);
   997	
   998		fb_rect.x2 = new_plane_state->fb->width;
   999		fb_rect.y2 = new_plane_state->fb->height;
  1000	
  1001		max_linewidth = pdpu->catalog->caps->max_linewidth;
  1002	
  1003		fmt = to_dpu_format(msm_framebuffer_format(new_plane_state->fb));
  1004	
  1005		min_src_size = DPU_FORMAT_IS_YUV(fmt) ? 2 : 1;
  1006	
  1007		if (DPU_FORMAT_IS_YUV(fmt) &&
  1008			(!(pdpu->features & DPU_SSPP_SCALER) ||
  1009			 !(pdpu->features & (BIT(DPU_SSPP_CSC)
  1010			 | BIT(DPU_SSPP_CSC_10BIT))))) {
  1011			DPU_DEBUG_PLANE(pdpu,
  1012					"plane doesn't have scaler/csc for yuv\n");
  1013			return -EINVAL;
  1014	
  1015		/* check src bounds */
  1016		} else if (!dpu_plane_validate_src(&src, &fb_rect, min_src_size)) {
  1017			DPU_DEBUG_PLANE(pdpu, "invalid source " DRM_RECT_FMT "\n",
  1018					DRM_RECT_ARG(&src));
  1019			return -E2BIG;
  1020	
  1021		/* valid yuv image */
  1022		} else if (DPU_FORMAT_IS_YUV(fmt) &&
  1023			   (src.x1 & 0x1 || src.y1 & 0x1 ||
  1024			    drm_rect_width(&src) & 0x1 ||
  1025			    drm_rect_height(&src) & 0x1)) {
  1026			DPU_DEBUG_PLANE(pdpu, "invalid yuv source " DRM_RECT_FMT "\n",
  1027					DRM_RECT_ARG(&src));
  1028			return -EINVAL;
  1029	
  1030		/* min dst support */
  1031		} else if (drm_rect_width(&dst) < 0x1 || drm_rect_height(&dst) < 0x1) {
  1032			DPU_DEBUG_PLANE(pdpu, "invalid dest rect " DRM_RECT_FMT "\n",
  1033					DRM_RECT_ARG(&dst));
  1034			return -EINVAL;
  1035	
  1036		/* check decimated source width */
  1037		} else if (drm_rect_width(&src) > max_linewidth) {
  1038			DPU_DEBUG_PLANE(pdpu, "invalid src " DRM_RECT_FMT " line:%u\n",
  1039					DRM_RECT_ARG(&src), max_linewidth);
  1040			return -E2BIG;
  1041		}
  1042	
  1043		rotation = drm_rotation_simplify(new_plane_state->rotation,
  1044				    DRM_MODE_ROTATE_0 |
  1045				    DRM_MODE_ROTATE_90 |
  1046				    DRM_MODE_REFLECT_X |
  1047				    DRM_MODE_REFLECT_Y);
  1048	
  1049		if (rotation & DRM_MODE_ROTATE_90) {
  1050			struct msm_drm_private *priv = plane->dev->dev_private;
> 1051			struct dpu_kms *dpu_kms;
  1052			const struct msm_format *msm_fmt;
  1053			const struct dpu_format *fmt;
  1054			bool found = false;
  1055			u32 i, num_formats;
  1056			const u32 *supported_formats;
  1057	
  1058			if (src.y2 > pdpu->pipe_sblk->rotation_cfg->rot_maxheight) {
  1059				DPU_DEBUG_PLANE(pdpu,
  1060				"invalid height for inline rot:%d max:%d\n",
  1061				src.y2, pdpu->pipe_sblk->rotation_cfg->rot_maxheight);
  1062				return -EINVAL;
  1063			}
  1064	
  1065			/* check for valid formats supported by inline rotation */
  1066			dpu_kms = to_dpu_kms(priv->kms);
  1067			msm_fmt = msm_framebuffer_format(new_plane_state->fb);
  1068			fmt = to_dpu_format(msm_fmt);
  1069			supported_formats = pdpu->pipe_sblk->rotation_cfg->rot_format_list;
  1070			num_formats = pdpu->pipe_sblk->rotation_cfg->rot_num_formats;
  1071	
  1072			for (i = 0; i < num_formats; i++) {
  1073				if (fmt->base.pixel_format == supported_formats[i] &&
  1074					fmt->fetch_mode == DPU_FETCH_UBWC)
  1075					found = true;
  1076			}
  1077	
  1078			if (!found || !num_formats) {
  1079				DPU_DEBUG_PLANE(pdpu,
  1080				"supported_format not found num:%d\n", num_formats);
  1081				return -EINVAL;
  1082			}
  1083		}
  1084		pstate->rotation = rotation;
  1085		pstate->needs_qos_remap = drm_atomic_crtc_needs_modeset(crtc_state);
  1086	
  1087		return 0;
  1088	}
  1089	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 54144 bytes --]

  reply	other threads:[~2021-07-03 17:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-03 11:32 [RFC] drm/msm/disp/dpu1: add support for inline rotation in dpu driver Kalyan Thota
2021-07-03 11:32 ` Kalyan Thota
2021-07-03 17:13 ` kernel test robot [this message]
2021-07-04  9:59 ` Dmitry Baryshkov
2021-07-04  9:59   ` Dmitry Baryshkov
2021-07-04 11:20 ` Dmitry Baryshkov
2021-07-04 11:20   ` Dmitry Baryshkov

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=202107040114.MCedRjVE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /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.