Lines Matching full:comp

12 #include "mtk-mdp3-comp.h"
39 return ctx->comp->mdp_dev->mdp_data->mdp_cfg; in __get_plat_cfg()
47 rdma0 = mdp_cfg_get_id_inner(ctx->comp->mdp_dev, MDP_COMP_RDMA0); in get_comp_flag()
48 rsz1 = mdp_cfg_get_id_inner(ctx->comp->mdp_dev, MDP_COMP_RSZ1); in get_comp_flag()
53 if (ctx->comp->inner_id == rdma0) in get_comp_flag()
56 return BIT(ctx->comp->inner_id); in get_comp_flag()
62 phys_addr_t base = ctx->comp->reg_base; in init_rdma()
63 u8 subsys_id = ctx->comp->subsys_id; in init_rdma()
66 rdma0 = mdp_cfg_get_id_inner(ctx->comp->mdp_dev, MDP_COMP_RDMA0); in init_rdma()
71 struct mdp_comp *prz1 = ctx->comp->mdp_dev->comp[MDP_COMP_RSZ1]; in init_rdma()
74 if (ctx->comp->inner_id == rdma0 && prz1) in init_rdma()
94 phys_addr_t base = ctx->comp->reg_base; in config_rdma_frame()
95 u8 subsys_id = ctx->comp->subsys_id; in config_rdma_frame()
284 phys_addr_t base = ctx->comp->reg_base; in config_rdma_subfrm()
285 u8 subsys_id = ctx->comp->subsys_id; in config_rdma_subfrm()
367 struct device *dev = &ctx->comp->mdp_dev->pdev->dev; in wait_rdma_event()
368 phys_addr_t base = ctx->comp->reg_base; in wait_rdma_event()
369 u8 subsys_id = ctx->comp->subsys_id; in wait_rdma_event()
374 if (ctx->comp->alias_id >= mdp_cfg->rdma_event_num) { in wait_rdma_event()
375 dev_err(dev, "Invalid RDMA event %d\n", ctx->comp->alias_id); in wait_rdma_event()
379 MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); in wait_rdma_event()
396 phys_addr_t base = ctx->comp->reg_base; in init_rsz()
397 u8 subsys_id = ctx->comp->subsys_id; in init_rsz()
408 dev = ctx->comp->mdp_dev->mm_subsys[MDP_MM_SUBSYS_1].mmsys; in init_rsz()
420 phys_addr_t base = ctx->comp->reg_base; in config_rsz_frame()
421 u8 subsys_id = ctx->comp->subsys_id; in config_rsz_frame()
472 phys_addr_t base = ctx->comp->reg_base; in config_rsz_subfrm()
473 u8 subsys_id = ctx->comp->subsys_id; in config_rsz_subfrm()
553 const struct mtk_mdp_driver_data *data = ctx->comp->mdp_dev->mdp_data; in config_rsz_subfrm()
554 enum mtk_mdp_comp_id public_id = ctx->comp->public_id; in config_rsz_subfrm()
558 merge = ctx->comp->mdp_dev->comp[MDP_COMP_MERGE2]; in config_rsz_subfrm()
561 merge = ctx->comp->mdp_dev->comp[MDP_COMP_MERGE3]; in config_rsz_subfrm()
571 dev = ctx->comp->mdp_dev->mm_subsys[MDP_MM_SUBSYS_1].mmsys; in config_rsz_subfrm()
602 phys_addr_t base = ctx->comp->reg_base; in advance_rsz_subfrm()
603 u8 subsys_id = ctx->comp->subsys_id; in advance_rsz_subfrm()
632 phys_addr_t base = ctx->comp->reg_base; in init_wrot()
633 u8 subsys_id = ctx->comp->subsys_id; in init_wrot()
653 phys_addr_t base = ctx->comp->reg_base; in config_wrot_frame()
654 u8 subsys_id = ctx->comp->subsys_id; in config_wrot_frame()
773 phys_addr_t base = ctx->comp->reg_base; in config_wrot_subfrm()
774 u8 subsys_id = ctx->comp->subsys_id; in config_wrot_subfrm()
835 struct device *dev = &ctx->comp->mdp_dev->pdev->dev; in wait_wrot_event()
836 phys_addr_t base = ctx->comp->reg_base; in wait_wrot_event()
837 u8 subsys_id = ctx->comp->subsys_id; in wait_wrot_event()
842 if (ctx->comp->alias_id >= mdp_cfg->wrot_event_num) { in wait_wrot_event()
843 dev_err(dev, "Invalid WROT event %d!\n", ctx->comp->alias_id); in wait_wrot_event()
847 MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); in wait_wrot_event()
869 phys_addr_t base = ctx->comp->reg_base; in init_wdma()
870 u8 subsys_id = ctx->comp->subsys_id; in init_wdma()
883 phys_addr_t base = ctx->comp->reg_base; in config_wdma_frame()
884 u8 subsys_id = ctx->comp->subsys_id; in config_wdma_frame()
923 phys_addr_t base = ctx->comp->reg_base; in config_wdma_subfrm()
924 u8 subsys_id = ctx->comp->subsys_id; in config_wdma_subfrm()
963 phys_addr_t base = ctx->comp->reg_base; in wait_wdma_event()
964 u8 subsys_id = ctx->comp->subsys_id; in wait_wdma_event()
966 MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); in wait_wdma_event()
983 phys_addr_t base = ctx->comp->reg_base; in reset_luma_hist()
984 u16 subsys_id = ctx->comp->subsys_id; in reset_luma_hist()
1011 phys_addr_t base = ctx->comp->reg_base; in init_tdshp()
1012 u16 subsys_id = ctx->comp->subsys_id; in init_tdshp()
1025 phys_addr_t base = ctx->comp->reg_base; in config_tdshp_frame()
1026 u16 subsys_id = ctx->comp->subsys_id; in config_tdshp_frame()
1039 phys_addr_t base = ctx->comp->reg_base; in config_tdshp_subfrm()
1040 u16 subsys_id = ctx->comp->subsys_id; in config_tdshp_subfrm()
1076 phys_addr_t base = ctx->comp->reg_base; in init_color()
1077 u16 subsys_id = ctx->comp->subsys_id; in init_color()
1100 phys_addr_t base = ctx->comp->reg_base; in config_color_frame()
1101 u16 subsys_id = ctx->comp->subsys_id; in config_color_frame()
1114 phys_addr_t base = ctx->comp->reg_base; in config_color_subfrm()
1115 u16 subsys_id = ctx->comp->subsys_id; in config_color_subfrm()
1140 phys_addr_t base = ctx->comp->reg_base; in init_ccorr()
1141 u8 subsys_id = ctx->comp->subsys_id; in init_ccorr()
1153 phys_addr_t base = ctx->comp->reg_base; in config_ccorr_subfrm()
1154 u8 subsys_id = ctx->comp->subsys_id; in config_ccorr_subfrm()
1181 phys_addr_t base = ctx->comp->reg_base; in init_aal()
1182 u16 subsys_id = ctx->comp->subsys_id; in init_aal()
1194 phys_addr_t base = ctx->comp->reg_base; in config_aal_frame()
1195 u16 subsys_id = ctx->comp->subsys_id; in config_aal_frame()
1212 phys_addr_t base = ctx->comp->reg_base; in config_aal_subfrm()
1213 u16 subsys_id = ctx->comp->subsys_id; in config_aal_subfrm()
1241 phys_addr_t base = ctx->comp->reg_base; in init_hdr()
1242 u16 subsys_id = ctx->comp->subsys_id; in init_hdr()
1254 phys_addr_t base = ctx->comp->reg_base; in config_hdr_frame()
1255 u16 subsys_id = ctx->comp->subsys_id; in config_hdr_frame()
1272 phys_addr_t base = ctx->comp->reg_base; in config_hdr_subfrm()
1273 u16 subsys_id = ctx->comp->subsys_id; in config_hdr_subfrm()
1321 phys_addr_t base = ctx->comp->reg_base; in init_fg()
1322 u16 subsys_id = ctx->comp->subsys_id; in init_fg()
1334 phys_addr_t base = ctx->comp->reg_base; in config_fg_frame()
1335 u16 subsys_id = ctx->comp->subsys_id; in config_fg_frame()
1352 phys_addr_t base = ctx->comp->reg_base; in config_fg_subfrm()
1353 u16 subsys_id = ctx->comp->subsys_id; in config_fg_subfrm()
1376 phys_addr_t base = ctx->comp->reg_base; in init_ovl()
1377 u16 subsys_id = ctx->comp->subsys_id; in init_ovl()
1392 phys_addr_t base = ctx->comp->reg_base; in config_ovl_frame()
1393 u16 subsys_id = ctx->comp->subsys_id; in config_ovl_frame()
1410 phys_addr_t base = ctx->comp->reg_base; in config_ovl_subfrm()
1411 u16 subsys_id = ctx->comp->subsys_id; in config_ovl_subfrm()
1435 phys_addr_t base = ctx->comp->reg_base; in init_pad()
1436 u16 subsys_id = ctx->comp->subsys_id; in init_pad()
1449 phys_addr_t base = ctx->comp->reg_base; in config_pad_subfrm()
1450 u16 subsys_id = ctx->comp->subsys_id; in config_pad_subfrm()
1564 int mdp_comp_clock_on(struct device *dev, struct mdp_comp *comp) in mdp_comp_clock_on() argument
1569 if (comp->comp_dev && is_dma_capable(comp->type)) { in mdp_comp_clock_on()
1570 ret = pm_runtime_resume_and_get(comp->comp_dev); in mdp_comp_clock_on()
1574 ret, comp->type, comp->inner_id); in mdp_comp_clock_on()
1579 for (i = 0; i < comp->clk_num; i++) { in mdp_comp_clock_on()
1580 if (IS_ERR_OR_NULL(comp->clks[i])) in mdp_comp_clock_on()
1582 ret = clk_prepare_enable(comp->clks[i]); in mdp_comp_clock_on()
1586 i, comp->type, comp->inner_id); in mdp_comp_clock_on()
1595 if (IS_ERR_OR_NULL(comp->clks[i])) in mdp_comp_clock_on()
1597 clk_disable_unprepare(comp->clks[i]); in mdp_comp_clock_on()
1599 if (comp->comp_dev && is_dma_capable(comp->type)) in mdp_comp_clock_on()
1600 pm_runtime_put_sync(comp->comp_dev); in mdp_comp_clock_on()
1605 void mdp_comp_clock_off(struct device *dev, struct mdp_comp *comp) in mdp_comp_clock_off() argument
1609 for (i = 0; i < comp->clk_num; i++) { in mdp_comp_clock_off()
1610 if (IS_ERR_OR_NULL(comp->clks[i])) in mdp_comp_clock_off()
1612 clk_disable_unprepare(comp->clks[i]); in mdp_comp_clock_off()
1615 if (comp->comp_dev && is_dma_capable(comp->type)) in mdp_comp_clock_off()
1616 pm_runtime_put(comp->comp_dev); in mdp_comp_clock_off()
1640 ret = mdp_comp_clock_on(dev, m->comp[b->b_id]); in mdp_comp_clocks_on()
1668 mdp_comp_clock_off(dev, m->comp[b->b_id]); in mdp_comp_clocks_off()
1673 struct device_node *node, struct mdp_comp *comp) in mdp_get_subsys_id() argument
1680 if (!dev || !node || !comp) in mdp_get_subsys_id()
1686 dev_err(dev, "get comp_pdev fail! comp public id=%d, inner id=%d, type=%d\n", in mdp_get_subsys_id()
1687 comp->public_id, comp->inner_id, comp->type); in mdp_get_subsys_id()
1691 index = mdp->mdp_data->comp_data[comp->public_id].info.dts_reg_ofst; in mdp_get_subsys_id()
1699 comp->subsys_id = cmdq_reg.subsys; in mdp_get_subsys_id()
1707 struct mdp_comp *comp) 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()
1720 comp->regs = of_iomap(node, 0); in __mdp_comp_init()
1721 comp->reg_base = base; in __mdp_comp_init()
1725 struct mdp_comp *comp, enum mtk_mdp_comp_id id) in mdp_comp_init() argument
1745 comp->comp_dev = &pdev_c->dev; in mdp_comp_init()
1746 comp->public_id = id; 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()
1750 comp->ops = mdp_comp_ops[comp->type]; 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()
1754 comp->clks = devm_kzalloc(dev, sizeof(struct clk *) * comp->clk_num, in mdp_comp_init()
1756 if (!comp->clks) in mdp_comp_init()
1761 for (i = 0; i < comp->clk_num; i++) { in mdp_comp_init()
1762 comp->clks[i] = of_clk_get(node, i + clk_ofst); in mdp_comp_init()
1763 if (IS_ERR(comp->clks[i])) in mdp_comp_init()
1767 mdp_get_subsys_id(mdp, dev, node, comp); in mdp_comp_init()
1770 if (is_bypass_gce_event(comp->type) || in mdp_comp_init()
1775 comp->gce_event[MDP_GCE_EVENT_SOF] = event; in mdp_comp_init()
1778 if (is_dma_capable(comp->type)) { in mdp_comp_init()
1788 comp->gce_event[MDP_GCE_EVENT_EOF] = event; in mdp_comp_init()
1793 static void mdp_comp_deinit(struct mdp_comp *comp) in mdp_comp_deinit() argument
1795 if (!comp) in mdp_comp_deinit()
1798 if (comp->comp_dev && comp->clks) { in mdp_comp_deinit()
1799 devm_kfree(&comp->mdp_dev->pdev->dev, comp->clks); in mdp_comp_deinit()
1800 comp->clks = NULL; in mdp_comp_deinit()
1803 if (comp->regs) in mdp_comp_deinit()
1804 iounmap(comp->regs); in mdp_comp_deinit()
1812 struct mdp_comp *comp; in mdp_comp_create() local
1815 if (mdp->comp[id]) in mdp_comp_create()
1818 comp = devm_kzalloc(dev, sizeof(*comp), GFP_KERNEL); in mdp_comp_create()
1819 if (!comp) in mdp_comp_create()
1822 ret = mdp_comp_init(mdp, node, comp, id); in mdp_comp_create()
1824 devm_kfree(dev, comp); in mdp_comp_create()
1827 mdp->comp[id] = comp; in mdp_comp_create()
1828 mdp->comp[id]->mdp_dev = mdp; in mdp_comp_create()
1831 dev->of_node->name, comp->type, comp->alias_id, id, comp->inner_id, in mdp_comp_create()
1832 (u32)comp->reg_base, comp->regs); in mdp_comp_create()
1833 return comp; in mdp_comp_create()
1848 struct mdp_comp *comp; in mdp_comp_sub_create() local
1854 dev_dbg(dev, "Skipping disabled sub comp. %pOF\n", in mdp_comp_sub_create()
1864 "Fail to get sub comp. id: type %d alias %d\n", in mdp_comp_sub_create()
1871 comp = mdp_comp_create(mdp, node, id); in mdp_comp_sub_create()
1872 if (IS_ERR(comp)) { in mdp_comp_sub_create()
1873 ret = PTR_ERR(comp); in mdp_comp_sub_create()
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()
1914 struct mdp_comp *comp; in mdp_comp_config() local
1937 comp = mdp_comp_create(mdp, node, id); in mdp_comp_config()
1938 if (IS_ERR(comp)) { in mdp_comp_config()
1939 ret = PTR_ERR(comp); in mdp_comp_config()
1945 if (!is_dma_capable(comp->type)) in mdp_comp_config()
1947 pm_runtime_enable(comp->comp_dev); in mdp_comp_config()
1987 ctx->comp = mdp->comp[public_id]; in mdp_comp_ctx_config()
1988 if (!ctx->comp) { in mdp_comp_ctx_config()