Re: [PATCH RFC 1/4] media: qcom: camss: Enable the IFE pixel path on SM8550
From: bod
Date: Tue Oct 13 2026 - 08:08:35 EST
On 2026-10-13 09:44 +0100, William Bright wrote:
> SM8550 IFE 780 shares the write master layout, pixel pipe and two
> pixels per clock with the SM8650 IFE 880. Give the full IFEs a PIX
> line with the PIX formats and treat SM8550 like SM8650 in the pixel
> path helpers.
>
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: William Bright <william.bright@xxxxxxxxxxx>
> ---
> drivers/media/platform/qcom/camss/camss-vfe.c | 6 ++++--
> drivers/media/platform/qcom/camss/camss.c | 12 ++++++------
> 2 files changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c
> index 4f50a362e185..930e6cdf7e0a 100644
> --- a/drivers/media/platform/qcom/camss/camss-vfe.c
> +++ b/drivers/media/platform/qcom/camss/camss-vfe.c
> @@ -1389,12 +1389,13 @@ static bool vfe_check_clock_levels(struct camss_clock *clock)
> * vfe_pix_ppc - Pixels the pixel path consumes per VFE clock
> * @vfe: VFE device
> *
> - * The VFE 4.x and TFE pixel paths take one pixel per clock, the SM8650 IFE
> - * pixel path two.
> + * The VFE 4.x and TFE pixel paths take one pixel per clock, the SM8550 and
> + * SM8650 IFE pixel paths two.
> */
> static u32 vfe_pix_ppc(struct vfe_device *vfe)
> {
> switch (vfe->camss->res->version) {
> + case CAMSS_8550:
> case CAMSS_8650:
> return 2;
> default:
> @@ -2580,6 +2581,7 @@ static int vfe_bpl_align_rdi(struct vfe_device *vfe)
> static bool vfe_pix_line_based(struct vfe_device *vfe)
> {
> switch (vfe->camss->res->version) {
> + case CAMSS_8550:
> case CAMSS_8650:
> return false;
> default:
eek I'm suddenly realising the way this should work is default on, with the
special-cases off.
:)
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index beafbbc77329..98d9d63838d6 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -3561,13 +3561,13 @@ static const struct camss_subdev_resources vfe_res_8550[] = {
> .reg = { "vfe0" },
> .interrupt = { "vfe0" },
> .vfe = {
> - .line_num = 3,
> + .line_num = 4,
In any enabling for 8550 this would come last as you'd only switch on the
last PIX line when you had all of the relevant infrastructure in-place.
---
bod