| .. | .. |
|---|
| 85 | 85 | if (!common_info) |
|---|
| 86 | 86 | return; |
|---|
| 87 | 87 | |
|---|
| 88 | | - dev_dbg(common_info->dev, "line bw=%u, frame bw=%u, pn=%u\n", |
|---|
| 88 | + dev_dbg(common_info->dev, "line bw=%u, frame bw=%u, pn=%u, pn_4k=%u\n", |
|---|
| 89 | 89 | vop_info->line_bw_mbyte, vop_info->frame_bw_mbyte, |
|---|
| 90 | | - vop_info->plane_num); |
|---|
| 90 | + vop_info->plane_num, vop_info->plane_num_4k); |
|---|
| 91 | 91 | |
|---|
| 92 | 92 | if (!common_info->vop_pn_rl_tbl || !common_info->set_msch_readlatency) |
|---|
| 93 | 93 | goto vop_bw_tbl; |
|---|
| .. | .. |
|---|
| 129 | 129 | } |
|---|
| 130 | 130 | |
|---|
| 131 | 131 | next: |
|---|
| 132 | + if (vop_info->plane_num_4k && target < common_info->vop_4k_rate) |
|---|
| 133 | + target = common_info->vop_4k_rate; |
|---|
| 134 | + |
|---|
| 132 | 135 | vop_last_rate = common_info->vop_req_rate; |
|---|
| 133 | 136 | common_info->vop_req_rate = target; |
|---|
| 134 | 137 | |
|---|
| .. | .. |
|---|
| 163 | 166 | } |
|---|
| 164 | 167 | EXPORT_SYMBOL(rockchip_dmcfreq_vop_bandwidth_request); |
|---|
| 165 | 168 | |
|---|
| 169 | +unsigned int rockchip_dmcfreq_get_stall_time_ns(void) |
|---|
| 170 | +{ |
|---|
| 171 | + if (!common_info) |
|---|
| 172 | + return 0; |
|---|
| 173 | + |
|---|
| 174 | + return common_info->stall_time_ns; |
|---|
| 175 | +} |
|---|
| 176 | +EXPORT_SYMBOL(rockchip_dmcfreq_get_stall_time_ns); |
|---|
| 177 | + |
|---|
| 166 | 178 | MODULE_AUTHOR("Finley Xiao <finley.xiao@rock-chips.com>"); |
|---|
| 167 | 179 | MODULE_DESCRIPTION("rockchip dmcfreq driver with devfreq framework"); |
|---|
| 168 | 180 | MODULE_LICENSE("GPL v2"); |
|---|