Lines Matching full:ccu
128 /* for ccu(central control unit) */
129 struct vepu_ccu *ccu; member
318 struct vepu_ccu *ccu = enc->ccu; in vepu_prepare() local
324 spin_lock_irqsave(&ccu->lock, flags); in vepu_prepare()
326 core_idle = ccu->core_idle; in vepu_prepare()
328 for (i = 0; i < ccu->core_num; i++) { in vepu_prepare()
329 struct mpp_dev *mpp = ccu->cores[i]; in vepu_prepare()
335 core_id = find_first_bit(&core_idle, ccu->core_num); in vepu_prepare()
336 if (core_id >= ARRAY_SIZE(ccu->cores)) { in vepu_prepare()
338 mpp_dbg_core("core %d all busy %lx\n", core_id, ccu->core_idle); in vepu_prepare()
343 clear_bit(core_id, &ccu->core_idle); in vepu_prepare()
344 mpp_task->mpp = ccu->cores[core_id]; in vepu_prepare()
348 ccu->core_num, core_id, core_idle, ccu->core_idle); in vepu_prepare()
351 spin_unlock_irqrestore(&ccu->lock, flags); in vepu_prepare()
427 struct vepu_ccu *ccu = enc->ccu; in vepu_isr() local
449 /* the whole vepu has no ccu that manage multi core */ in vepu_isr()
450 if (ccu) { in vepu_isr()
451 core_idle = ccu->core_idle; in vepu_isr()
452 set_bit(mpp->core_id, &ccu->core_idle); in vepu_isr()
455 ccu->core_idle); in vepu_isr()
685 if (enc->ccu) in vepu_procfs_init()
861 struct vepu_ccu *ccu = enc->ccu; in vepu_reset() local
877 if (ccu) { in vepu_reset()
878 set_bit(mpp->core_id, &ccu->core_idle); in vepu_reset()
879 mpp_dbg_core("core %d reset idle %lx\n", mpp->core_id, ccu->core_idle); in vepu_reset()
990 .compatible = "rockchip,vpu-jpege-ccu",
998 struct vepu_ccu *ccu; in vepu_ccu_probe() local
1001 ccu = devm_kzalloc(dev, sizeof(*ccu), GFP_KERNEL); in vepu_ccu_probe()
1002 if (!ccu) in vepu_ccu_probe()
1005 platform_set_drvdata(pdev, ccu); in vepu_ccu_probe()
1006 spin_lock_init(&ccu->lock); in vepu_ccu_probe()
1014 struct vepu_ccu *ccu; in vepu_attach_ccu() local
1017 np = of_parse_phandle(dev->of_node, "rockchip,ccu", 0); in vepu_attach_ccu()
1026 ccu = platform_get_drvdata(pdev); in vepu_attach_ccu()
1027 if (!ccu) in vepu_attach_ccu()
1030 spin_lock_irqsave(&ccu->lock, flags); in vepu_attach_ccu()
1031 ccu->core_num++; in vepu_attach_ccu()
1032 ccu->cores[enc->mpp.core_id] = &enc->mpp; in vepu_attach_ccu()
1033 set_bit(enc->mpp.core_id, &ccu->core_idle); in vepu_attach_ccu()
1034 spin_unlock_irqrestore(&ccu->lock, flags); in vepu_attach_ccu()
1036 /* attach the ccu-domain to current core */ in vepu_attach_ccu()
1037 if (!ccu->main_core) { in vepu_attach_ccu()
1040 * then the domain of the main-core named ccu-domain in vepu_attach_ccu()
1042 ccu->main_core = &enc->mpp; in vepu_attach_ccu()
1046 /* set the ccu domain for current device */ in vepu_attach_ccu()
1047 ccu_info = ccu->main_core->iommu_info; in vepu_attach_ccu()
1054 enc->ccu = ccu; in vepu_attach_ccu()
1056 dev_info(dev, "attach ccu success\n"); in vepu_attach_ccu()
1088 /* current device attach to ccu */ in vepu_core_probe()
1107 if (mpp == enc->ccu->main_core) in vepu_core_probe()
1168 if (strstr(np->name, "ccu")) in vepu_probe()
1185 if (strstr(np->name, "ccu")) { in vepu_remove()
1186 dev_info(dev, "remove ccu device\n"); in vepu_remove()
1192 if (enc->ccu) { in vepu_remove()
1194 struct vepu_ccu *ccu = enc->ccu; in vepu_remove() local
1197 spin_lock_irqsave(&ccu->lock, flags); in vepu_remove()
1198 ccu->core_num--; in vepu_remove()
1199 ccu->cores[core_id] = NULL; in vepu_remove()
1200 clear_bit(core_id, &ccu->core_idle); in vepu_remove()
1201 spin_unlock_irqrestore(&ccu->lock, flags); in vepu_remove()
1220 if (!strstr(dev_name(dev), "ccu")) in vepu_shutdown()