imx8qxp_ldb
struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
struct drm_bridge *companion = imx8qxp_ldb->companion;
imx8qxp_ldb_set_phy_cfg(imx8qxp_ldb, di_clk, is_split, phy_cfg);
DRM_DEV_DEBUG_DRIVER(imx8qxp_ldb->dev,
struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
struct drm_bridge *companion = imx8qxp_ldb->companion;
struct device *dev = imx8qxp_ldb->dev;
clk_set_rate(imx8qxp_ldb->clk_bypass, di_clk);
clk_set_rate(imx8qxp_ldb->clk_pixel, di_clk);
imx8qxp_ldb_set_phy_cfg(imx8qxp_ldb, di_clk, is_split, phy_cfg);
struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
struct drm_bridge *companion = imx8qxp_ldb->companion;
clk_prepare_enable(imx8qxp_ldb->clk_pixel);
clk_prepare_enable(imx8qxp_ldb->clk_bypass);
struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
struct drm_bridge *companion = imx8qxp_ldb->companion;
struct device *dev = imx8qxp_ldb->dev;
struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
struct drm_bridge *companion = imx8qxp_ldb->companion;
struct device *dev = imx8qxp_ldb->dev;
clk_disable_unprepare(imx8qxp_ldb->clk_bypass);
clk_disable_unprepare(imx8qxp_ldb->clk_pixel);
static int imx8qxp_ldb_set_di_id(struct imx8qxp_ldb *imx8qxp_ldb)
imx8qxp_ldb->channel[imx8qxp_ldb->active_chno];
struct device *dev = imx8qxp_ldb->dev;
static int imx8qxp_ldb_parse_dt_companion(struct imx8qxp_ldb *imx8qxp_ldb)
imx8qxp_ldb->channel[imx8qxp_ldb->active_chno];
struct device *dev = imx8qxp_ldb->dev;
imx8qxp_ldb->companion = of_drm_find_and_get_bridge(companion_port);
if (!imx8qxp_ldb->companion) {
companion_ldb_ch = bridge_to_ldb_ch(imx8qxp_ldb->companion);
struct imx8qxp_ldb *imx8qxp_ldb;
imx8qxp_ldb = devm_kzalloc(dev, sizeof(*imx8qxp_ldb), GFP_KERNEL);
if (!imx8qxp_ldb)
static inline struct imx8qxp_ldb *base_to_imx8qxp_ldb(struct ldb *base)
imx8qxp_ldb->channel[i] =
if (IS_ERR(imx8qxp_ldb->channel[i]))
return PTR_ERR(imx8qxp_ldb->channel[i]);
imx8qxp_ldb->clk_pixel = devm_clk_get(dev, "pixel");
if (IS_ERR(imx8qxp_ldb->clk_pixel)) {
ret = PTR_ERR(imx8qxp_ldb->clk_pixel);
imx8qxp_ldb->clk_bypass = devm_clk_get(dev, "bypass");
if (IS_ERR(imx8qxp_ldb->clk_bypass)) {
ret = PTR_ERR(imx8qxp_ldb->clk_bypass);
return container_of(base, struct imx8qxp_ldb, base);
imx8qxp_ldb->dev = dev;
ldb = &imx8qxp_ldb->base;
ldb->channel[i] = &imx8qxp_ldb->channel[i]->base;
imx8qxp_ldb_ch = imx8qxp_ldb->channel[i];
imx8qxp_ldb->active_chno = ldb_ch->chno;
imx8qxp_ldb->active_chno, ret);
ret = imx8qxp_ldb_set_di_id(imx8qxp_ldb);
ret = imx8qxp_ldb_parse_dt_companion(imx8qxp_ldb);
platform_set_drvdata(pdev, imx8qxp_ldb);
struct imx8qxp_ldb *imx8qxp_ldb;
struct imx8qxp_ldb *imx8qxp_ldb = platform_get_drvdata(pdev);
struct ldb *ldb = &imx8qxp_ldb->base;
struct imx8qxp_ldb *imx8qxp_ldb = dev_get_drvdata(dev);
struct ldb *ldb = &imx8qxp_ldb->base;
imx8qxp_ldb = base_to_imx8qxp_ldb(ldb_ch->ldb);
drm_bridge_put(imx8qxp_ldb->companion);
static void imx8qxp_ldb_set_phy_cfg(struct imx8qxp_ldb *imx8qxp_ldb,
phy_cfg->is_slave = !imx8qxp_ldb->companion;