From nobody Tue Feb 10 09:01:50 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA58836D4E3 for ; Tue, 20 Jan 2026 06:43:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768891399; cv=none; b=bMPHD+d3pyzD5MOVJ9KHXeLT2l9lxBpCKnbQWPi5k1DrRziqT/vFeQX/fa/CHLiMgT0SpSmBWcl+p6Gqtf+GQmt94bgYb2GK93kELLSTbEcnjdIdG6Ng/acKQOktrmghcR58wll6qi25bpJ3Cd5uWpT3v0ZRQ2XOu1bSRpvPsRg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768891399; c=relaxed/simple; bh=4xfEYBLIIh/QJTSywXNdacMhkuJaXkgcsUCelou2GvI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r0wqCRBYVEEo8R6hIaTqvfLxYaCmGqILP+IdULCzSz6sUQZRp4WnW9zXysJaZgu7LWSu5WSZPOXoQAdp1XJrcbmy7MJNFyNlvoPL3tVfpVwe/t7eCdkKlqLPmIm5p2385iIbuwV3rge7JfOHDZgz/j7Y8GPX+2yQzn/8QZvvago= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=VzXY1gIz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VPwu4fRZ; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VzXY1gIz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VPwu4fRZ" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60JNQcSS3709998 for ; Tue, 20 Jan 2026 06:43:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Jw+wFa2Yd9QkFT6uBSJrnCvNpSFlYBtwouvuaI15GXk=; b=VzXY1gIzLEHPbzxw nGcaNdY8lpj7auVz1VRgpnBexchuDecStm8mo5pLyEThNGKlzaGbjOSTQ1bV2ImE LPIwba8Y4HvMYEeVHu8jV/R2tGkokEj5bObARHsLBz2IDHwpzJG2dNlpUT0d6zEl v8HRGSeai/mmKYeCMuQyUbSXvxU43RjMpO/zVUJQmKElZmeTmZoPJQoN8dBvX4fo 137//SemPSzUVS9L5YfLxJQR4B5F48vLAMUkE3eGUyB3nNh4pOq6CNzHpECH0cuU rGQRaYbboxLIOsbouktsT0BVXQ3KOHhEnZtFR8rAjdTyQbItLLU73AsfbO1bgUGR /XWh7Q== Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bsgmubb3b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 20 Jan 2026 06:43:06 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2b0588c6719so4154130eec.0 for ; Mon, 19 Jan 2026 22:43:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768891386; x=1769496186; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Jw+wFa2Yd9QkFT6uBSJrnCvNpSFlYBtwouvuaI15GXk=; b=VPwu4fRZgNW9yvSvrcCkLmb0eX+t4Y9i9D12y0LS0QsI8BXSsC1s0a+wui83mf7aBY 3aD3pBsKn08xDmCoACzLgbN/XxlkcCy9yVzZL6g7FgI4IDqEEPb14q7kFBuIla/Fcgwi Ro4PX66kmBhoo9pG+2Q6Gh8AQZPztNjHFYrTWlVf4xVOnnfQD+0Tfc2tOcZ/RfGxTJal IAb4gC+8rtcqLOygAgaMhsUwB6z4qnctoZI211FKkbQw+9HZejRzuldYYpkB8zOsH+1L I3cWaIQm5DOutAUU9qnlxvNMdF/1tw08hgsfe3VoZLSHLM7AuLNFlcYqwCvd09wvSPu2 Jtdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768891386; x=1769496186; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Jw+wFa2Yd9QkFT6uBSJrnCvNpSFlYBtwouvuaI15GXk=; b=uomoDOt4S5b2kxM0fnarlPo8AVgrFtsNaGCRFkTH3Tm7e1VgNZtqExs8u0b1jt3AxD VdCv8JBDp9F5kRPT+48XR6r5UpFQwp+BvXNHDJlRAsSsKPFyXm5bOQhUc5YMDHlAkd05 US6bO65r+k/CjxRmWwRU9kXTZ5Hz7Gr5MfCV7xD6O6g0Cb7txB5kxxS5gcA4R7dpAcQX YZEBsL2gpOcZtuxJI2HfLEZjnhe050bCt94PVWtOk8bmVq27RpkEAcfqrodBPEEa6DN+ 3b3XHmMu/wrCmh5anD7SoGxvoecUO6+TIPNLNmaOGDBhdWmvsU5ce3JN3M9dJPrbz8XK 8Q3A== X-Forwarded-Encrypted: i=1; AJvYcCV5wiyel7NYAWsnjtywHTKNINfZqXLwWE7GxoxyXsml7YkHbXNhlguWfcJTQQOIl4KM8oSqyaoWhy0niiQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwG3ddmhzPHTH4I1OYbqL/I7DFdJnyHzxOA5wdenvPPgkh6Bp/p Y4Vo/luBxmzxcNeLfcbldUAqCWuq2xZnddiMsPpMM1kfA4sSLTBB88C6h9qadQARF6QKD0ScGwd 4Y7sVS/nfp/JennJiC9OdSAHQ4+YuQ41cidGcGEINtul4pqe8SXO1f32bSNKAYoiVwO5r5ZB79z +SzQ== X-Gm-Gg: AY/fxX76WD20W/siKnqA4TWGwZSd7vAKGnVm2ptuh5eIDM+N69yKV4h8uuvbcgDhMvV IJ7R+ptvkB31WMwE8Tnd679XWDB1ni91k/m4y1K4vyti5qdXfUpPUsGowE+aQoPVF11QZEu5has +3UWtDGdD+YdL1bBelcVSX/jTZT2GSLjmlTkkRY2IPPUGUMufQAwFS9i9a1/BGiYB6KRvH6mXze s5EnO7x3/bMOFdLADcD9v7xKIyZ6ISm0ay2nLe4tT98hH6IfDaY+CGxf/wyiIipvn0WC2T2FIeq iIOxH29Y0N+pm7QvKTAJ+UZrBDIkIh3klaN5o73Dn920tAprabioCc2VTqsUJ3NJPRXJebQ2pRa Ho0DC7Bp2jD/j19iZbPuZQ+N/OVfAxe6z5WpHg87fW0QW2B+yOyDV+JTnsR+3eEWh X-Received: by 2002:a05:7022:6189:b0:11b:b471:dc8d with SMTP id a92af1059eb24-1233cfad056mr12767794c88.2.1768891385469; Mon, 19 Jan 2026 22:43:05 -0800 (PST) X-Received: by 2002:a05:7022:6189:b0:11b:b471:dc8d with SMTP id a92af1059eb24-1233cfad056mr12767770c88.2.1768891384874; Mon, 19 Jan 2026 22:43:04 -0800 (PST) Received: from hu-hangxian-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1244ad7201fsm19128658c88.7.2026.01.19.22.43.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 22:43:04 -0800 (PST) From: Hangxiang Ma Date: Mon, 19 Jan 2026 22:42:55 -0800 Subject: [PATCH RESEND v2 5/5] media: qcom: camss: vfe: Add support for VFE 980 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260119-add-support-for-camss-on-sm8750-v2-5-3e06583a0a81@oss.qualcomm.com> References: <20260119-add-support-for-camss-on-sm8750-v2-0-3e06583a0a81@oss.qualcomm.com> In-Reply-To: <20260119-add-support-for-camss-on-sm8750-v2-0-3e06583a0a81@oss.qualcomm.com> To: Robert Foss , Todor Tomov , Vladimir Zapolskiy , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, jeyaprakash.soundrapandian@oss.qualcomm.com, Vijay Kumar Tumati , Hangxiang Ma , Atiya Kailany X-Mailer: b4 0.14.3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIwMDA1NCBTYWx0ZWRfX8X236BBczX4F J7AdKCC1YpZPwuW3XZz8QQF89MROPexf2RmP6T9UijtVELfZNKFBw1jl5hrRohpMx0gl4QV+OSn PpmUkuJD+yE7X6RWKolReEbY9HOJG51mRdmb//cCzXd/U5Tvli2bLVv6jbl+HfapcKrgmNZoXZ9 tvL6CdnMF7oUVdlkSLhNcpKy1IQUyAgN5uJX7YoeVos1Eg5hSGyEdA52cf717KTkoo01wntrN1x GRdeSBiw4dCCLyOy5nBtdcM8p8QBUJnt3EsqA+4Nqh96N6QNouqQB5OCiomm9I3mMeVyQaO8YHL oSNpAyRIncakfyNzfii3Sb77jYw4KEgSR8HkrO0RwFyiV849dt1YczoNaXA7hpsCYxZiQklgDhR J4kOjMse/UOCnHeIHmywt+dk9D2Io+z8wicEsUDaNW4ZVPNbuebAHRhy9jj79rUcCjUSSmARjWs RvVeGYOeS97qAFQIFFw== X-Authority-Analysis: v=2.4 cv=Is4Tsb/g c=1 sm=1 tr=0 ts=696f23fa cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=3rR15nC7HOTWOJgZU7UA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: adDE_eOHSGEMH16NZwzfPcP8vc_7FFKo X-Proofpoint-GUID: adDE_eOHSGEMH16NZwzfPcP8vc_7FFKo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-20_01,2026-01-19_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601200054 Add support for Video Front End (VFE) that is on the SM8750 SoCs. VFE gen4 has support for VFE 980. This change limits SM8750 VFE output lines to 3 for now as constrained by the CAMSS driver framework. Reviewed-by: Bryan O'Donoghue Co-developed-by: Atiya Kailany Signed-off-by: Atiya Kailany Signed-off-by: Hangxiang Ma --- drivers/media/platform/qcom/camss/camss-vfe-gen4.c | 10 +- drivers/media/platform/qcom/camss/camss-vfe.c | 2 + drivers/media/platform/qcom/camss/camss.c | 135 +++++++++++++++++= ++++ 3 files changed, 144 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-vfe-gen4.c b/drivers/m= edia/platform/qcom/camss/camss-vfe-gen4.c index d73d70898710..46d8e61b9bac 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-gen4.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-gen4.c @@ -13,8 +13,12 @@ #include "camss.h" #include "camss-vfe.h" =20 -/* VFE-gen4 Bus Register Base Addresses */ -#define BUS_REG_BASE (vfe_is_lite(vfe) ? 0x800 : 0x1000) +#define IS_VFE_980(vfe) ((vfe)->camss->res->version =3D=3D CAMSS_8750) + +#define BUS_REG_BASE_980 (vfe_is_lite(vfe) ? 0x200 : 0x800) +#define BUS_REG_BASE_1080 (vfe_is_lite(vfe) ? 0x800 : 0x1000) +#define BUS_REG_BASE \ + (IS_VFE_980(vfe) ? BUS_REG_BASE_980 : BUS_REG_BASE_1080) =20 #define VFE_BUS_WM_CGC_OVERRIDE (BUS_REG_BASE + 0x08) #define WM_CGC_OVERRIDE_ALL (0x7FFFFFF) @@ -55,7 +59,7 @@ * DISPLAY_DS2_C 6 * FD_Y 7 * FD_C 8 - * PIXEL_RAW 9 + * RAW_OUT(1080)/IR_OUT(980) 9 * STATS_AEC_BG 10 * STATS_AEC_BHIST 11 * STATS_TINTLESS_BG 12 diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/= platform/qcom/camss/camss-vfe.c index 99630ffa1db5..fbde638db194 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe.c +++ b/drivers/media/platform/qcom/camss/camss-vfe.c @@ -351,6 +351,7 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 = sink_code, case CAMSS_845: case CAMSS_8550: case CAMSS_8650: + case CAMSS_8750: case CAMSS_8775P: case CAMSS_KAANAPALI: case CAMSS_X1E80100: @@ -2014,6 +2015,7 @@ static int vfe_bpl_align(struct vfe_device *vfe) case CAMSS_845: case CAMSS_8550: case CAMSS_8650: + case CAMSS_8750: case CAMSS_8775P: case CAMSS_KAANAPALI: case CAMSS_X1E80100: diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 005f9a243ee1..1f6bacbbb202 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -4444,6 +4444,139 @@ static const struct camss_subdev_resources csid_res= _8750[] =3D { } }; =20 +static const struct camss_subdev_resources vfe_res_8750[] =3D { + /* VFE0 - TFE Full */ + { + .clock =3D { "gcc_axi_hf", "vfe0_fast_ahb", "vfe0", + "camnoc_rt_vfe0", "camnoc_rt_vfe1", "camnoc_rt_vfe2", + "camnoc_rt_axi", "camnoc_nrt_axi", "qdss_debug_xo" }, + .clock_rate =3D { { 0 }, + { 0 }, + { 360280000, 480000000, 630000000, 716000000, + 833000000 }, + { 0 }, + { 0 }, + { 0 }, + { 200000000, 300000000, 400000000, 480000000 }, + { 0 }, + { 0 } }, + .reg =3D { "vfe0" }, + .interrupt =3D { "vfe0" }, + .vfe =3D { + .line_num =3D 3, + .is_lite =3D false, + .reg_update_after_csid_config =3D true, + .has_pd =3D true, + .pd_name =3D "ife0", + .hw_ops =3D &vfe_ops_gen4, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE1 - TFE Full */ + { + .clock =3D { "gcc_axi_hf", "vfe1_fast_ahb", "vfe1", + "camnoc_rt_vfe0", "camnoc_rt_vfe1", "camnoc_rt_vfe2", + "camnoc_rt_axi", "camnoc_nrt_axi", "qdss_debug_xo" }, + .clock_rate =3D { { 0 }, + { 0 }, + { 360280000, 480000000, 630000000, 716000000, + 833000000 }, + { 0 }, + { 0 }, + { 0 }, + { 200000000, 300000000, 400000000, 480000000 }, + { 0 }, + { 0 } }, + .reg =3D { "vfe1" }, + .interrupt =3D { "vfe1" }, + .vfe =3D { + .line_num =3D 3, + .is_lite =3D false, + .reg_update_after_csid_config =3D true, + .has_pd =3D true, + .pd_name =3D "ife1", + .hw_ops =3D &vfe_ops_gen4, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE2 - TFE Full */ + { + .clock =3D { "gcc_axi_hf", "vfe2_fast_ahb", "vfe2", + "camnoc_rt_vfe0", "camnoc_rt_vfe1", "camnoc_rt_vfe2", + "camnoc_rt_axi", "camnoc_nrt_axi", "qdss_debug_xo" }, + .clock_rate =3D { { 0 }, + { 0 }, + { 360280000, 480000000, 630000000, 716000000, + 833000000 }, + { 0 }, + { 0 }, + { 0 }, + { 200000000, 300000000, 400000000, 480000000 }, + { 0 }, + { 0 } }, + .reg =3D { "vfe2" }, + .interrupt =3D { "vfe2" }, + .vfe =3D { + .line_num =3D 3, + .is_lite =3D false, + .reg_update_after_csid_config =3D true, + .has_pd =3D true, + .pd_name =3D "ife2", + .hw_ops =3D &vfe_ops_gen4, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE_LITE0 */ + { + .clock =3D { "gcc_axi_hf", "vfe_lite_ahb", "vfe_lite", + "camnoc_rt_vfe_lite", "camnoc_rt_axi", + "camnoc_nrt_axi", "qdss_debug_xo" }, + .clock_rate =3D { { 0 }, + { 0 }, + { 266666667, 400000000, 480000000 }, + { 0 }, + { 200000000, 300000000, 400000000, 480000000 }, + { 0 }, + { 0 } }, + .reg =3D { "vfe_lite0" }, + .interrupt =3D { "vfe_lite0" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .reg_update_after_csid_config =3D true, + .hw_ops =3D &vfe_ops_gen4, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE_LITE1 */ + { + .clock =3D { "gcc_axi_hf", "vfe_lite_ahb", "vfe_lite", + "camnoc_rt_vfe_lite", "camnoc_rt_axi", + "camnoc_nrt_axi", "qdss_debug_xo" }, + .clock_rate =3D { { 0 }, + { 0 }, + { 266666667, 400000000, 480000000 }, + { 0 }, + { 200000000, 300000000, 400000000, 480000000 }, + { 0 }, + { 0 } }, + .reg =3D { "vfe_lite1" }, + .interrupt =3D { "vfe_lite1" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .reg_update_after_csid_config =3D true, + .hw_ops =3D &vfe_ops_gen4, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + } +}; + static const struct resources_icc icc_res_sm8750[] =3D { { .name =3D "cam_ahb", @@ -5885,9 +6018,11 @@ static const struct camss_resources sm8750_resources= =3D { .pd_name =3D "top", .csiphy_res =3D csiphy_res_8750, .csid_res =3D csid_res_8750, + .vfe_res =3D vfe_res_8750, .icc_res =3D icc_res_sm8750, .csiphy_num =3D ARRAY_SIZE(csiphy_res_8750), .csid_num =3D ARRAY_SIZE(csid_res_8750), + .vfe_num =3D ARRAY_SIZE(vfe_res_8750), .icc_path_num =3D ARRAY_SIZE(icc_res_sm8750), }; =20 --=20 2.34.1