.. | .. |
---|
944 | 944 | task = to_rkvdec_task(mpp_task); |
---|
945 | 945 | |
---|
946 | 946 | /* |
---|
947 | | - * HW defeat workaround: VP9 power save optimization cause decoding |
---|
| 947 | + * HW defeat workaround: VP9 and H.265 power save optimization cause decoding |
---|
948 | 948 | * corruption, disable optimization here. |
---|
949 | 949 | */ |
---|
950 | 950 | fmt = RKVDEC_GET_FORMAT(task->reg[RKVDEC_REG_SYS_CTRL_INDEX]); |
---|
951 | | - if (fmt == RKVDEC_FMT_VP9D) { |
---|
| 951 | + if (fmt == RKVDEC_FMT_VP9D || fmt == RKVDEC_FMT_H265D) { |
---|
952 | 952 | cfg = task->reg[RKVDEC_POWER_CTL_INDEX] | 0xFFFF; |
---|
953 | 953 | task->reg[RKVDEC_POWER_CTL_INDEX] = cfg & (~(1 << 12)); |
---|
954 | 954 | mpp_write_relaxed(mpp, RKVDEC_POWER_CTL_BASE, |
---|
.. | .. |
---|
1171 | 1171 | dec->procfs = NULL; |
---|
1172 | 1172 | return -EIO; |
---|
1173 | 1173 | } |
---|
| 1174 | + |
---|
| 1175 | + /* for common mpp_dev options */ |
---|
| 1176 | + mpp_procfs_create_common(dec->procfs, mpp); |
---|
| 1177 | + |
---|
1174 | 1178 | mpp_procfs_create_u32("aclk", 0644, |
---|
1175 | 1179 | dec->procfs, &dec->aclk_info.debug_rate_hz); |
---|
1176 | 1180 | mpp_procfs_create_u32("clk_core", 0644, |
---|
.. | .. |
---|
1629 | 1633 | |
---|
1630 | 1634 | mpp_debug_enter(); |
---|
1631 | 1635 | if (dec->rst_a && dec->rst_h) { |
---|
1632 | | - rockchip_pmu_idle_request(mpp->dev, true); |
---|
| 1636 | + mpp_pmu_idle_request(mpp, true); |
---|
1633 | 1637 | mpp_safe_reset(dec->rst_niu_a); |
---|
1634 | 1638 | mpp_safe_reset(dec->rst_niu_h); |
---|
1635 | 1639 | mpp_safe_reset(dec->rst_a); |
---|
.. | .. |
---|
1645 | 1649 | mpp_safe_unreset(dec->rst_core); |
---|
1646 | 1650 | mpp_safe_unreset(dec->rst_cabac); |
---|
1647 | 1651 | mpp_safe_unreset(dec->rst_hevc_cabac); |
---|
1648 | | - rockchip_pmu_idle_request(mpp->dev, false); |
---|
| 1652 | + mpp_pmu_idle_request(mpp, false); |
---|
1649 | 1653 | } |
---|
1650 | 1654 | mpp_debug_leave(); |
---|
1651 | 1655 | |
---|