mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
video: rockchip: mpp: add reset ready check for vdpu383
Change-Id: I915959cc5ca9f01934e201bae110af540ac8dccb Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
This commit is contained in:
@@ -1416,15 +1416,31 @@ static int rkvdec_vdpu383_reset(struct mpp_dev *mpp)
|
||||
{
|
||||
struct rkvdec2_dev *dec = to_rkvdec2_dev(mpp);
|
||||
struct rkvdec_link_dev *link = dec->link_dec;
|
||||
int ret = 0;
|
||||
u32 irq_status = 0;
|
||||
|
||||
mpp_debug_enter();
|
||||
|
||||
/* disable irq */
|
||||
writel(link->info->ip_en_val & BIT(15), link->reg_base + link->info->ip_en_base);
|
||||
/* use ip reset to reset core and mmu */
|
||||
writel(link->info->ip_reset_en, link->reg_base + link->info->ip_reset_base);
|
||||
udelay(5);
|
||||
ret = readl_relaxed_poll_timeout(link->reg_base + link->info->status_base,
|
||||
irq_status,
|
||||
irq_status & 0x800,
|
||||
0, 200);
|
||||
if (ret)
|
||||
dev_err(mpp->dev, "reset timeout\n");
|
||||
/* clear reset ready status bit */
|
||||
writel(link->info->ip_reset_mask, link->reg_base + link->info->status_base);
|
||||
|
||||
/* clear irq and status */
|
||||
writel_relaxed(0xffff0000, link->reg_base + link->info->irq_base);
|
||||
writel_relaxed(0xffff0000, link->reg_base + link->info->status_base);
|
||||
|
||||
/* enable irq */
|
||||
writel(link->info->ip_en_val, link->reg_base + link->info->ip_en_base);
|
||||
|
||||
mpp_debug_leave();
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user