From mboxrd@z Thu Jan 1 00:00:00 1970 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 CC1FC3EB0FC for ; Fri, 17 Jul 2026 23:13:40 +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=1784330025; cv=none; b=Wc5GUsPAcZIYvTrgAnGnaVev71e0ZdUgBVGRnZ5CcmWJjjE7Lt7JrWPK6xJTVivuDzNpt1poNBgwuKpQxMKNmQml34yUpce26xBKEYrJcbl4HKIYA1WGPGwdJ0gPFHFWZ3aROvt1Ch2MH+jPVezNymz2h4J1VB8eQeeW0djoxAs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784330025; c=relaxed/simple; bh=r3m4i2ALdREpxRxkgOIDLlVqVDplzZtUq+N0+YLLT6c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=I3Tuc0ZW9Au1NVPrGvocpkstRPbjC83LwPyQWOQPcMOR9E0PNXYtTzePehtovGB8kgYgngGp8I0dKDt2UX1L4YpWGm3y9MxcUC/zh9jIRaYl684OqEkE2X67RZAvf7d+Dahf/Y1aFfs1ab7x77D2dv5HdD84vkqPQ7lsDe2R4VY= 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=gXjmegxM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=I3ODrfen; 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="gXjmegxM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="I3ODrfen" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66HJth6H2824112 for ; Fri, 17 Jul 2026 23:13:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=X6UuIGePDsC buP2mdogDkUwxu/8Bj+LEHcxcasyG09I=; b=gXjmegxMJN9oSVx26xuGMOWNWXW WcbzJ0+uRWNrtdZqBlidwlOZxFkr5YlXzY1uRz3YCiOejQpms/j9o1dImjNN6A+Q WUhi3nB0eGFQcb1ChRsxs0JHtPknRa/bv2IDrc4rYG6hpEN7cQVYdNFVgaNer556 sF3A07m5Ylcb8a75W1IBvz4hmRrsfW+s6Y4/uihxXYMh22Wa/EK8VKzkey1eVhL2 OZRTdiyBBr2cizNSZlToBk3FLS/pFku8tWWFO0d/mwLyJaD5GLcIUO0XRTjjjz9E qlbL9oIzoHcgNIveayXaDTECogg9fFd89vehFb9XUqBRHIxz7Cdhm7AqJTg== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fff813pjh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 17 Jul 2026 23:13:38 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c9d5a5b63c5so12901092a12.1 for ; Fri, 17 Jul 2026 16:13:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784330018; x=1784934818; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=X6UuIGePDsCbuP2mdogDkUwxu/8Bj+LEHcxcasyG09I=; b=I3ODrfenxnssjkWGEWwKPsd5tUzEBgrpsFkBdzX5JjnPHRYRPdG7ELZd98H30dJmB4 VSItSKCAXNowREooye1A9MMoiRyFedLZOkORBS7Ls766sJoakSmRp0GRWGOseOQOWOTo m0HUWbE8n/JkJEj/VfsWMfO33WJgWBfaHx5+zjac3zThfKNXc9GFz1XE0mvDZA21vaRr uvYXJAfR/bp9folovaoinj3axyBf5pOEhey0zBA067DOJFii72KvAUUrH/pBnL96UqT6 NqWnGHloG40OViKHqyj19EA2D5Ja9W4U3H0GrfUQ6DNxm0wcr282xoAQkn8QulPJJ8kS 5xbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784330018; x=1784934818; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=X6UuIGePDsCbuP2mdogDkUwxu/8Bj+LEHcxcasyG09I=; b=H/rrRdMKt4yq6/4VB8DgCaDFJDuz2krmtl15X3IyvPvEwCDPvmRQCsZyUfoMl9yAIb P6d41fECW/Sdp+R5UCt2xjLNY+Sn7eK6eGAuKWL+SXtrop6JJvGFk2X2NKK708hmda6/ yy+f20HnSzr/39Zcfgu4BeiNW5T/V+46ZwVh5+h71X+2dWYlhCQek5KNro6gwzrR3xiS 82kH6bEVgkrfHkHpJFX5kWHaHraSJvJIUS+J2alv82elwCYrrql0MEAb5CwmpZz8m+P+ 0ShlODe69ouzFlCFpaMnmcZ4qbYuByKM8JthzM0Tb79paxcXBfJNsqolnAuCK+dJnMOv wm3A== X-Forwarded-Encrypted: i=1; AHgh+RoniXDByKywxL/QrgIijqa6v17/aY1lkpz/Dwfp6hXb27cu/zp9qliBvlrMeqbH18PbRA3v5DCKcY+7kuk=@vger.kernel.org X-Gm-Message-State: AOJu0YxUSORTXiCf/tzZmDZSYO7DZsdcgOCNOHLNYlloqRcPv8tLyBP9 WXP3/6f4O2a088/IYXBed/T7otm/O2rsg2OpH2t8G3RkDXW622HRMttjwAREFsbYb1gIlAWb75v Fomr+tv1O9RL0eyNtL3wlEWCynetLBgn2CECzVeMLJYeYVP56nLYcI0PiPhILIcA7X2Y= X-Gm-Gg: AfdE7ckfSPlRBeOvLYPMu3c4SwUa5HyFp2tRX/lFCs7eNUeoK3sIpgYLmzg7UBKNh0A FYGGzZSi1uV9r9mH5CoaL+UVeEFvQqzGYv12h6irvEYZgv8tkOkMuZNim6T0Lbgum5MP0uV2Ajv KozcbHgMYPpUcYgh+0YMdf2HinwcTUg4+XkD69BrnzfA2DzO5XViNmXTly5vJZUJwkFoMe2p5Jo Ms4UARUfwD1ARBWMRtqA+n5F6WADCVKP8+hkdh5aXP9WdIITccM0vxB0ODNfbDH1bCszT4SLS5r uheUxHf3gG0SV1CbE6g/88ipcUcUN2YTHndlu7/oW0OEMQMI8v1em0QEJJOpRwJZZ3H4k1MXBWX aOWkFAhyWBwdIFUe24vVITQdlV6ExYVZ19QyNmb876fcyV5E4vjzKOcM= X-Received: by 2002:a17:90b:4f91:b0:37f:9ce1:7364 with SMTP id 98e67ed59e1d1-38e4b51cd29mr4932891a91.26.1784330017867; Fri, 17 Jul 2026 16:13:37 -0700 (PDT) X-Received: by 2002:a17:90b:4f91:b0:37f:9ce1:7364 with SMTP id 98e67ed59e1d1-38e4b51cd29mr4932858a91.26.1784330017337; Fri, 17 Jul 2026 16:13:37 -0700 (PDT) Received: from hu-aarunnan-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce2a18a47sm8145264c88.8.2026.07.17.16.13.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jul 2026 16:13:37 -0700 (PDT) From: Anusha Arun Nandi To: linux-media@vger.kernel.org Cc: anusha.nandi@oss.qualcomm.com, bryan.odonoghue@linaro.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, jigarkumar.zala@oss.qualcomm.com, gjorgji.rosikopulos@oss.qualcomm.com Subject: [PATCH 6/6] media: qcom: camss: validate local/remote endpoint bus-type Date: Fri, 17 Jul 2026 16:13:31 -0700 Message-Id: <20260717231331.1229693-7-anusha.nandi@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260717231331.1229693-1-anusha.nandi@oss.qualcomm.com> References: <20260717231331.1229693-1-anusha.nandi@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Authority-Analysis: v=2.4 cv=RbqgzVtv c=1 sm=1 tr=0 ts=6a5ab722 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=KcNSuxIBhJ6QY8qMoF0A:9 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: DSPani0KeP67F5RTWOld6hPttQidApBW X-Proofpoint-ORIG-GUID: DSPani0KeP67F5RTWOld6hPttQidApBW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE3MDIzOCBTYWx0ZWRfXwPrBc7BoiO2g EXA69zBFugIXIhr+USh8yLrX0+ZupUkccX+9YM34U3uIfAGFJITzyZZvqNppDwAG/+QI+bXuGpC VVsfChPL6gzhbLwpD/6ycxK7TvZakuo5XJwsONXUTQt5KPGkrT2xDybzLIn7gF+ShkWGdNc+t3n ZyY/2rfmEM1lncNCTVoEzpKZPbCeoqpRHjYqBUyhNLcf+xhvh2cJN9XZ8k4sjaNGJ1xucvJxxEW AO8VeaBnBFj6kUKeypLBIfo+flap2o02bLHdJrl4nYkRBPTn5G0pS+R6KWrdLM96ylCr7k8bHEK fUuodNEev01k1K9DyXB//w/1CjXt08BHmhZwTue8qpiLMHxlLAdv6cbsNG18uuHnUucbHPDQZUk t15cHtDgDxp0aj2tI6tX/22DCpZQl7oVmKKeuhYUS25IrdAPD059kFaYxRsMyURWoi8nxCVcWPf fLbCqXTQREtwXGAdR8A== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE3MDIzOCBTYWx0ZWRfX+2Qu6M8YxQ/q DHete+0HWNkpNBfpHw5JF20LDpgssjMUww1XVNgHwg/CctG5VZw68/zLsDmWguox9L3MG+SJ7Wd 4RO0fdasRnNpxXWwD6EsCKe8stXuAZg= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-17_06,2026-07-17_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607170238 A link is invalid if the local CSIPHY endpoint and the remote sensor endpoint describe different bus types. Such a mismatch can otherwise go undetected until later probe or streaming failures. Parse the remote endpoint in camss_parse_endpoint_node() and compare its bus-type with the local endpoint. Reject the link with -EINVAL if the two ends disagree, so C-PHY/D-PHY mismatches are caught early during probe. Co-developed-by: Jigarkumar Zala Signed-off-by: Jigarkumar Zala Signed-off-by: Anusha Arun Nandi --- drivers/media/platform/qcom/camss/camss.c | 28 ++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c index ebf8f21b5fa2..8013aafde6a9 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -4757,7 +4757,9 @@ static int camss_parse_endpoint_node(struct device *dev, { struct csiphy_lanes_cfg *lncfg = &csd->interface.csi2.lane_cfg; struct v4l2_mbus_config_mipi_csi2 *mipi_csi2; - struct v4l2_fwnode_endpoint vep = { { 0 } }; + struct v4l2_fwnode_endpoint vep = { .bus_type = V4L2_MBUS_UNKNOWN }; + struct v4l2_fwnode_endpoint remote_vep = { .bus_type = V4L2_MBUS_UNKNOWN }; + struct fwnode_handle *remote_ep; unsigned int i; int ret; @@ -4774,6 +4776,30 @@ static int camss_parse_endpoint_node(struct device *dev, return -EINVAL; } + /* Get the remote (sensor) endpoint handle, e.g. imx686_ep1 */ + remote_ep = fwnode_graph_get_remote_endpoint(ep); + if (!remote_ep) { + dev_dbg(dev, "No remote endpoint found for %pfw\n", ep); + return -ENODEV; + } + + /* Parse the remote bus type and release the handle */ + ret = v4l2_fwnode_endpoint_parse(remote_ep, &remote_vep); + fwnode_handle_put(remote_ep); + if (ret) { + dev_dbg(dev, "Failed to parse remote endpoint\n"); + return ret; + } + + /* The local (CSIPHY) and remote (sensor) ends must agree */ + if (vep.bus_type != remote_vep.bus_type) { + dev_dbg(dev, "Bus type mismatch! Local (CSI-PHY): %u, Remote (Sensor): %u\n", + vep.bus_type, remote_vep.bus_type); + return -EINVAL; + } + + dev_dbg(dev, "Verified link: both ends use bus-type %u\n", vep.bus_type); + csd->interface.csiphy_id = vep.base.port; mipi_csi2 = &vep.bus.mipi_csi2; -- 2.34.1