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 --]
next prev parent 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.