Lines Matching full:mdp
1553 static int mdp_comp_get_id(struct mdp_dev *mdp, enum mdp_comp_type type, u32 alias_id) in mdp_comp_get_id() argument
1557 for (i = 0; i < mdp->mdp_data->comp_data_len; i++) in mdp_comp_get_id()
1558 if (mdp->mdp_data->comp_data[i].match.type == type && in mdp_comp_get_id()
1559 mdp->mdp_data->comp_data[i].match.alias_id == alias_id) in mdp_comp_get_id()
1672 static int mdp_get_subsys_id(struct mdp_dev *mdp, struct device *dev, in mdp_get_subsys_id() argument
1691 index = mdp->mdp_data->comp_data[comp->public_id].info.dts_reg_ofst; in mdp_get_subsys_id()
1706 static void __mdp_comp_init(struct mdp_dev *mdp, struct device_node *node, in __mdp_comp_init() argument
1713 index = mdp->mdp_data->comp_data[comp->public_id].info.dts_reg_ofst; in __mdp_comp_init()
1719 comp->mdp_dev = mdp; in __mdp_comp_init()
1724 static int mdp_comp_init(struct mdp_dev *mdp, struct device_node *node, in mdp_comp_init() argument
1727 struct device *dev = &mdp->pdev->dev; in mdp_comp_init()
1747 comp->type = mdp->mdp_data->comp_data[id].match.type; in mdp_comp_init()
1748 comp->inner_id = mdp->mdp_data->comp_data[id].match.inner_id; in mdp_comp_init()
1749 comp->alias_id = mdp->mdp_data->comp_data[id].match.alias_id; in mdp_comp_init()
1751 __mdp_comp_init(mdp, node, comp); in mdp_comp_init()
1753 comp->clk_num = mdp->mdp_data->comp_data[id].info.clk_num; in mdp_comp_init()
1759 clk_ofst = mdp->mdp_data->comp_data[id].info.clk_ofst; in mdp_comp_init()
1767 mdp_get_subsys_id(mdp, dev, node, comp); in mdp_comp_init()
1807 static struct mdp_comp *mdp_comp_create(struct mdp_dev *mdp, in mdp_comp_create() argument
1811 struct device *dev = &mdp->pdev->dev; in mdp_comp_create()
1815 if (mdp->comp[id]) in mdp_comp_create()
1822 ret = mdp_comp_init(mdp, node, comp, id); in mdp_comp_create()
1827 mdp->comp[id] = comp; in mdp_comp_create()
1828 mdp->comp[id]->mdp_dev = mdp; in mdp_comp_create()
1836 static int mdp_comp_sub_create(struct mdp_dev *mdp) in mdp_comp_sub_create() argument
1838 struct device *dev = &mdp->pdev->dev; in mdp_comp_sub_create()
1850 of_id = of_match_node(mdp->mdp_data->mdp_sub_comp_dt_ids, node); in mdp_comp_sub_create()
1861 id = mdp_comp_get_id(mdp, type, alias_id); in mdp_comp_sub_create()
1871 comp = mdp_comp_create(mdp, node, id); in mdp_comp_sub_create()
1884 void mdp_comp_destroy(struct mdp_dev *mdp) in mdp_comp_destroy() argument
1888 for (i = 0; i < ARRAY_SIZE(mdp->comp); i++) { in mdp_comp_destroy()
1889 if (mdp->comp[i]) { in mdp_comp_destroy()
1890 if (is_dma_capable(mdp->comp[i]->type)) in mdp_comp_destroy()
1891 pm_runtime_disable(mdp->comp[i]->comp_dev); in mdp_comp_destroy()
1892 mdp_comp_deinit(mdp->comp[i]); in mdp_comp_destroy()
1893 devm_kfree(mdp->comp[i]->comp_dev, mdp->comp[i]); in mdp_comp_destroy()
1894 mdp->comp[i] = NULL; in mdp_comp_destroy()
1899 int mdp_comp_config(struct mdp_dev *mdp) in mdp_comp_config() argument
1901 struct device *dev = &mdp->pdev->dev; in mdp_comp_config()
1906 p_id = mdp->mdp_data->mdp_plat_id; in mdp_comp_config()
1909 /* Iterate over sibling MDP function blocks */ in mdp_comp_config()
1928 id = mdp_comp_get_id(mdp, type, alias_id); in mdp_comp_config()
1937 comp = mdp_comp_create(mdp, node, id); in mdp_comp_config()
1950 ret = mdp_comp_sub_create(mdp); in mdp_comp_config()
1957 mdp_comp_destroy(mdp); in mdp_comp_config()
1961 int mdp_comp_ctx_config(struct mdp_dev *mdp, struct mdp_comp_ctx *ctx, in mdp_comp_ctx_config() argument
1965 struct device *dev = &mdp->pdev->dev; in mdp_comp_ctx_config()
1981 public_id = mdp_cfg_get_id_public(mdp, arg); in mdp_comp_ctx_config()
1987 ctx->comp = mdp->comp[public_id]; in mdp_comp_ctx_config()