static void panel_connector_destroy(struct drm_connector *connector) { struct panel_connector *panel_connector = to_panel_connector(connector); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(panel_connector); }
struct drm_connector *exynos_drm_connector_create(struct drm_device *dev, struct drm_encoder *encoder) { struct exynos_drm_connector *exynos_connector; struct exynos_drm_manager *manager = exynos_drm_get_manager(encoder); struct drm_connector *connector; int type; int err; exynos_connector = kzalloc(sizeof(*exynos_connector), GFP_KERNEL); if (!exynos_connector) return NULL; connector = &exynos_connector->drm_connector; switch (manager->display_ops->type) { case EXYNOS_DISPLAY_TYPE_HDMI: type = DRM_MODE_CONNECTOR_HDMIA; connector->interlace_allowed = true; connector->polled = DRM_CONNECTOR_POLL_HPD; break; case EXYNOS_DISPLAY_TYPE_VIDI: type = DRM_MODE_CONNECTOR_VIRTUAL; connector->polled = DRM_CONNECTOR_POLL_HPD; break; default: type = DRM_MODE_CONNECTOR_Unknown; break; } drm_connector_init(dev, connector, &exynos_connector_funcs, type); drm_connector_helper_add(connector, &exynos_connector_helper_funcs); err = drm_sysfs_connector_add(connector); if (err) goto err_connector; exynos_connector->encoder_id = encoder->base.id; exynos_connector->manager = manager; exynos_connector->dpms = DRM_MODE_DPMS_OFF; connector->dpms = DRM_MODE_DPMS_OFF; connector->encoder = encoder; err = drm_mode_connector_attach_encoder(connector, encoder); if (err) { DRM_ERROR("failed to attach a connector to a encoder\n"); goto err_sysfs; } DRM_DEBUG_KMS("connector has been created\n"); return connector; err_sysfs: drm_sysfs_connector_remove(connector); err_connector: drm_connector_cleanup(connector); kfree(exynos_connector); return NULL; }
static void qxl_conn_destroy(struct drm_connector *connector) { struct qxl_output *qxl_output = drm_connector_to_qxl_output(connector); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(qxl_output); }
static void cdv_intel_crt_destroy(struct drm_connector *connector) { struct psb_intel_output *intel_output = to_psb_intel_output(connector); psb_intel_i2c_destroy(intel_output->ddc_bus); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(connector); }
static void exynos_drm_connector_destroy(struct drm_connector *connector) { struct exynos_drm_connector *exynos_connector = to_exynos_connector(connector); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(exynos_connector); }
static void cdv_hdmi_destroy(struct drm_connector *connector) { struct gma_encoder *gma_encoder = gma_attached_encoder(connector); if (gma_encoder->i2c_bus) psb_intel_i2c_destroy(gma_encoder->i2c_bus); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(connector); }
static void intel_hdmi_destroy(struct drm_connector *connector) { struct intel_output *intel_output = to_intel_output(connector); if (intel_output->i2c_bus) intel_i2c_destroy(intel_output->i2c_bus); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(intel_output); }
static void cdv_intel_crt_destroy(struct drm_connector *connector) { struct psb_intel_encoder *psb_intel_encoder = psb_intel_attached_encoder(connector); psb_intel_i2c_destroy(psb_intel_encoder->ddc_bus); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(connector); }
static void vbox_connector_destroy(struct drm_connector *pConnector) { struct vbox_connector *pVBoxConnector = NULL; LogFunc(("vboxvideo: %d: connector=%p\n", __LINE__, pConnector)); pVBoxConnector = to_vbox_connector(pConnector); device_remove_file(pConnector->dev->dev, &pVBoxConnector->deviceAttribute); drm_sysfs_connector_remove(pConnector); drm_connector_cleanup(pConnector); kfree(pConnector); }
static void intel_dsi_destroy(struct drm_connector *connector) { struct intel_connector *intel_connector = to_intel_connector(connector); DRM_DEBUG_KMS("\n"); intel_panel_fini(&intel_connector->panel); intel_panel_destroy_backlight(connector->dev); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(connector); }
static void exynos_drm_connector_destroy(struct drm_connector *connector) { struct exynos_drm_connector *exynos_connector = to_exynos_connector(connector); DRM_DEBUG_KMS("%s\n", __FILE__); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(exynos_connector); }
static void omap_connector_destroy(struct drm_connector *connector) { struct omap_connector *omap_connector = to_omap_connector(connector); struct omap_dss_device *dssdev = omap_connector->dssdev; DBG("%s", omap_connector->dssdev->name); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(omap_connector); omap_dss_put_device(dssdev); }
static void jzdrm_connector_destroy(struct drm_connector *connector) { struct lcd_link *lcd_link = container_of(connector, struct lcd_link, connector); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); #ifdef CONFIG_JZ_MIPI_DSI_MODE2 jzdsi_remove(lcd_link->dsi); #endif kfree(lcd_link); }
static void hdmi_connector_destroy(struct drm_connector *connector) { struct hdmi_connector *hdmi_connector = to_hdmi_connector(connector); hdp_disable(hdmi_connector); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); hdmi_unreference(hdmi_connector->hdmi); kfree(hdmi_connector); }
struct drm_connector * xylon_drm_connector_create(struct drm_device *dev, struct drm_encoder *base_encoder) { struct xylon_drm_connector *connector; int ret; connector = devm_kzalloc(dev->dev, sizeof(*connector), GFP_KERNEL); if (!connector) return ERR_PTR(-ENOMEM); connector->base.polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT; ret = drm_connector_init(dev, &connector->base, &xylon_drm_connector_funcs, DRM_MODE_CONNECTOR_HDMIA); if (ret) { DRM_ERROR("failed initialize connector\n"); return ERR_PTR(ret); } drm_connector_helper_add(&connector->base, &xylon_drm_connector_helper_funcs); ret = drm_sysfs_connector_add(&connector->base); if (ret) { DRM_ERROR("failed add to sysfs\n"); goto err_add; } connector->base.encoder = base_encoder; ret = drm_mode_connector_attach_encoder(&connector->base, base_encoder); if (ret) { DRM_ERROR("failed attach encoder connector\n"); goto err_attach; } connector->encoder = base_encoder; return &connector->base; err_attach: drm_sysfs_connector_remove(&connector->base); err_add: drm_connector_cleanup(&connector->base); return ERR_PTR(ret); }
void xylon_drm_connector_destroy(struct drm_connector *base_connector) { drm_sysfs_connector_remove(base_connector); drm_connector_cleanup(base_connector); }
static void rcar_du_hdmi_connector_destroy(struct drm_connector *connector) { drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); }
static void exynos_dpi_connector_destroy(struct drm_connector *connector) { drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); }
static void intel_hdmi_destroy(struct drm_connector *connector) { drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(connector); }