ret = drm_of_find_panel_or_bridge(dev->dev->of_node, 0, 0, &panel, &bridge); if (ret && ret != -ENODEV) return ret; if (panel) {
bridge = drm_panel_bridge_add_typed(panel,
DRM_MODE_CONNECTOR_Unknown); if (IS_ERR(bridge)) {
ret = PTR_ERR(bridge); goto out_bridge;
}
} else { /* *TODO:whenweareusingadifferentbridgethanapanel *(suchasadumbVGAconnector)weneedtodeviseadifferent *methodtogettheconnectoroutofthebridge.
*/
dev_err(dev->dev, "the bridge is not a panel\n");
ret = -EINVAL; goto out_bridge;
}
ret = tve200_display_init(dev); if (ret) {
dev_err(dev->dev, "failed to init display\n"); goto out_bridge;
}
ret = drm_simple_display_pipe_attach_bridge(&priv->pipe,
bridge); if (ret) {
dev_err(dev->dev, "failed to attach bridge\n"); goto out_bridge;
}
/* Clock the silicon so we can access the registers */
priv->pclk = devm_clk_get(dev, "PCLK"); if (IS_ERR(priv->pclk)) {
dev_err(dev, "unable to get PCLK\n");
ret = PTR_ERR(priv->pclk); goto dev_unref;
}
ret = clk_prepare_enable(priv->pclk); if (ret) {
dev_err(dev, "failed to enable PCLK\n"); goto dev_unref;
}
/* This clock is for the pixels (27MHz) */
priv->clk = devm_clk_get(dev, "TVE"); if (IS_ERR(priv->clk)) {
dev_err(dev, "unable to get TVE clock\n");
ret = PTR_ERR(priv->clk); goto clk_disable;
}
priv->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(priv->regs)) {
dev_err(dev, "%s failed mmio\n", __func__);
ret = -EINVAL; goto clk_disable;
}
irq = platform_get_irq(pdev, 0); if (irq < 0) {
ret = irq; goto clk_disable;
}
/* turn off interrupts before requesting the irq */
writel(0, priv->regs + TVE200_INT_EN);
ret = devm_request_irq(dev, irq, tve200_irq, 0, "tve200", priv); if (ret) {
dev_err(dev, "failed to request irq %d\n", ret); goto clk_disable;
}
ret = tve200_modeset_init(drm); if (ret) goto clk_disable;
ret = drm_dev_register(drm, 0); if (ret < 0) goto clk_disable;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.