tree:
https://android.googlesource.com/kernel/common android-4.19
head: 3c8a7d12dee6db25100a2035fd559ff7e38cbf56
commit: 4ae8f7c45ae1dd6dc7b680092a0925c41950c111 [3/9] BACKPORT: drm: Add HDR source
metadata property
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
cppcheck warnings: (new ones prefixed by >>)
drivers/gpu/drm/drm_atomic.c:1619:6: warning: The if condition is the same as the
previous if condition [duplicateCondition]
if (crtc)
^
drivers/gpu/drm/drm_atomic.c:1611:6: note: First condition
if (crtc) {
^
drivers/gpu/drm/drm_atomic.c:1619:6: note: Second condition
if (crtc)
^
> drivers/gpu/drm/drm_atomic.c:1424:7: warning: Local variable
'ret' shadows outer variable [shadowVariable]
int ret =
drm_atomic_set_writeback_fb_for_connector(state, fb);
^
drivers/gpu/drm/drm_atomic.c:1354:6: note: Shadowed declaration
int ret;
^
drivers/gpu/drm/drm_atomic.c:1424:7: note: Shadow variable
int ret = drm_atomic_set_writeback_fb_for_connector(state, fb);
^
vim +/ret +1424 drivers/gpu/drm/drm_atomic.c
cc4ceb484b37b9 Daniel Vetter 2014-07-25 1331
40ecc694e114a0 Rob Clark 2014-12-18 1332 /**
40ecc694e114a0 Rob Clark 2014-12-18 1333 * drm_atomic_connector_set_property
- set property on connector.
40ecc694e114a0 Rob Clark 2014-12-18 1334 * @connector: the drm connector to
set a property on
40ecc694e114a0 Rob Clark 2014-12-18 1335 * @state: the state object to update
with the new property value
40ecc694e114a0 Rob Clark 2014-12-18 1336 * @property: the property to set
40ecc694e114a0 Rob Clark 2014-12-18 1337 * @val: the new property value
40ecc694e114a0 Rob Clark 2014-12-18 1338 *
d574528a64c3a3 Daniel Vetter 2017-01-25 1339 * This function handles generic/core
properties and calls out to driver's
d574528a64c3a3 Daniel Vetter 2017-01-25 1340 *
&drm_connector_funcs.atomic_set_property for driver properties. To ensure
d574528a64c3a3 Daniel Vetter 2017-01-25 1341 * consistent behavior you must call
this function rather than the driver hook
d574528a64c3a3 Daniel Vetter 2017-01-25 1342 * directly.
40ecc694e114a0 Rob Clark 2014-12-18 1343 *
40ecc694e114a0 Rob Clark 2014-12-18 1344 * RETURNS:
40ecc694e114a0 Rob Clark 2014-12-18 1345 * Zero on success, error code on
failure
40ecc694e114a0 Rob Clark 2014-12-18 1346 */
482b0e3c2fd73b Daniel Vetter 2017-07-25 1347 static int
drm_atomic_connector_set_property(struct drm_connector *connector,
40ecc694e114a0 Rob Clark 2014-12-18 1348 struct drm_connector_state *state,
struct drm_property *property,
40ecc694e114a0 Rob Clark 2014-12-18 1349 uint64_t val)
40ecc694e114a0 Rob Clark 2014-12-18 1350 {
40ecc694e114a0 Rob Clark 2014-12-18 1351 struct drm_device *dev =
connector->dev;
40ecc694e114a0 Rob Clark 2014-12-18 1352 struct drm_mode_config *config =
&dev->mode_config;
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1353 bool replaced = false;
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1354 int ret;
40ecc694e114a0 Rob Clark 2014-12-18 1355
ae16c597b61ae4 Rob Clark 2014-12-18 1356 if (property ==
config->prop_crtc_id) {
418da17214aca5 Keith Packard 2017-03-14 1357 struct drm_crtc *crtc =
drm_crtc_find(dev, NULL, val);
ae16c597b61ae4 Rob Clark 2014-12-18 1358 return
drm_atomic_set_crtc_for_connector(state, crtc);
ae16c597b61ae4 Rob Clark 2014-12-18 1359 } else if (property ==
config->dpms_property) {
40ecc694e114a0 Rob Clark 2014-12-18 1360 /* setting DPMS property requires
special handling, which
40ecc694e114a0 Rob Clark 2014-12-18 1361 * is done in legacy setprop path
for us. Disallow (for
40ecc694e114a0 Rob Clark 2014-12-18 1362 * now?) atomic writes to DPMS
property:
40ecc694e114a0 Rob Clark 2014-12-18 1363 */
40ecc694e114a0 Rob Clark 2014-12-18 1364 return -EINVAL;
299a16b163c95f Boris Brezillon 2016-12-02 1365 } else if (property ==
config->tv_select_subconnector_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1366 state->tv.subconnector = val;
299a16b163c95f Boris Brezillon 2016-12-02 1367 } else if (property ==
config->tv_left_margin_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1368 state->tv.margins.left = val;
299a16b163c95f Boris Brezillon 2016-12-02 1369 } else if (property ==
config->tv_right_margin_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1370 state->tv.margins.right = val;
299a16b163c95f Boris Brezillon 2016-12-02 1371 } else if (property ==
config->tv_top_margin_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1372 state->tv.margins.top = val;
299a16b163c95f Boris Brezillon 2016-12-02 1373 } else if (property ==
config->tv_bottom_margin_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1374 state->tv.margins.bottom = val;
299a16b163c95f Boris Brezillon 2016-12-02 1375 } else if (property ==
config->tv_mode_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1376 state->tv.mode = val;
299a16b163c95f Boris Brezillon 2016-12-02 1377 } else if (property ==
config->tv_brightness_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1378 state->tv.brightness = val;
299a16b163c95f Boris Brezillon 2016-12-02 1379 } else if (property ==
config->tv_contrast_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1380 state->tv.contrast = val;
299a16b163c95f Boris Brezillon 2016-12-02 1381 } else if (property ==
config->tv_flicker_reduction_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1382 state->tv.flicker_reduction =
val;
299a16b163c95f Boris Brezillon 2016-12-02 1383 } else if (property ==
config->tv_overscan_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1384 state->tv.overscan = val;
299a16b163c95f Boris Brezillon 2016-12-02 1385 } else if (property ==
config->tv_saturation_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1386 state->tv.saturation = val;
299a16b163c95f Boris Brezillon 2016-12-02 1387 } else if (property ==
config->tv_hue_property) {
299a16b163c95f Boris Brezillon 2016-12-02 1388 state->tv.hue = val;
40ee6fbef75fe6 Manasi Navare 2016-12-16 1389 } else if (property ==
config->link_status_property) {
40ee6fbef75fe6 Manasi Navare 2016-12-16 1390 /* Never downgrade from GOOD to BAD
on userspace's request here,
40ee6fbef75fe6 Manasi Navare 2016-12-16 1391 * only hw issues can do that.
40ee6fbef75fe6 Manasi Navare 2016-12-16 1392 *
40ee6fbef75fe6 Manasi Navare 2016-12-16 1393 * For an atomic property the
userspace doesn't need to be able
40ee6fbef75fe6 Manasi Navare 2016-12-16 1394 * to understand all the
properties, but needs to be able to
40ee6fbef75fe6 Manasi Navare 2016-12-16 1395 * restore the state it wants on VT
switch. So if the userspace
40ee6fbef75fe6 Manasi Navare 2016-12-16 1396 * tries to change the link_status
from GOOD to BAD, driver
40ee6fbef75fe6 Manasi Navare 2016-12-16 1397 * silently rejects it and returns
a 0. This prevents userspace
40ee6fbef75fe6 Manasi Navare 2016-12-16 1398 * from accidently breaking the
display when it restores the
40ee6fbef75fe6 Manasi Navare 2016-12-16 1399 * state.
40ee6fbef75fe6 Manasi Navare 2016-12-16 1400 */
40ee6fbef75fe6 Manasi Navare 2016-12-16 1401 if (state->link_status !=
DRM_LINK_STATUS_GOOD)
40ee6fbef75fe6 Manasi Navare 2016-12-16 1402 state->link_status = val;
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1403 } else if (property ==
config->hdr_output_metadata_property) {
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1404 ret =
drm_atomic_replace_property_blob_from_id(dev,
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1405
&state->hdr_output_metadata,
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1406 val,
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1407 sizeof(struct
hdr_output_metadata), -1,
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1408 &replaced);
4ae8f7c45ae1dd Uma Shankar 2019-05-16 1409 return ret;
0e9f25d0e15fd9 Maarten Lankhorst 2017-05-01 1410 } else if (property ==
config->aspect_ratio_property) {
0e9f25d0e15fd9 Maarten Lankhorst 2017-05-01 1411 state->picture_aspect_ratio =
val;
50525c332b55f8 Stanislav Lisovskiy 2018-05-15 1412 } else if (property ==
config->content_type_property) {
50525c332b55f8 Stanislav Lisovskiy 2018-05-15 1413 state->content_type = val;
8f6e1e22e7d0d4 Maarten Lankhorst 2017-05-01 1414 } else if (property ==
connector->scaling_mode_property) {
8f6e1e22e7d0d4 Maarten Lankhorst 2017-05-01 1415 state->scaling_mode = val;
24557865c8b1a6 Sean Paul 2018-01-08 1416 } else if (property ==
connector->content_protection_property) {
24557865c8b1a6 Sean Paul 2018-01-08 1417 if (val ==
DRM_MODE_CONTENT_PROTECTION_ENABLED) {
24557865c8b1a6 Sean Paul 2018-01-08 1418 DRM_DEBUG_KMS("only drivers
can set CP Enabled\n");
24557865c8b1a6 Sean Paul 2018-01-08 1419 return -EINVAL;
24557865c8b1a6 Sean Paul 2018-01-08 1420 }
24557865c8b1a6 Sean Paul 2018-01-08 1421 state->content_protection =
val;
935774cd71fe60 Brian Starkey 2017-03-29 1422 } else if (property ==
config->writeback_fb_id_property) {
935774cd71fe60 Brian Starkey 2017-03-29 1423 struct drm_framebuffer *fb =
drm_framebuffer_lookup(dev, NULL, val);
935774cd71fe60 Brian Starkey 2017-03-29 @1424 int ret =
drm_atomic_set_writeback_fb_for_connector(state, fb);
935774cd71fe60 Brian Starkey 2017-03-29 1425 if (fb)
935774cd71fe60 Brian Starkey 2017-03-29 1426 drm_framebuffer_put(fb);
935774cd71fe60 Brian Starkey 2017-03-29 1427 return ret;
b13cc8dd588434 Brian Starkey 2017-03-29 1428 } else if (property ==
config->writeback_out_fence_ptr_property) {
b13cc8dd588434 Brian Starkey 2017-03-29 1429 s32 __user *fence_ptr =
u64_to_user_ptr(val);
b13cc8dd588434 Brian Starkey 2017-03-29 1430
b13cc8dd588434 Brian Starkey 2017-03-29 1431 return
set_out_fence_for_connector(state->state, connector,
b13cc8dd588434 Brian Starkey 2017-03-29 1432 fence_ptr);
40ecc694e114a0 Rob Clark 2014-12-18 1433 } else if
(connector->funcs->atomic_set_property) {
40ecc694e114a0 Rob Clark 2014-12-18 1434 return
connector->funcs->atomic_set_property(connector,
40ecc694e114a0 Rob Clark 2014-12-18 1435 state, property, val);
40ecc694e114a0 Rob Clark 2014-12-18 1436 } else {
b6f690ab237d80 Ville Syrjälä 2018-06-11 1437
DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] unknown property [PROP:%d:%s]]\n",
b6f690ab237d80 Ville Syrjälä 2018-06-11 1438 connector->base.id,
connector->name,
b6f690ab237d80 Ville Syrjälä 2018-06-11 1439 property->base.id,
property->name);
40ecc694e114a0 Rob Clark 2014-12-18 1440 return -EINVAL;
40ecc694e114a0 Rob Clark 2014-12-18 1441 }
299a16b163c95f Boris Brezillon 2016-12-02 1442
299a16b163c95f Boris Brezillon 2016-12-02 1443 return 0;
40ecc694e114a0 Rob Clark 2014-12-18 1444 }
40ecc694e114a0 Rob Clark 2014-12-18 1445
:::::: The code at line 1424 was first introduced by commit
:::::: 935774cd71fe604cc8ed24adcb507d7784255672 drm: Add writeback connector type
:::::: TO: Brian Starkey <brian.starkey(a)arm.com>
:::::: CC: Liviu Dudau <Liviu.Dudau(a)arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org