qxl_io_log(qdev, "failed crc check for client_monitors_config,"
                                 " retrying\n");
        }
-       drm_sysfs_hotplug_event(qdev->ddev);
+       drm_helper_hpd_irq_event(qdev->ddev);
 }
 
 static int qxl_add_monitors_config_modes(struct drm_connector *connector)
        drm_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs,
                         DRM_MODE_ENCODER_VIRTUAL);
 
+       /* we get HPD via client monitors config */
+       connector->polled = DRM_CONNECTOR_POLL_HPD;
        encoder->possible_crtcs = 1 << num_output;
        drm_mode_connector_attach_encoder(&qxl_output->base,
                                          &qxl_output->enc);