video: driver: add additional platform_data support
Add additional platform_data support for waipio, pineapple, kalama, anorak targets. Change-Id: I2def953c88eb4ba41de270bf208da112d4e547bf Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
This commit is contained in:
@@ -9,7 +9,6 @@
|
||||
#include "msm_vidc_buffer.h"
|
||||
#include "msm_vidc_inst.h"
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_platform.h"
|
||||
#include "msm_vidc_driver.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
#include "msm_media_info.h"
|
||||
@@ -203,7 +202,7 @@ static u32 msm_vidc_decoder_dpb_size_iris2(struct msm_vidc_inst *inst)
|
||||
{
|
||||
|
||||
u32 size = 0;
|
||||
u32 color_fmt, v4l2_fmt;
|
||||
u32 color_fmt;
|
||||
u32 width, height;
|
||||
struct v4l2_format *f;
|
||||
|
||||
|
@@ -10,7 +10,6 @@
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_driver.h"
|
||||
#include "msm_vidc_control.h"
|
||||
#include "msm_vidc_dt.h"
|
||||
#include "msm_vidc_internal.h"
|
||||
#include "msm_vidc_buffer.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
@@ -442,7 +441,7 @@ static int __power_off_iris2(struct msm_vidc_core *core)
|
||||
d_vpr_e("%s: failed to unvote buses\n", __func__);
|
||||
|
||||
if (!(core->intr_status & WRAPPER_INTR_STATUS_A2HWD_BMSK_IRIS2))
|
||||
disable_irq_nosync(core->dt->irq);
|
||||
disable_irq_nosync(core->resource->irq);
|
||||
core->intr_status = 0;
|
||||
|
||||
core->power_enabled = false;
|
||||
@@ -506,7 +505,7 @@ fail_regulator:
|
||||
static int __power_on_iris2(struct msm_vidc_core *core)
|
||||
{
|
||||
const struct msm_vidc_resources_ops *res_ops = core->res_ops;
|
||||
struct allowed_clock_rates_table *clk_tbl;
|
||||
struct frequency_table *freq_tbl;
|
||||
u32 freq = 0;
|
||||
int rc = 0;
|
||||
|
||||
@@ -534,9 +533,9 @@ static int __power_on_iris2(struct msm_vidc_core *core)
|
||||
/* video controller and hardware powered on successfully */
|
||||
core->power_enabled = true;
|
||||
|
||||
clk_tbl = core->dt->allowed_clks_tbl;
|
||||
freq_tbl = core->resource->freq_set.freq_tbl;
|
||||
freq = core->power.clk_freq ? core->power.clk_freq :
|
||||
clk_tbl[0].clock_rate;
|
||||
freq_tbl[0].freq;
|
||||
|
||||
rc = res_ops->set_clks(core, freq);
|
||||
if (rc) {
|
||||
@@ -554,7 +553,7 @@ static int __power_on_iris2(struct msm_vidc_core *core)
|
||||
|
||||
__interrupt_init_iris2(core);
|
||||
core->intr_status = 0;
|
||||
enable_irq(core->dt->irq);
|
||||
enable_irq(core->resource->irq);
|
||||
|
||||
return rc;
|
||||
|
||||
|
@@ -8,7 +8,6 @@
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_driver.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
#include "msm_vidc_dt.h"
|
||||
|
||||
u64 msm_vidc_calc_freq_iris2(struct msm_vidc_inst *inst, u32 data_size)
|
||||
{
|
||||
@@ -28,7 +27,7 @@ u64 msm_vidc_calc_freq_iris2(struct msm_vidc_inst *inst, u32 data_size)
|
||||
}
|
||||
|
||||
core = inst->core;
|
||||
if (!core->dt) {
|
||||
if (!core->resource) {
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
return freq;
|
||||
}
|
||||
|
@@ -10,7 +10,6 @@
|
||||
#include "msm_vidc_buffer.h"
|
||||
#include "msm_vidc_inst.h"
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_platform.h"
|
||||
#include "msm_vidc_driver.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
#include "msm_media_info.h"
|
||||
|
@@ -12,7 +12,6 @@
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_driver.h"
|
||||
#include "msm_vidc_control.h"
|
||||
#include "msm_vidc_dt.h"
|
||||
#include "msm_vidc_internal.h"
|
||||
#include "msm_vidc_buffer.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
@@ -548,7 +547,7 @@ static int __power_off_iris33(struct msm_vidc_core *core)
|
||||
d_vpr_e("%s: failed to unvote buses\n", __func__);
|
||||
|
||||
if (!(core->intr_status & WRAPPER_INTR_STATUS_A2HWD_BMSK_IRIS33))
|
||||
disable_irq_nosync(core->dt->irq);
|
||||
disable_irq_nosync(core->resource->irq);
|
||||
core->intr_status = 0;
|
||||
|
||||
core->power_enabled = false;
|
||||
@@ -612,7 +611,7 @@ fail_regulator:
|
||||
static int __power_on_iris33(struct msm_vidc_core *core)
|
||||
{
|
||||
const struct msm_vidc_resources_ops *res_ops = core->res_ops;
|
||||
struct allowed_clock_rates_table *clk_tbl;
|
||||
struct frequency_table *freq_tbl;
|
||||
u32 freq = 0;
|
||||
int rc = 0;
|
||||
|
||||
@@ -640,9 +639,9 @@ static int __power_on_iris33(struct msm_vidc_core *core)
|
||||
/* video controller and hardware powered on successfully */
|
||||
core->power_enabled = true;
|
||||
|
||||
clk_tbl = core->dt->allowed_clks_tbl;
|
||||
freq_tbl = core->resource->freq_set.freq_tbl;
|
||||
freq = core->power.clk_freq ? core->power.clk_freq :
|
||||
clk_tbl[0].clock_rate;
|
||||
freq_tbl[0].freq;
|
||||
|
||||
rc = res_ops->set_clks(core, freq);
|
||||
if (rc) {
|
||||
@@ -657,7 +656,7 @@ static int __power_on_iris33(struct msm_vidc_core *core)
|
||||
|
||||
__interrupt_init_iris33(core);
|
||||
core->intr_status = 0;
|
||||
enable_irq(core->dt->irq);
|
||||
enable_irq(core->resource->irq);
|
||||
|
||||
return rc;
|
||||
|
||||
|
@@ -9,7 +9,6 @@
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_driver.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
#include "msm_vidc_dt.h"
|
||||
|
||||
u64 msm_vidc_calc_freq_iris33(struct msm_vidc_inst *inst, u32 data_size)
|
||||
{
|
||||
@@ -27,9 +26,9 @@ u64 msm_vidc_calc_freq_iris33(struct msm_vidc_inst *inst, u32 data_size)
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
return freq;
|
||||
}
|
||||
|
||||
core = inst->core;
|
||||
if (!core->dt || !core->dt->allowed_clks_tbl) {
|
||||
|
||||
if (!core->resource || !core->resource->freq_set.freq_tbl) {
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
return freq;
|
||||
}
|
||||
@@ -151,8 +150,8 @@ u64 msm_vidc_calc_freq_iris33(struct msm_vidc_inst *inst, u32 data_size)
|
||||
u32 bitrate_2stage[2] = {130, 120};
|
||||
u32 bitrate_1stage = 100;
|
||||
u32 width, height;
|
||||
u32 bitrate_entry, freq_entry, frequency_table_value;
|
||||
struct allowed_clock_rates_table *allowed_clks_tbl;
|
||||
u32 bitrate_entry, freq_entry, freq_tbl_value;
|
||||
struct frequency_table *freq_tbl;
|
||||
struct v4l2_format *out_f = &inst->fmts[OUTPUT_PORT];
|
||||
|
||||
width = out_f->fmt.pix_mp.width;
|
||||
@@ -165,11 +164,11 @@ u64 msm_vidc_calc_freq_iris33(struct msm_vidc_inst *inst, u32 data_size)
|
||||
|
||||
freq_entry = bitrate_entry;
|
||||
|
||||
allowed_clks_tbl = core->dt->allowed_clks_tbl;
|
||||
frequency_table_value = allowed_clks_tbl[freq_entry].clock_rate / 1000000;
|
||||
freq_tbl = core->resource->freq_set.freq_tbl;
|
||||
freq_tbl_value = freq_tbl[freq_entry].freq / 1000000;
|
||||
|
||||
input_bitrate_mbps = fps * data_size * 8 / (1024 * 1024);
|
||||
vsp_hw_min_frequency = frequency_table_value * 1000 * input_bitrate_mbps;
|
||||
vsp_hw_min_frequency = freq_tbl_value * 1000 * input_bitrate_mbps;
|
||||
|
||||
if (inst->capabilities->cap[STAGE].value == MSM_VIDC_STAGE_2) {
|
||||
vsp_hw_min_frequency +=
|
||||
@@ -233,9 +232,9 @@ u64 msm_vidc_calc_freq_iris33(struct msm_vidc_inst *inst, u32 data_size)
|
||||
* for non-AV1 codecs limit the frequency to NOM only
|
||||
* index 0 is TURBO, index 1 is NOM clock rate
|
||||
*/
|
||||
if (core->dt->allowed_clks_tbl_size >= 2 &&
|
||||
freq > core->dt->allowed_clks_tbl[1].clock_rate)
|
||||
freq = core->dt->allowed_clks_tbl[1].clock_rate;
|
||||
if (core->resource->freq_set.count >= 2 &&
|
||||
freq > core->resource->freq_set.freq_tbl[1].freq)
|
||||
freq = core->resource->freq_set.freq_tbl[1].freq;
|
||||
}
|
||||
|
||||
i_vpr_p(inst, "%s: filled len %d, required freq %llu, fps %u, mbpf %u\n",
|
||||
|
Fai riferimento in un nuovo problema
Block a user