Message ID | 20200207084135.4524-6-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: Provide a simple encoder | expand |
Hi Thomas, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.6-rc1 next-20200210] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/drm-Provide-a-simple-encoder/20200210-153139 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git bb6d3fb354c5ee8d6bde2d576eb7220ea09862b9 config: x86_64-randconfig-f002-20200210 (attached as .config) compiler: gcc-7 (Debian 7.5.0-3) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): drivers/gpu/drm/qxl/qxl_display.c: In function 'qdev_output_init': >> drivers/gpu/drm/qxl/qxl_display.c:1103:31: error: incompatible type for argument 2 of 'drm_simple_encoder_init' drm_simple_encoder_init(dev, qxl_output->enc, DRM_MODE_ENCODER_VIRTUAL, ^~~~~~~~~~ In file included from include/drm/drm_modeset_helper_vtables.h:33:0, from include/drm/drm_atomic_helper.h:32, from drivers/gpu/drm/qxl/qxl_display.c:30: include/drm/drm_encoder.h:194:5: note: expected 'struct drm_encoder *' but argument is of type 'struct drm_encoder' int drm_simple_encoder_init(struct drm_device *dev, ^~~~~~~~~~~~~~~~~~~~~~~ vim +/drm_simple_encoder_init +1103 drivers/gpu/drm/qxl/qxl_display.c 1084 1085 static int qdev_output_init(struct drm_device *dev, int num_output) 1086 { 1087 struct qxl_device *qdev = dev->dev_private; 1088 struct qxl_output *qxl_output; 1089 struct drm_connector *connector; 1090 struct drm_encoder *encoder; 1091 1092 qxl_output = kzalloc(sizeof(struct qxl_output), GFP_KERNEL); 1093 if (!qxl_output) 1094 return -ENOMEM; 1095 1096 qxl_output->index = num_output; 1097 1098 connector = &qxl_output->base; 1099 encoder = &qxl_output->enc; 1100 drm_connector_init(dev, &qxl_output->base, 1101 &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL); 1102 > 1103 drm_simple_encoder_init(dev, qxl_output->enc, DRM_MODE_ENCODER_VIRTUAL, 1104 NULL); 1105 1106 /* we get HPD via client monitors config */ 1107 connector->polled = DRM_CONNECTOR_POLL_HPD; 1108 encoder->possible_crtcs = 1 << num_output; 1109 drm_connector_attach_encoder(&qxl_output->base, 1110 &qxl_output->enc); 1111 drm_connector_helper_add(connector, &qxl_connector_helper_funcs); 1112 1113 drm_object_attach_property(&connector->base, 1114 qdev->hotplug_mode_update_property, 0); 1115 drm_object_attach_property(&connector->base, 1116 dev->mode_config.suggested_x_property, 0); 1117 drm_object_attach_property(&connector->base, 1118 dev->mode_config.suggested_y_property, 0); 1119 return 0; 1120 } 1121 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c index ab4f8dd00400..fc71f7d9436a 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -1007,9 +1007,6 @@ static struct drm_encoder *qxl_best_encoder(struct drm_connector *connector) return &qxl_output->enc; } -static const struct drm_encoder_helper_funcs qxl_enc_helper_funcs = { -}; - static const struct drm_connector_helper_funcs qxl_connector_helper_funcs = { .get_modes = qxl_conn_get_modes, .mode_valid = qxl_conn_mode_valid, @@ -1059,15 +1056,6 @@ static const struct drm_connector_funcs qxl_connector_funcs = { .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; -static void qxl_enc_destroy(struct drm_encoder *encoder) -{ - drm_encoder_cleanup(encoder); -} - -static const struct drm_encoder_funcs qxl_enc_funcs = { - .destroy = qxl_enc_destroy, -}; - static int qxl_mode_create_hotplug_mode_update_property(struct qxl_device *qdev) { if (qdev->hotplug_mode_update_property) @@ -1098,15 +1086,14 @@ static int qdev_output_init(struct drm_device *dev, int num_output) drm_connector_init(dev, &qxl_output->base, &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL); - drm_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs, - DRM_MODE_ENCODER_VIRTUAL, NULL); + drm_simple_encoder_init(dev, qxl_output->enc, DRM_MODE_ENCODER_VIRTUAL, + NULL); /* we get HPD via client monitors config */ connector->polled = DRM_CONNECTOR_POLL_HPD; encoder->possible_crtcs = 1 << num_output; drm_connector_attach_encoder(&qxl_output->base, &qxl_output->enc); - drm_encoder_helper_add(encoder, &qxl_enc_helper_funcs); drm_connector_helper_add(connector, &qxl_connector_helper_funcs); drm_object_attach_property(&connector->base,
The qxl driver uses an empty implementation for its encoder. Replace the code with the generic simple encoder. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- drivers/gpu/drm/qxl/qxl_display.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)