media: qcom: camss: Pass icc bandwidth table as a platform parameter

Pass the bandwidth table as a platform parameter not if/else derived
pointer to the static table.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
Bryan O'Donoghue 2023-09-25 16:46:54 +01:00 committed by Hans Verkuil
parent de98fe8d1c
commit 9e0c259777
2 changed files with 11 additions and 21 deletions

View file

@ -1485,21 +1485,15 @@ fail_pm:
static int camss_icc_get(struct camss *camss)
{
const struct resources_icc *icc_res;
int nbr_icc_paths = 0;
int i;
if (camss->version == CAMSS_8250) {
icc_res = &icc_res_sm8250[0];
nbr_icc_paths = ICC_SM8250_COUNT;
}
icc_res = camss->res->icc_res;
for (i = 0; i < nbr_icc_paths; i++) {
for (i = 0; i < camss->res->icc_path_num; i++) {
camss->icc_path[i] = devm_of_icc_get(camss->dev,
icc_res[i].name);
if (IS_ERR(camss->icc_path[i]))
return PTR_ERR(camss->icc_path[i]);
camss->icc_bw_tbl[i] = icc_res[i].icc_bw_tbl;
}
return 0;
@ -1742,6 +1736,8 @@ static const struct camss_resources sm8250_resources = {
.csiphy_res = csiphy_res_8250,
.csid_res = csid_res_8250,
.vfe_res = vfe_res_8250,
.icc_res = icc_res_sm8250,
.icc_path_num = ARRAY_SIZE(icc_res_sm8250),
};
static const struct of_device_id camss_dt_match[] = {
@ -1758,14 +1754,10 @@ MODULE_DEVICE_TABLE(of, camss_dt_match);
static int __maybe_unused camss_runtime_suspend(struct device *dev)
{
struct camss *camss = dev_get_drvdata(dev);
int nbr_icc_paths = 0;
int i;
int ret;
if (camss->version == CAMSS_8250)
nbr_icc_paths = ICC_SM8250_COUNT;
for (i = 0; i < nbr_icc_paths; i++) {
for (i = 0; i < camss->res->icc_path_num; i++) {
ret = icc_set_bw(camss->icc_path[i], 0, 0);
if (ret)
return ret;
@ -1777,17 +1769,14 @@ static int __maybe_unused camss_runtime_suspend(struct device *dev)
static int __maybe_unused camss_runtime_resume(struct device *dev)
{
struct camss *camss = dev_get_drvdata(dev);
int nbr_icc_paths = 0;
const struct resources_icc *icc_res = camss->res->icc_res;
int i;
int ret;
if (camss->version == CAMSS_8250)
nbr_icc_paths = ICC_SM8250_COUNT;
for (i = 0; i < nbr_icc_paths; i++) {
for (i = 0; i < camss->res->icc_path_num; i++) {
ret = icc_set_bw(camss->icc_path[i],
camss->icc_bw_tbl[i].avg,
camss->icc_bw_tbl[i].peak);
icc_res[i].icc_bw_tbl.avg,
icc_res[i].icc_bw_tbl.peak);
if (ret)
return ret;
}

View file

@ -84,6 +84,8 @@ struct camss_resources {
const struct camss_subdev_resources *csid_res;
const struct camss_subdev_resources *ispif_res;
const struct camss_subdev_resources *vfe_res;
const struct resources_icc *icc_res;
const unsigned int icc_path_num;
};
struct camss {
@ -105,7 +107,6 @@ struct camss {
struct device **genpd;
struct device_link **genpd_link;
struct icc_path *icc_path[ICC_SM8250_COUNT];
struct icc_bw_tbl icc_bw_tbl[ICC_SM8250_COUNT];
const struct camss_resources *res;
};