Commit 9e0c2597 authored by Bryan O'Donoghue's avatar Bryan O'Donoghue Committed by Hans Verkuil

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: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Acked-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent de98fe8d
...@@ -1485,21 +1485,15 @@ static int camss_configure_pd(struct camss *camss) ...@@ -1485,21 +1485,15 @@ static int camss_configure_pd(struct camss *camss)
static int camss_icc_get(struct camss *camss) static int camss_icc_get(struct camss *camss)
{ {
const struct resources_icc *icc_res; const struct resources_icc *icc_res;
int nbr_icc_paths = 0;
int i; int i;
if (camss->version == CAMSS_8250) { icc_res = camss->res->icc_res;
icc_res = &icc_res_sm8250[0];
nbr_icc_paths = ICC_SM8250_COUNT;
}
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, camss->icc_path[i] = devm_of_icc_get(camss->dev,
icc_res[i].name); icc_res[i].name);
if (IS_ERR(camss->icc_path[i])) if (IS_ERR(camss->icc_path[i]))
return PTR_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; return 0;
...@@ -1742,6 +1736,8 @@ static const struct camss_resources sm8250_resources = { ...@@ -1742,6 +1736,8 @@ static const struct camss_resources sm8250_resources = {
.csiphy_res = csiphy_res_8250, .csiphy_res = csiphy_res_8250,
.csid_res = csid_res_8250, .csid_res = csid_res_8250,
.vfe_res = vfe_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[] = { static const struct of_device_id camss_dt_match[] = {
...@@ -1758,14 +1754,10 @@ MODULE_DEVICE_TABLE(of, camss_dt_match); ...@@ -1758,14 +1754,10 @@ MODULE_DEVICE_TABLE(of, camss_dt_match);
static int __maybe_unused camss_runtime_suspend(struct device *dev) static int __maybe_unused camss_runtime_suspend(struct device *dev)
{ {
struct camss *camss = dev_get_drvdata(dev); struct camss *camss = dev_get_drvdata(dev);
int nbr_icc_paths = 0;
int i; int i;
int ret; int ret;
if (camss->version == CAMSS_8250) for (i = 0; i < camss->res->icc_path_num; i++) {
nbr_icc_paths = ICC_SM8250_COUNT;
for (i = 0; i < nbr_icc_paths; i++) {
ret = icc_set_bw(camss->icc_path[i], 0, 0); ret = icc_set_bw(camss->icc_path[i], 0, 0);
if (ret) if (ret)
return ret; return ret;
...@@ -1777,17 +1769,14 @@ static int __maybe_unused camss_runtime_suspend(struct device *dev) ...@@ -1777,17 +1769,14 @@ static int __maybe_unused camss_runtime_suspend(struct device *dev)
static int __maybe_unused camss_runtime_resume(struct device *dev) static int __maybe_unused camss_runtime_resume(struct device *dev)
{ {
struct camss *camss = dev_get_drvdata(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 i;
int ret; int ret;
if (camss->version == CAMSS_8250) for (i = 0; i < camss->res->icc_path_num; i++) {
nbr_icc_paths = ICC_SM8250_COUNT;
for (i = 0; i < nbr_icc_paths; i++) {
ret = icc_set_bw(camss->icc_path[i], ret = icc_set_bw(camss->icc_path[i],
camss->icc_bw_tbl[i].avg, icc_res[i].icc_bw_tbl.avg,
camss->icc_bw_tbl[i].peak); icc_res[i].icc_bw_tbl.peak);
if (ret) if (ret)
return ret; return ret;
} }
......
...@@ -84,6 +84,8 @@ struct camss_resources { ...@@ -84,6 +84,8 @@ struct camss_resources {
const struct camss_subdev_resources *csid_res; const struct camss_subdev_resources *csid_res;
const struct camss_subdev_resources *ispif_res; const struct camss_subdev_resources *ispif_res;
const struct camss_subdev_resources *vfe_res; const struct camss_subdev_resources *vfe_res;
const struct resources_icc *icc_res;
const unsigned int icc_path_num;
}; };
struct camss { struct camss {
...@@ -105,7 +107,6 @@ struct camss { ...@@ -105,7 +107,6 @@ struct camss {
struct device **genpd; struct device **genpd;
struct device_link **genpd_link; struct device_link **genpd_link;
struct icc_path *icc_path[ICC_SM8250_COUNT]; struct icc_path *icc_path[ICC_SM8250_COUNT];
struct icc_bw_tbl icc_bw_tbl[ICC_SM8250_COUNT];
const struct camss_resources *res; const struct camss_resources *res;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment