static int hdmi_connect(struct omap_dss_device *dssdev, struct omap_dss_device *dst) { struct omap_overlay_manager *mgr; int r; r = hdmi_init_regulator(); if (r) return r; mgr = omap_dss_get_overlay_manager(dssdev->dispc_channel); if (!mgr) return -ENODEV; r = dss_mgr_connect(mgr, dssdev); if (r) return r; r = omapdss_output_set_device(dssdev, dst); if (r) { DSSERR("failed to connect output to new device: %s\n", dst->name); dss_mgr_disconnect(mgr, dssdev); return r; } return 0; }
static int sdi_connect(struct omap_dss_device *dssdev, struct omap_dss_device *dst) { struct sdi_device *sdi = dssdev_to_sdi(dssdev); int r; r = sdi_init_regulator(sdi); if (r) return r; r = dss_mgr_connect(&sdi->output, dssdev); if (r) return r; r = omapdss_output_set_device(dssdev, dst); if (r) { DSSERR("failed to connect output to new device: %s\n", dst->name); dss_mgr_disconnect(&sdi->output, dssdev); return r; } return 0; }
static int hdmi_connect(struct omap_dss_device *dssdev, struct omap_dss_device *dst) { enum omap_channel channel = dssdev->dispc_channel; int r; r = hdmi_init_regulator(); if (r) return r; r = dss_mgr_connect(channel, dssdev); if (r) return r; r = omapdss_output_set_device(dssdev, dst); if (r) { DSSERR("failed to connect output to new device: %s\n", dst->name); dss_mgr_disconnect(channel, dssdev); return r; } return 0; }