Message ID | 20240812144131.369378-11-quic_depengs@quicinc.com |
---|---|
State | New |
Headers | show |
Series | media: qcom: camss: Add sm8550 support | expand |
On 12/08/2024 15:41, Depeng Shao wrote: > Add CAMSS_8550 enum, sm8550 compatible and sm8550 camss drvier private > data, the private data just include some basic information now, later > changes will enumerate with csiphy, csid and vfe resources. > > Also add a default case in vfe_src_pad_code to get rid of a compile > warning since a new hw enum is added. > > drivers/media/platform/qcom/camss/camss-vfe.c:291:10: warning: > enumeration value 'CAMSS_8550' not handled in switch [-Wswitch] > 291 | switch (vfe->camss->res->version) { > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > Signed-off-by: Depeng Shao <quic_depengs@quicinc.com> > --- > drivers/media/platform/qcom/camss/camss-vfe.c | 4 +++ > drivers/media/platform/qcom/camss/camss.c | 32 +++++++++++++++++++ > drivers/media/platform/qcom/camss/camss.h | 1 + > 3 files changed, 37 insertions(+) > > diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c > index f6650694f47e..71bd55e854bb 100644 > --- a/drivers/media/platform/qcom/camss/camss-vfe.c > +++ b/drivers/media/platform/qcom/camss/camss-vfe.c > @@ -403,6 +403,10 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 sink_code, > return sink_code; > } > break; > + default: > + WARN(1, "Unsupported HW version: %x\n", > + vfe->camss->res->version); > + break; > } > return 0; > } Please make the addition of the standalone case a standalone patch ;) Then add. Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> To this patch. > diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c > index 51b1d3550421..519b37794745 100644 > --- a/drivers/media/platform/qcom/camss/camss.c > +++ b/drivers/media/platform/qcom/camss/camss.c > @@ -1480,6 +1480,29 @@ static const struct resources_icc icc_res_sc8280xp[] = { > }, > }; > > +static const struct resources_icc icc_res_sm8550[] = { > + { > + .name = "ahb", > + .icc_bw_tbl.avg = 2097152, > + .icc_bw_tbl.peak = 2097152, > + }, > + { > + .name = "hf_0_mnoc", > + .icc_bw_tbl.avg = 2097152, > + .icc_bw_tbl.peak = 2097152, > + }, > + { > + .name = "icp_mnoc", > + .icc_bw_tbl.avg = 2097152, > + .icc_bw_tbl.peak = 2097152, > + }, > + { > + .name = "sf_0_mnoc", > + .icc_bw_tbl.avg = 2097152, > + .icc_bw_tbl.peak = 2097152, > + }, > +}; > + > /* > * camss_add_clock_margin - Add margin to clock frequency rate > * @rate: Clock frequency rate > @@ -2443,6 +2466,14 @@ static const struct camss_resources sc8280xp_resources = { > .link_entities = camss_link_entities > }; > > +static const struct camss_resources sm8550_resources = { > + .version = CAMSS_8550, > + .pd_name = "top", > + .icc_res = icc_res_sm8550, > + .icc_path_num = ARRAY_SIZE(icc_res_sm8550), > + .link_entities = camss_link_entities > +}; > + > static const struct of_device_id camss_dt_match[] = { > { .compatible = "qcom,msm8916-camss", .data = &msm8916_resources }, > { .compatible = "qcom,msm8996-camss", .data = &msm8996_resources }, > @@ -2450,6 +2481,7 @@ static const struct of_device_id camss_dt_match[] = { > { .compatible = "qcom,sdm845-camss", .data = &sdm845_resources }, > { .compatible = "qcom,sm8250-camss", .data = &sm8250_resources }, > { .compatible = "qcom,sc8280xp-camss", .data = &sc8280xp_resources }, > + { .compatible = "qcom,sm8550-camss", .data = &sm8550_resources }, > { } > }; > > diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/platform/qcom/camss/camss.h > index 73c47c07fc30..5568ab32d5d7 100644 > --- a/drivers/media/platform/qcom/camss/camss.h > +++ b/drivers/media/platform/qcom/camss/camss.h > @@ -79,6 +79,7 @@ enum camss_version { > CAMSS_845, > CAMSS_8250, > CAMSS_8280XP, > + CAMSS_8550, > }; > > enum icc_count {
diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c index f6650694f47e..71bd55e854bb 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe.c +++ b/drivers/media/platform/qcom/camss/camss-vfe.c @@ -403,6 +403,10 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 sink_code, return sink_code; } break; + default: + WARN(1, "Unsupported HW version: %x\n", + vfe->camss->res->version); + break; } return 0; } diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c index 51b1d3550421..519b37794745 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -1480,6 +1480,29 @@ static const struct resources_icc icc_res_sc8280xp[] = { }, }; +static const struct resources_icc icc_res_sm8550[] = { + { + .name = "ahb", + .icc_bw_tbl.avg = 2097152, + .icc_bw_tbl.peak = 2097152, + }, + { + .name = "hf_0_mnoc", + .icc_bw_tbl.avg = 2097152, + .icc_bw_tbl.peak = 2097152, + }, + { + .name = "icp_mnoc", + .icc_bw_tbl.avg = 2097152, + .icc_bw_tbl.peak = 2097152, + }, + { + .name = "sf_0_mnoc", + .icc_bw_tbl.avg = 2097152, + .icc_bw_tbl.peak = 2097152, + }, +}; + /* * camss_add_clock_margin - Add margin to clock frequency rate * @rate: Clock frequency rate @@ -2443,6 +2466,14 @@ static const struct camss_resources sc8280xp_resources = { .link_entities = camss_link_entities }; +static const struct camss_resources sm8550_resources = { + .version = CAMSS_8550, + .pd_name = "top", + .icc_res = icc_res_sm8550, + .icc_path_num = ARRAY_SIZE(icc_res_sm8550), + .link_entities = camss_link_entities +}; + static const struct of_device_id camss_dt_match[] = { { .compatible = "qcom,msm8916-camss", .data = &msm8916_resources }, { .compatible = "qcom,msm8996-camss", .data = &msm8996_resources }, @@ -2450,6 +2481,7 @@ static const struct of_device_id camss_dt_match[] = { { .compatible = "qcom,sdm845-camss", .data = &sdm845_resources }, { .compatible = "qcom,sm8250-camss", .data = &sm8250_resources }, { .compatible = "qcom,sc8280xp-camss", .data = &sc8280xp_resources }, + { .compatible = "qcom,sm8550-camss", .data = &sm8550_resources }, { } }; diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/platform/qcom/camss/camss.h index 73c47c07fc30..5568ab32d5d7 100644 --- a/drivers/media/platform/qcom/camss/camss.h +++ b/drivers/media/platform/qcom/camss/camss.h @@ -79,6 +79,7 @@ enum camss_version { CAMSS_845, CAMSS_8250, CAMSS_8280XP, + CAMSS_8550, }; enum icc_count {
Add CAMSS_8550 enum, sm8550 compatible and sm8550 camss drvier private data, the private data just include some basic information now, later changes will enumerate with csiphy, csid and vfe resources. Also add a default case in vfe_src_pad_code to get rid of a compile warning since a new hw enum is added. drivers/media/platform/qcom/camss/camss-vfe.c:291:10: warning: enumeration value 'CAMSS_8550' not handled in switch [-Wswitch] 291 | switch (vfe->camss->res->version) { | ^~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Depeng Shao <quic_depengs@quicinc.com> --- drivers/media/platform/qcom/camss/camss-vfe.c | 4 +++ drivers/media/platform/qcom/camss/camss.c | 32 +++++++++++++++++++ drivers/media/platform/qcom/camss/camss.h | 1 + 3 files changed, 37 insertions(+)