All of lore.kernel.org
 help / color / mirror / Atom feed
* [drm-drm-intel:drm-intel-next 7/8] drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237)
@ 2021-02-15 11:02 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-02-15 11:02 UTC (permalink / raw)
  To: kbuild

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

tree:   git://anongit.freedesktop.org/drm/drm-intel drm-intel-next
head:   81637a6ede89b95b6ea7b2f8c594676881110890
commit: 714b1cdb02ee670be1ec5b1190377fef3845acd9 [7/8] drm/i915: refactor skylake scaler code into new file.
config: x86_64-randconfig-m031-20210211 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

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

smatch warnings:
drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237)

vim +/fb +253 drivers/gpu/drm/i915/display/skl_scaler.c

714b1cdb02ee67 Dave Airlie 2021-02-05  213  int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
714b1cdb02ee67 Dave Airlie 2021-02-05  214  			    struct intel_plane_state *plane_state)
714b1cdb02ee67 Dave Airlie 2021-02-05  215  {
714b1cdb02ee67 Dave Airlie 2021-02-05  216  	struct intel_plane *intel_plane =
714b1cdb02ee67 Dave Airlie 2021-02-05  217  		to_intel_plane(plane_state->uapi.plane);
714b1cdb02ee67 Dave Airlie 2021-02-05  218  	struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
714b1cdb02ee67 Dave Airlie 2021-02-05  219  	struct drm_framebuffer *fb = plane_state->hw.fb;
714b1cdb02ee67 Dave Airlie 2021-02-05  220  	int ret;
714b1cdb02ee67 Dave Airlie 2021-02-05  221  	bool force_detach = !fb || !plane_state->uapi.visible;

All this code assumes "fb" can be NULL.

714b1cdb02ee67 Dave Airlie 2021-02-05  222  	bool need_scaler = false;
714b1cdb02ee67 Dave Airlie 2021-02-05  223  
714b1cdb02ee67 Dave Airlie 2021-02-05  224  	/* Pre-gen11 and SDR planes always need a scaler for planar formats. */
714b1cdb02ee67 Dave Airlie 2021-02-05  225  	if (!icl_is_hdr_plane(dev_priv, intel_plane->id) &&
714b1cdb02ee67 Dave Airlie 2021-02-05  226  	    fb && intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
714b1cdb02ee67 Dave Airlie 2021-02-05  227  		need_scaler = true;
714b1cdb02ee67 Dave Airlie 2021-02-05  228  
714b1cdb02ee67 Dave Airlie 2021-02-05  229  	ret = skl_update_scaler(crtc_state, force_detach,
714b1cdb02ee67 Dave Airlie 2021-02-05  230  				drm_plane_index(&intel_plane->base),
714b1cdb02ee67 Dave Airlie 2021-02-05  231  				&plane_state->scaler_id,
714b1cdb02ee67 Dave Airlie 2021-02-05  232  				drm_rect_width(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05  233  				drm_rect_height(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05  234  				drm_rect_width(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05  235  				drm_rect_height(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05  236  				fb ? fb->format : NULL,
714b1cdb02ee67 Dave Airlie 2021-02-05 @237  				fb ? fb->modifier : 0,
714b1cdb02ee67 Dave Airlie 2021-02-05  238  				need_scaler);
714b1cdb02ee67 Dave Airlie 2021-02-05  239  
714b1cdb02ee67 Dave Airlie 2021-02-05  240  	if (ret || plane_state->scaler_id < 0)
714b1cdb02ee67 Dave Airlie 2021-02-05  241  		return ret;
714b1cdb02ee67 Dave Airlie 2021-02-05  242  
714b1cdb02ee67 Dave Airlie 2021-02-05  243  	/* check colorkey */
714b1cdb02ee67 Dave Airlie 2021-02-05  244  	if (plane_state->ckey.flags) {
714b1cdb02ee67 Dave Airlie 2021-02-05  245  		drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05  246  			    "[PLANE:%d:%s] scaling with color key not allowed",
714b1cdb02ee67 Dave Airlie 2021-02-05  247  			    intel_plane->base.base.id,
714b1cdb02ee67 Dave Airlie 2021-02-05  248  			    intel_plane->base.name);
714b1cdb02ee67 Dave Airlie 2021-02-05  249  		return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05  250  	}
714b1cdb02ee67 Dave Airlie 2021-02-05  251  
714b1cdb02ee67 Dave Airlie 2021-02-05  252  	/* Check src format */
714b1cdb02ee67 Dave Airlie 2021-02-05 @253  	switch (fb->format->format) {
                                                        ^^^^^^^^^^^^
Unchecked dereference.

714b1cdb02ee67 Dave Airlie 2021-02-05  254  	case DRM_FORMAT_RGB565:
714b1cdb02ee67 Dave Airlie 2021-02-05  255  	case DRM_FORMAT_XBGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  256  	case DRM_FORMAT_XRGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  257  	case DRM_FORMAT_ABGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  258  	case DRM_FORMAT_ARGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  259  	case DRM_FORMAT_XRGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  260  	case DRM_FORMAT_XBGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  261  	case DRM_FORMAT_ARGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  262  	case DRM_FORMAT_ABGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  263  	case DRM_FORMAT_YUYV:
714b1cdb02ee67 Dave Airlie 2021-02-05  264  	case DRM_FORMAT_YVYU:
714b1cdb02ee67 Dave Airlie 2021-02-05  265  	case DRM_FORMAT_UYVY:
714b1cdb02ee67 Dave Airlie 2021-02-05  266  	case DRM_FORMAT_VYUY:
714b1cdb02ee67 Dave Airlie 2021-02-05  267  	case DRM_FORMAT_NV12:
714b1cdb02ee67 Dave Airlie 2021-02-05  268  	case DRM_FORMAT_XYUV8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  269  	case DRM_FORMAT_P010:
714b1cdb02ee67 Dave Airlie 2021-02-05  270  	case DRM_FORMAT_P012:
714b1cdb02ee67 Dave Airlie 2021-02-05  271  	case DRM_FORMAT_P016:
714b1cdb02ee67 Dave Airlie 2021-02-05  272  	case DRM_FORMAT_Y210:
714b1cdb02ee67 Dave Airlie 2021-02-05  273  	case DRM_FORMAT_Y212:
714b1cdb02ee67 Dave Airlie 2021-02-05  274  	case DRM_FORMAT_Y216:
714b1cdb02ee67 Dave Airlie 2021-02-05  275  	case DRM_FORMAT_XVYU2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  276  	case DRM_FORMAT_XVYU12_16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05  277  	case DRM_FORMAT_XVYU16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05  278  		break;
714b1cdb02ee67 Dave Airlie 2021-02-05  279  	case DRM_FORMAT_XBGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  280  	case DRM_FORMAT_ABGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  281  	case DRM_FORMAT_XRGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  282  	case DRM_FORMAT_ARGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  283  		if (INTEL_GEN(dev_priv) >= 11)
714b1cdb02ee67 Dave Airlie 2021-02-05  284  			break;
714b1cdb02ee67 Dave Airlie 2021-02-05  285  		fallthrough;
714b1cdb02ee67 Dave Airlie 2021-02-05  286  	default:
714b1cdb02ee67 Dave Airlie 2021-02-05  287  		drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05  288  			    "[PLANE:%d:%s] FB:%d unsupported scaling format 0x%x\n",
714b1cdb02ee67 Dave Airlie 2021-02-05  289  			    intel_plane->base.base.id, intel_plane->base.name,
714b1cdb02ee67 Dave Airlie 2021-02-05  290  			    fb->base.id, fb->format->format);
714b1cdb02ee67 Dave Airlie 2021-02-05  291  		return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05  292  	}
714b1cdb02ee67 Dave Airlie 2021-02-05  293  
714b1cdb02ee67 Dave Airlie 2021-02-05  294  	return 0;
714b1cdb02ee67 Dave Airlie 2021-02-05  295  }

---
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: 33873 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [drm-drm-intel:drm-intel-next 7/8] drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237)
@ 2021-02-15 11:02 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-02-15 11:02 UTC (permalink / raw)
  To: kbuild-all

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

tree:   git://anongit.freedesktop.org/drm/drm-intel drm-intel-next
head:   81637a6ede89b95b6ea7b2f8c594676881110890
commit: 714b1cdb02ee670be1ec5b1190377fef3845acd9 [7/8] drm/i915: refactor skylake scaler code into new file.
config: x86_64-randconfig-m031-20210211 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

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

smatch warnings:
drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237)

vim +/fb +253 drivers/gpu/drm/i915/display/skl_scaler.c

714b1cdb02ee67 Dave Airlie 2021-02-05  213  int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
714b1cdb02ee67 Dave Airlie 2021-02-05  214  			    struct intel_plane_state *plane_state)
714b1cdb02ee67 Dave Airlie 2021-02-05  215  {
714b1cdb02ee67 Dave Airlie 2021-02-05  216  	struct intel_plane *intel_plane =
714b1cdb02ee67 Dave Airlie 2021-02-05  217  		to_intel_plane(plane_state->uapi.plane);
714b1cdb02ee67 Dave Airlie 2021-02-05  218  	struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
714b1cdb02ee67 Dave Airlie 2021-02-05  219  	struct drm_framebuffer *fb = plane_state->hw.fb;
714b1cdb02ee67 Dave Airlie 2021-02-05  220  	int ret;
714b1cdb02ee67 Dave Airlie 2021-02-05  221  	bool force_detach = !fb || !plane_state->uapi.visible;

All this code assumes "fb" can be NULL.

714b1cdb02ee67 Dave Airlie 2021-02-05  222  	bool need_scaler = false;
714b1cdb02ee67 Dave Airlie 2021-02-05  223  
714b1cdb02ee67 Dave Airlie 2021-02-05  224  	/* Pre-gen11 and SDR planes always need a scaler for planar formats. */
714b1cdb02ee67 Dave Airlie 2021-02-05  225  	if (!icl_is_hdr_plane(dev_priv, intel_plane->id) &&
714b1cdb02ee67 Dave Airlie 2021-02-05  226  	    fb && intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
714b1cdb02ee67 Dave Airlie 2021-02-05  227  		need_scaler = true;
714b1cdb02ee67 Dave Airlie 2021-02-05  228  
714b1cdb02ee67 Dave Airlie 2021-02-05  229  	ret = skl_update_scaler(crtc_state, force_detach,
714b1cdb02ee67 Dave Airlie 2021-02-05  230  				drm_plane_index(&intel_plane->base),
714b1cdb02ee67 Dave Airlie 2021-02-05  231  				&plane_state->scaler_id,
714b1cdb02ee67 Dave Airlie 2021-02-05  232  				drm_rect_width(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05  233  				drm_rect_height(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05  234  				drm_rect_width(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05  235  				drm_rect_height(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05  236  				fb ? fb->format : NULL,
714b1cdb02ee67 Dave Airlie 2021-02-05 @237  				fb ? fb->modifier : 0,
714b1cdb02ee67 Dave Airlie 2021-02-05  238  				need_scaler);
714b1cdb02ee67 Dave Airlie 2021-02-05  239  
714b1cdb02ee67 Dave Airlie 2021-02-05  240  	if (ret || plane_state->scaler_id < 0)
714b1cdb02ee67 Dave Airlie 2021-02-05  241  		return ret;
714b1cdb02ee67 Dave Airlie 2021-02-05  242  
714b1cdb02ee67 Dave Airlie 2021-02-05  243  	/* check colorkey */
714b1cdb02ee67 Dave Airlie 2021-02-05  244  	if (plane_state->ckey.flags) {
714b1cdb02ee67 Dave Airlie 2021-02-05  245  		drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05  246  			    "[PLANE:%d:%s] scaling with color key not allowed",
714b1cdb02ee67 Dave Airlie 2021-02-05  247  			    intel_plane->base.base.id,
714b1cdb02ee67 Dave Airlie 2021-02-05  248  			    intel_plane->base.name);
714b1cdb02ee67 Dave Airlie 2021-02-05  249  		return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05  250  	}
714b1cdb02ee67 Dave Airlie 2021-02-05  251  
714b1cdb02ee67 Dave Airlie 2021-02-05  252  	/* Check src format */
714b1cdb02ee67 Dave Airlie 2021-02-05 @253  	switch (fb->format->format) {
                                                        ^^^^^^^^^^^^
Unchecked dereference.

714b1cdb02ee67 Dave Airlie 2021-02-05  254  	case DRM_FORMAT_RGB565:
714b1cdb02ee67 Dave Airlie 2021-02-05  255  	case DRM_FORMAT_XBGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  256  	case DRM_FORMAT_XRGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  257  	case DRM_FORMAT_ABGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  258  	case DRM_FORMAT_ARGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  259  	case DRM_FORMAT_XRGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  260  	case DRM_FORMAT_XBGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  261  	case DRM_FORMAT_ARGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  262  	case DRM_FORMAT_ABGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  263  	case DRM_FORMAT_YUYV:
714b1cdb02ee67 Dave Airlie 2021-02-05  264  	case DRM_FORMAT_YVYU:
714b1cdb02ee67 Dave Airlie 2021-02-05  265  	case DRM_FORMAT_UYVY:
714b1cdb02ee67 Dave Airlie 2021-02-05  266  	case DRM_FORMAT_VYUY:
714b1cdb02ee67 Dave Airlie 2021-02-05  267  	case DRM_FORMAT_NV12:
714b1cdb02ee67 Dave Airlie 2021-02-05  268  	case DRM_FORMAT_XYUV8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  269  	case DRM_FORMAT_P010:
714b1cdb02ee67 Dave Airlie 2021-02-05  270  	case DRM_FORMAT_P012:
714b1cdb02ee67 Dave Airlie 2021-02-05  271  	case DRM_FORMAT_P016:
714b1cdb02ee67 Dave Airlie 2021-02-05  272  	case DRM_FORMAT_Y210:
714b1cdb02ee67 Dave Airlie 2021-02-05  273  	case DRM_FORMAT_Y212:
714b1cdb02ee67 Dave Airlie 2021-02-05  274  	case DRM_FORMAT_Y216:
714b1cdb02ee67 Dave Airlie 2021-02-05  275  	case DRM_FORMAT_XVYU2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  276  	case DRM_FORMAT_XVYU12_16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05  277  	case DRM_FORMAT_XVYU16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05  278  		break;
714b1cdb02ee67 Dave Airlie 2021-02-05  279  	case DRM_FORMAT_XBGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  280  	case DRM_FORMAT_ABGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  281  	case DRM_FORMAT_XRGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  282  	case DRM_FORMAT_ARGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  283  		if (INTEL_GEN(dev_priv) >= 11)
714b1cdb02ee67 Dave Airlie 2021-02-05  284  			break;
714b1cdb02ee67 Dave Airlie 2021-02-05  285  		fallthrough;
714b1cdb02ee67 Dave Airlie 2021-02-05  286  	default:
714b1cdb02ee67 Dave Airlie 2021-02-05  287  		drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05  288  			    "[PLANE:%d:%s] FB:%d unsupported scaling format 0x%x\n",
714b1cdb02ee67 Dave Airlie 2021-02-05  289  			    intel_plane->base.base.id, intel_plane->base.name,
714b1cdb02ee67 Dave Airlie 2021-02-05  290  			    fb->base.id, fb->format->format);
714b1cdb02ee67 Dave Airlie 2021-02-05  291  		return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05  292  	}
714b1cdb02ee67 Dave Airlie 2021-02-05  293  
714b1cdb02ee67 Dave Airlie 2021-02-05  294  	return 0;
714b1cdb02ee67 Dave Airlie 2021-02-05  295  }

---
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: 33873 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [drm-drm-intel:drm-intel-next 7/8] drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237)
@ 2021-02-11 15:03 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2021-02-11 15:03 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: Dave Airlie <airlied@redhat.com>
CC: Jani Nikula <jani.nikula@intel.com>
CC: "Ville Syrjälä" <ville.syrjala@linux.intel.com>

tree:   git://anongit.freedesktop.org/drm/drm-intel drm-intel-next
head:   81637a6ede89b95b6ea7b2f8c594676881110890
commit: 714b1cdb02ee670be1ec5b1190377fef3845acd9 [7/8] drm/i915: refactor skylake scaler code into new file.
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: x86_64-randconfig-m031-20210211 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

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

smatch warnings:
drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237)

vim +/fb +253 drivers/gpu/drm/i915/display/skl_scaler.c

714b1cdb02ee67 Dave Airlie 2021-02-05  203  
714b1cdb02ee67 Dave Airlie 2021-02-05  204  /**
714b1cdb02ee67 Dave Airlie 2021-02-05  205   * skl_update_scaler_plane - Stages update to scaler state for a given plane.
714b1cdb02ee67 Dave Airlie 2021-02-05  206   * @crtc_state: crtc's scaler state
714b1cdb02ee67 Dave Airlie 2021-02-05  207   * @plane_state: atomic plane state to update
714b1cdb02ee67 Dave Airlie 2021-02-05  208   *
714b1cdb02ee67 Dave Airlie 2021-02-05  209   * Return
714b1cdb02ee67 Dave Airlie 2021-02-05  210   *     0 - scaler_usage updated successfully
714b1cdb02ee67 Dave Airlie 2021-02-05  211   *    error - requested scaling cannot be supported or other error condition
714b1cdb02ee67 Dave Airlie 2021-02-05  212   */
714b1cdb02ee67 Dave Airlie 2021-02-05  213  int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
714b1cdb02ee67 Dave Airlie 2021-02-05  214  			    struct intel_plane_state *plane_state)
714b1cdb02ee67 Dave Airlie 2021-02-05  215  {
714b1cdb02ee67 Dave Airlie 2021-02-05  216  	struct intel_plane *intel_plane =
714b1cdb02ee67 Dave Airlie 2021-02-05  217  		to_intel_plane(plane_state->uapi.plane);
714b1cdb02ee67 Dave Airlie 2021-02-05  218  	struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
714b1cdb02ee67 Dave Airlie 2021-02-05  219  	struct drm_framebuffer *fb = plane_state->hw.fb;
714b1cdb02ee67 Dave Airlie 2021-02-05  220  	int ret;
714b1cdb02ee67 Dave Airlie 2021-02-05  221  	bool force_detach = !fb || !plane_state->uapi.visible;
714b1cdb02ee67 Dave Airlie 2021-02-05  222  	bool need_scaler = false;
714b1cdb02ee67 Dave Airlie 2021-02-05  223  
714b1cdb02ee67 Dave Airlie 2021-02-05  224  	/* Pre-gen11 and SDR planes always need a scaler for planar formats. */
714b1cdb02ee67 Dave Airlie 2021-02-05  225  	if (!icl_is_hdr_plane(dev_priv, intel_plane->id) &&
714b1cdb02ee67 Dave Airlie 2021-02-05  226  	    fb && intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
714b1cdb02ee67 Dave Airlie 2021-02-05  227  		need_scaler = true;
714b1cdb02ee67 Dave Airlie 2021-02-05  228  
714b1cdb02ee67 Dave Airlie 2021-02-05  229  	ret = skl_update_scaler(crtc_state, force_detach,
714b1cdb02ee67 Dave Airlie 2021-02-05  230  				drm_plane_index(&intel_plane->base),
714b1cdb02ee67 Dave Airlie 2021-02-05  231  				&plane_state->scaler_id,
714b1cdb02ee67 Dave Airlie 2021-02-05  232  				drm_rect_width(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05  233  				drm_rect_height(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05  234  				drm_rect_width(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05  235  				drm_rect_height(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05  236  				fb ? fb->format : NULL,
714b1cdb02ee67 Dave Airlie 2021-02-05 @237  				fb ? fb->modifier : 0,
714b1cdb02ee67 Dave Airlie 2021-02-05  238  				need_scaler);
714b1cdb02ee67 Dave Airlie 2021-02-05  239  
714b1cdb02ee67 Dave Airlie 2021-02-05  240  	if (ret || plane_state->scaler_id < 0)
714b1cdb02ee67 Dave Airlie 2021-02-05  241  		return ret;
714b1cdb02ee67 Dave Airlie 2021-02-05  242  
714b1cdb02ee67 Dave Airlie 2021-02-05  243  	/* check colorkey */
714b1cdb02ee67 Dave Airlie 2021-02-05  244  	if (plane_state->ckey.flags) {
714b1cdb02ee67 Dave Airlie 2021-02-05  245  		drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05  246  			    "[PLANE:%d:%s] scaling with color key not allowed",
714b1cdb02ee67 Dave Airlie 2021-02-05  247  			    intel_plane->base.base.id,
714b1cdb02ee67 Dave Airlie 2021-02-05  248  			    intel_plane->base.name);
714b1cdb02ee67 Dave Airlie 2021-02-05  249  		return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05  250  	}
714b1cdb02ee67 Dave Airlie 2021-02-05  251  
714b1cdb02ee67 Dave Airlie 2021-02-05  252  	/* Check src format */
714b1cdb02ee67 Dave Airlie 2021-02-05 @253  	switch (fb->format->format) {
714b1cdb02ee67 Dave Airlie 2021-02-05  254  	case DRM_FORMAT_RGB565:
714b1cdb02ee67 Dave Airlie 2021-02-05  255  	case DRM_FORMAT_XBGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  256  	case DRM_FORMAT_XRGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  257  	case DRM_FORMAT_ABGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  258  	case DRM_FORMAT_ARGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  259  	case DRM_FORMAT_XRGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  260  	case DRM_FORMAT_XBGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  261  	case DRM_FORMAT_ARGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  262  	case DRM_FORMAT_ABGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  263  	case DRM_FORMAT_YUYV:
714b1cdb02ee67 Dave Airlie 2021-02-05  264  	case DRM_FORMAT_YVYU:
714b1cdb02ee67 Dave Airlie 2021-02-05  265  	case DRM_FORMAT_UYVY:
714b1cdb02ee67 Dave Airlie 2021-02-05  266  	case DRM_FORMAT_VYUY:
714b1cdb02ee67 Dave Airlie 2021-02-05  267  	case DRM_FORMAT_NV12:
714b1cdb02ee67 Dave Airlie 2021-02-05  268  	case DRM_FORMAT_XYUV8888:
714b1cdb02ee67 Dave Airlie 2021-02-05  269  	case DRM_FORMAT_P010:
714b1cdb02ee67 Dave Airlie 2021-02-05  270  	case DRM_FORMAT_P012:
714b1cdb02ee67 Dave Airlie 2021-02-05  271  	case DRM_FORMAT_P016:
714b1cdb02ee67 Dave Airlie 2021-02-05  272  	case DRM_FORMAT_Y210:
714b1cdb02ee67 Dave Airlie 2021-02-05  273  	case DRM_FORMAT_Y212:
714b1cdb02ee67 Dave Airlie 2021-02-05  274  	case DRM_FORMAT_Y216:
714b1cdb02ee67 Dave Airlie 2021-02-05  275  	case DRM_FORMAT_XVYU2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05  276  	case DRM_FORMAT_XVYU12_16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05  277  	case DRM_FORMAT_XVYU16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05  278  		break;
714b1cdb02ee67 Dave Airlie 2021-02-05  279  	case DRM_FORMAT_XBGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  280  	case DRM_FORMAT_ABGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  281  	case DRM_FORMAT_XRGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  282  	case DRM_FORMAT_ARGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05  283  		if (INTEL_GEN(dev_priv) >= 11)
714b1cdb02ee67 Dave Airlie 2021-02-05  284  			break;
714b1cdb02ee67 Dave Airlie 2021-02-05  285  		fallthrough;
714b1cdb02ee67 Dave Airlie 2021-02-05  286  	default:
714b1cdb02ee67 Dave Airlie 2021-02-05  287  		drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05  288  			    "[PLANE:%d:%s] FB:%d unsupported scaling format 0x%x\n",
714b1cdb02ee67 Dave Airlie 2021-02-05  289  			    intel_plane->base.base.id, intel_plane->base.name,
714b1cdb02ee67 Dave Airlie 2021-02-05  290  			    fb->base.id, fb->format->format);
714b1cdb02ee67 Dave Airlie 2021-02-05  291  		return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05  292  	}
714b1cdb02ee67 Dave Airlie 2021-02-05  293  
714b1cdb02ee67 Dave Airlie 2021-02-05  294  	return 0;
714b1cdb02ee67 Dave Airlie 2021-02-05  295  }
714b1cdb02ee67 Dave Airlie 2021-02-05  296  

---
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: 33873 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-15 11:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 11:02 [drm-drm-intel:drm-intel-next 7/8] drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 237) Dan Carpenter
2021-02-15 11:02 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-02-11 15:03 kernel test robot

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.