[PATCH 1/3] drm/connector: Add generic underscan properties

kbuild test robot lkp at intel.com
Mon May 7 20:49:03 UTC 2018


Hi Boris,

I love your patch! Yet something to improve:

[auto build test ERROR on anholt/for-next]
[also build test ERROR on v4.17-rc4 next-20180507]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Boris-Brezillon/drm-connector-Provide-generic-support-for-underscan/20180508-022336
base:   https://github.com/anholt/linux for-next
config: x86_64-randconfig-x010-201818 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers/gpu//drm/drm_connector.c: In function 'drm_connector_attach_underscan_properties':
>> drivers/gpu//drm/drm_connector.c:1188:50: warning: passing argument 3 of 'drm_property_add_enum' makes integer from pointer without a cast [-Wint-conversion]
      ret = drm_property_add_enum(prop, entry->type, entry->name);
                                                     ^~~~~
   In file included from include/drm/drm_crtc.h:42:0,
                    from include/drm/drmP.h:69,
                    from drivers/gpu//drm/drm_connector.c:23:
   include/drm/drm_property.h:263:5: note: expected 'uint64_t {aka long long unsigned int}' but argument is of type 'const char * const'
    int drm_property_add_enum(struct drm_property *property, int index,
        ^~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu//drm/drm_connector.c:1188:9: error: too few arguments to function 'drm_property_add_enum'
      ret = drm_property_add_enum(prop, entry->type, entry->name);
            ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/drm/drm_crtc.h:42:0,
                    from include/drm/drmP.h:69,
                    from drivers/gpu//drm/drm_connector.c:23:
   include/drm/drm_property.h:263:5: note: declared here
    int drm_property_add_enum(struct drm_property *property, int index,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/drm_property_add_enum +1188 drivers/gpu//drm/drm_connector.c

  1141	
  1142	/**
  1143	 * drm_connector_attach_underscan_properties - attach atomic underscan
  1144	 *					       properties
  1145	 * @connector: connector to attach underscan mode properties on.
  1146	 * @mode_mask: bitmask of %DRM_UNDERSCAN_XX modes encoding the supported
  1147	 *	       underscan modes.
  1148	 * @max_hborder: maximum size of the horizontal border expressed in pixels.
  1149	 *		 Should be > 0.
  1150	 * @max_vborder: maximum size of the vertical border expressed in pixels.
  1151	 *		 Should be > 0.
  1152	 *
  1153	 * This is used to add support for underscan to atomic drivers.
  1154	 * The underscan config will be set to &drm_connector_state.underscan
  1155	 * and can be used from &drm_connector_helper_funcs->atomic_check for
  1156	 * validation.
  1157	 *
  1158	 * Returns:
  1159	 * Zero on success, negative errno on failure.
  1160	 */
  1161	int drm_connector_attach_underscan_properties(struct drm_connector *connector,
  1162						      u32 mode_mask, u64 max_hborder,
  1163						      u64 max_vborder)
  1164	{
  1165		unsigned int i, nmodes = ARRAY_SIZE(drm_underscan_mode_enum_list);
  1166		struct drm_device *dev = connector->dev;
  1167		struct drm_property *prop;
  1168	
  1169		if (!max_hborder || !max_vborder)
  1170			return -EINVAL;
  1171	
  1172		if (!hweight32(mode_mask) || (mode_mask & ~GENMASK(nmodes - 1, 0)))
  1173			return -EINVAL;
  1174	
  1175		prop = drm_property_create(dev, DRM_MODE_PROP_ENUM, "underscan",
  1176					   hweight32(mode_mask));
  1177		if (!prop)
  1178			return -ENOMEM;
  1179	
  1180		for (i = 0; i < ARRAY_SIZE(drm_underscan_mode_enum_list); i++) {
  1181			const struct drm_prop_enum_list *entry;
  1182			int ret;
  1183	
  1184			if (!(BIT(i) & mode_mask))
  1185				continue;
  1186	
  1187			entry = &drm_underscan_mode_enum_list[i];
> 1188			ret = drm_property_add_enum(prop, entry->type, entry->name);
  1189			if (ret)
  1190				goto err_free_mode_prop;
  1191		}
  1192	
  1193		connector->underscan_mode_property = prop;
  1194	
  1195		prop = drm_property_create_range(dev, 0, "underscan hborder", 0,
  1196						 max_hborder);
  1197		if (!prop)
  1198			goto err_free_mode_prop;
  1199	
  1200		connector->underscan_hborder_property = prop;
  1201	
  1202		prop = drm_property_create_range(dev, 0, "underscan vborder", 0,
  1203						 max_vborder);
  1204		if (!prop)
  1205			goto err_free_hborder_prop;
  1206	
  1207		connector->underscan_vborder_property = prop;
  1208	
  1209		drm_object_attach_property(&connector->base,
  1210					   connector->underscan_mode_property,
  1211					   DRM_UNDERSCAN_OFF);
  1212		drm_object_attach_property(&connector->base,
  1213					   connector->underscan_hborder_property, 0);
  1214		drm_object_attach_property(&connector->base,
  1215					   connector->underscan_vborder_property, 0);
  1216	
  1217		return 0;
  1218	
  1219	err_free_hborder_prop:
  1220		drm_property_destroy(dev, connector->underscan_hborder_property);
  1221		connector->underscan_hborder_property = NULL;
  1222	
  1223	err_free_mode_prop:
  1224		drm_property_destroy(dev, connector->underscan_mode_property);
  1225		connector->underscan_mode_property = NULL;
  1226	
  1227		return -ENOMEM;
  1228	}
  1229	EXPORT_SYMBOL(drm_connector_attach_underscan_properties);
  1230	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 29494 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180508/84a79042/attachment-0001.gz>


More information about the amd-gfx mailing list