[PATCH 4/4] drm/crtc: add drmm_crtc_alloc_with_planes()
kernel test robot
lkp at intel.com
Wed Aug 26 18:04:04 UTC 2020
Hi Philipp,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-tip/drm-tip linus/master v5.9-rc2 next-20200826]
[cannot apply to tegra-drm/drm/tegra/for-next drm-exynos/exynos-drm-next 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/Philipp-Zabel/drm-add-drmm_encoder_alloc/20200826-203629
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: arm-randconfig-r001-20200826 (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
# 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 at intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/drm_crtc.c: In function '__drm_crtc_init_with_planes':
>> drivers/gpu/drm/drm_crtc.c:267:3: warning: function '__drm_crtc_init_with_planes' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
267 | crtc->name = kvasprintf(GFP_KERNEL, name, ap);
| ^~~~
# https://github.com/0day-ci/linux/commit/236b7bc44ae0fdecc8e80c5aba0655ca14fdfb23
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Philipp-Zabel/drm-add-drmm_encoder_alloc/20200826-203629
git checkout 236b7bc44ae0fdecc8e80c5aba0655ca14fdfb23
vim +267 drivers/gpu/drm/drm_crtc.c
35f8cc3b9a92c66 Gustavo Padovan 2016-12-06 207
e954f77f6330028 Simon Ser 2020-05-21 208 /**
e954f77f6330028 Simon Ser 2020-05-21 209 * DOC: standard CRTC properties
e954f77f6330028 Simon Ser 2020-05-21 210 *
e954f77f6330028 Simon Ser 2020-05-21 211 * DRM CRTCs have a few standardized properties:
e954f77f6330028 Simon Ser 2020-05-21 212 *
e954f77f6330028 Simon Ser 2020-05-21 213 * ACTIVE:
e954f77f6330028 Simon Ser 2020-05-21 214 * Atomic property for setting the power state of the CRTC. When set to 1
e954f77f6330028 Simon Ser 2020-05-21 215 * the CRTC will actively display content. When set to 0 the CRTC will be
e954f77f6330028 Simon Ser 2020-05-21 216 * powered off. There is no expectation that user-space will reset CRTC
e954f77f6330028 Simon Ser 2020-05-21 217 * resources like the mode and planes when setting ACTIVE to 0.
e954f77f6330028 Simon Ser 2020-05-21 218 *
e954f77f6330028 Simon Ser 2020-05-21 219 * User-space can rely on an ACTIVE change to 1 to never fail an atomic
e954f77f6330028 Simon Ser 2020-05-21 220 * test as long as no other property has changed. If a change to ACTIVE
e954f77f6330028 Simon Ser 2020-05-21 221 * fails an atomic test, this is a driver bug. For this reason setting
e954f77f6330028 Simon Ser 2020-05-21 222 * ACTIVE to 0 must not release internal resources (like reserved memory
e954f77f6330028 Simon Ser 2020-05-21 223 * bandwidth or clock generators).
e954f77f6330028 Simon Ser 2020-05-21 224 *
e954f77f6330028 Simon Ser 2020-05-21 225 * Note that the legacy DPMS property on connectors is internally routed
e954f77f6330028 Simon Ser 2020-05-21 226 * to control this property for atomic drivers.
e954f77f6330028 Simon Ser 2020-05-21 227 * MODE_ID:
e954f77f6330028 Simon Ser 2020-05-21 228 * Atomic property for setting the CRTC display timings. The value is the
e954f77f6330028 Simon Ser 2020-05-21 229 * ID of a blob containing the DRM mode info. To disable the CRTC,
e954f77f6330028 Simon Ser 2020-05-21 230 * user-space must set this property to 0.
e954f77f6330028 Simon Ser 2020-05-21 231 *
e954f77f6330028 Simon Ser 2020-05-21 232 * Setting MODE_ID to 0 will release reserved resources for the CRTC.
e954f77f6330028 Simon Ser 2020-05-21 233 */
e954f77f6330028 Simon Ser 2020-05-21 234
236b7bc44ae0fde Philipp Zabel 2020-08-26 235 static int __drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc,
e13161af80c185e Matt Roper 2014-04-01 236 struct drm_plane *primary,
fc1d3e44ef7c1db Matt Roper 2014-06-10 237 struct drm_plane *cursor,
f98828769c8838f Ville Syrjälä 2015-12-09 238 const struct drm_crtc_funcs *funcs,
236b7bc44ae0fde Philipp Zabel 2020-08-26 239 const char *name, va_list ap)
f453ba0460742ad Dave Airlie 2008-11-07 240 {
51fd371bbaf9401 Rob Clark 2013-11-19 241 struct drm_mode_config *config = &dev->mode_config;
6bfc56aa89f963b Ville Syrjälä 2012-03-13 242 int ret;
6bfc56aa89f963b Ville Syrjälä 2012-03-13 243
522cf91f30cb010 Benjamin Gaignard 2015-03-17 244 WARN_ON(primary && primary->type != DRM_PLANE_TYPE_PRIMARY);
522cf91f30cb010 Benjamin Gaignard 2015-03-17 245 WARN_ON(cursor && cursor->type != DRM_PLANE_TYPE_CURSOR);
522cf91f30cb010 Benjamin Gaignard 2015-03-17 246
2a8d3eac3d6e116 Ville Syrjälä 2018-01-25 247 /* crtc index is used with 32bit bitmasks */
2a8d3eac3d6e116 Ville Syrjälä 2018-01-25 248 if (WARN_ON(config->num_crtc >= 32))
2a8d3eac3d6e116 Ville Syrjälä 2018-01-25 249 return -EINVAL;
2a8d3eac3d6e116 Ville Syrjälä 2018-01-25 250
ba1f665f161ce11 Haneen Mohammed 2018-05-25 251 WARN_ON(drm_drv_uses_atomic_modeset(dev) &&
ba1f665f161ce11 Haneen Mohammed 2018-05-25 252 (!funcs->atomic_destroy_state ||
ba1f665f161ce11 Haneen Mohammed 2018-05-25 253 !funcs->atomic_duplicate_state));
ba1f665f161ce11 Haneen Mohammed 2018-05-25 254
f453ba0460742ad Dave Airlie 2008-11-07 255 crtc->dev = dev;
f453ba0460742ad Dave Airlie 2008-11-07 256 crtc->funcs = funcs;
f453ba0460742ad Dave Airlie 2008-11-07 257
3b24f7d67581659 Daniel Vetter 2016-06-08 258 INIT_LIST_HEAD(&crtc->commit_list);
3b24f7d67581659 Daniel Vetter 2016-06-08 259 spin_lock_init(&crtc->commit_lock);
3b24f7d67581659 Daniel Vetter 2016-06-08 260
51fd371bbaf9401 Rob Clark 2013-11-19 261 drm_modeset_lock_init(&crtc->mutex);
2135ea7aafa26b6 Thierry Reding 2017-02-28 262 ret = drm_mode_object_add(dev, &crtc->base, DRM_MODE_OBJECT_CRTC);
6bfc56aa89f963b Ville Syrjälä 2012-03-13 263 if (ret)
baf698b0496e93f Daniel Vetter 2014-11-12 264 return ret;
f453ba0460742ad Dave Airlie 2008-11-07 265
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 266 if (name) {
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 @267 crtc->name = kvasprintf(GFP_KERNEL, name, ap);
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 268 } else {
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 269 crtc->name = kasprintf(GFP_KERNEL, "crtc-%d",
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 270 drm_num_crtcs(dev));
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 271 }
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 272 if (!crtc->name) {
7c8f6d2577c7565 Dave Airlie 2016-04-15 273 drm_mode_object_unregister(dev, &crtc->base);
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 274 return -ENOMEM;
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 275 }
fa3ab4c2113c74a Ville Syrjälä 2015-12-08 276
6d6003c4b613c93 Gustavo Padovan 2016-11-15 277 crtc->fence_context = dma_fence_context_alloc(1);
6d6003c4b613c93 Gustavo Padovan 2016-11-15 278 spin_lock_init(&crtc->fence_lock);
6d6003c4b613c93 Gustavo Padovan 2016-11-15 279 snprintf(crtc->timeline_name, sizeof(crtc->timeline_name),
6d6003c4b613c93 Gustavo Padovan 2016-11-15 280 "CRTC:%d-%s", crtc->base.id, crtc->name);
6d6003c4b613c93 Gustavo Padovan 2016-11-15 281
bffd9de02977025 Paulo Zanoni 2012-05-15 282 crtc->base.properties = &crtc->properties;
bffd9de02977025 Paulo Zanoni 2012-05-15 283
51fd371bbaf9401 Rob Clark 2013-11-19 284 list_add_tail(&crtc->head, &config->crtc_list);
490d3d1b91201fd Chris Wilson 2016-05-27 285 crtc->index = config->num_crtc++;
6bfc56aa89f963b Ville Syrjälä 2012-03-13 286
e13161af80c185e Matt Roper 2014-04-01 287 crtc->primary = primary;
fc1d3e44ef7c1db Matt Roper 2014-06-10 288 crtc->cursor = cursor;
7abc7d47510c75d Rob Clark 2016-11-05 289 if (primary && !primary->possible_crtcs)
6a52193bd0dd683 Ville Syrjälä 2018-06-26 290 primary->possible_crtcs = drm_crtc_mask(crtc);
7abc7d47510c75d Rob Clark 2016-11-05 291 if (cursor && !cursor->possible_crtcs)
6a52193bd0dd683 Ville Syrjälä 2018-06-26 292 cursor->possible_crtcs = drm_crtc_mask(crtc);
e13161af80c185e Matt Roper 2014-04-01 293
9edbf1fa600a2ef Tomeu Vizoso 2016-10-06 294 ret = drm_crtc_crc_init(crtc);
9edbf1fa600a2ef Tomeu Vizoso 2016-10-06 295 if (ret) {
9edbf1fa600a2ef Tomeu Vizoso 2016-10-06 296 drm_mode_object_unregister(dev, &crtc->base);
9edbf1fa600a2ef Tomeu Vizoso 2016-10-06 297 return ret;
9edbf1fa600a2ef Tomeu Vizoso 2016-10-06 298 }
9edbf1fa600a2ef Tomeu Vizoso 2016-10-06 299
eab3bbeffd15212 Daniel Vetter 2015-01-22 300 if (drm_core_check_feature(dev, DRIVER_ATOMIC)) {
eab3bbeffd15212 Daniel Vetter 2015-01-22 301 drm_object_attach_property(&crtc->base, config->prop_active, 0);
955f3c334f0fb2b Daniel Stone 2015-05-25 302 drm_object_attach_property(&crtc->base, config->prop_mode_id, 0);
beaf5af48034c9e Gustavo Padovan 2016-11-16 303 drm_object_attach_property(&crtc->base,
beaf5af48034c9e Gustavo Padovan 2016-11-16 304 config->prop_out_fence_ptr, 0);
1398958cfd8d331 Nicholas Kazlauskas 2018-10-04 305 drm_object_attach_property(&crtc->base,
1398958cfd8d331 Nicholas Kazlauskas 2018-10-04 306 config->prop_vrr_enabled, 0);
eab3bbeffd15212 Daniel Vetter 2015-01-22 307 }
eab3bbeffd15212 Daniel Vetter 2015-01-22 308
baf698b0496e93f Daniel Vetter 2014-11-12 309 return 0;
f453ba0460742ad Dave Airlie 2008-11-07 310 }
236b7bc44ae0fde Philipp Zabel 2020-08-26 311
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 33490 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200827/62695438/attachment-0001.gz>
More information about the dri-devel
mailing list