[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