From nobody Sun May 31 12:42:09 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 E5B6047DD50 for ; Wed, 6 May 2026 17:25:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778088311; cv=none; b=vB6jSq4VsaAYrebO1RQqMm+6rOeUgpCiEmz8Wge6/jTo6BvD9dFUzAQRp08kb4CYgKgfIs7nF0EHztyrOwQoDrNs8xrbQYX4MVmnRIvgptwer5NqEwSQniNIVFFqcOf4hrCDAGqvDYEmr2v5+p3Z9uluyQ4i/g2sxGaygip4zEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778088311; c=relaxed/simple; bh=NBIu/qIHN2l90jn7SpQJDeyvXBRVzWh9a/1UlM4vu8U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SmsLsHnGrBNJngJdx5IIOZn7cKb02vwKYz6yqZDBVGKWtcdVLX4ekk/He5SupDjkGtu/zHFX2xXE+O5kKH/yFHw0K1eQUInsgNQQBsLenpcop7W/jWtnO75ph1wzt9v0G+Urd8M6Aw3fsupCfI1Z1rySbX6qWqKEnIaNqxZPq8w= 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=A4ZtbRE6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bVM7eGSh; arc=none smtp.client-ip=205.220.168.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="A4ZtbRE6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bVM7eGSh" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 646EG9F13309046 for ; Wed, 6 May 2026 17:25:04 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= JbNpuUYPRXk/T6JMrBd7+YckcYOUOw2b84FbhT7cP10=; b=A4ZtbRE6nfWV1ERy pOJdoQBf8izDY204JGX5MNtIYAMkHJlzMj3VT8j7lo0sMuVfVdRqAFKMpYwSjdDF jT7fvv2ZXesNfXZ4/TowcAbZazhwcrsBV5XBHnMoicbfiSRUT8UutdZ8GiECFBU4 jJsJNsq7+sRLVjxhiv1fFklNBPBVRDaie+cEnYoxjnUenzS8XOMWVpu93093+kGK 8QgmTIjr9yaznLysHReaO/MLXLvarpYOokJTHtAl3MnInlQHxIocCD3zZthEoii7 K+gJDhrRgD1H9z7iZAWQXBPjm2etH4UHhPHfRTXq8E+BNPONcul8GLMLdY9GU++8 qj8dFQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e078sgs7y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 06 May 2026 17:25:02 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-36512f223d8so8925122a91.3 for ; Wed, 06 May 2026 10:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778088301; x=1778693101; 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=JbNpuUYPRXk/T6JMrBd7+YckcYOUOw2b84FbhT7cP10=; b=bVM7eGSh6HVJwRyOqlRU3Dor8hja8Jx4aHZWjlbgfTz1mIOaQyELE912I5f/QQ5Nm6 8ppZzfpGEdUqcebX35G3vizf48z8FEpC2NjTtYDUnHko/0aZiIqEDuSLVFNp4xgrUYO0 xcaNosEaEG35JiDryc1iOMEccKnD/kG9ok74eWZ8GF0Kjx789clUcvrv11Sw4eCeuqgF yrjJxHirw2wvsMaWjO5vEM7RT50/BwShqncnvUDT8I5eC/BcRVCkUwA8IyocX50JD66d tqO6enqOdDdcrlpt0TNet+OTfSN4DDGyRYBKGbPMmbLHY8GBIAXhbEY8hzbMUPjo/8ko LQ9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778088301; x=1778693101; 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=JbNpuUYPRXk/T6JMrBd7+YckcYOUOw2b84FbhT7cP10=; b=p/mUw0mUYghIY9dvuUI8tnNCjA7m98wF4mg++jPmGDsAjUlLqEDGjaZ/ojKlAzVL84 lhxrU8bhoOyHtRZAjSe5SpMyD6NpaBhOUEkqiy8RSsNEC9z9QQuM28b+lhpbbMqXu9Zx YYspYllY3jWjXK06vy0vk2xp3POA1BhyCDwLotcwYxl0sRAxOrQQHTd5Q2KLZdUqesmr +WXJwbEsTooCmrR/HpYPU7VxqPaIzUcwRkcEjUkB241+24exWQ8PKojLJ4zARJi7g97T QPtP1qn9ykV29tVdE7fndPqbhiZ5vBm4khnJ65apq14W8S7OfC1YjLLPOLm2y872oVRo BmPg== X-Gm-Message-State: AOJu0YyCPQGvR+s//+PcUf4cYmP1FX+5Js/GD2XgbYmkXnnNAbCYXA9D qCB2Zrt4VTUxjuniyst9V/K79Dkzem/6vQO6Cj3RGVJXSvLqSS4XpAUWw0bc2enBRH/w6wIYexe l1s4MTPF82Vmz7INcOOooWbp9zyeci7WWB50kYgRkC7vf4qdU9e9ZIrxH9vsU1FeG+q0= X-Gm-Gg: AeBDieufXkzpUTofbmQTn8b+KASMJPJH3XGk+15tU2Tk/irp8GyOfnB+UDvW7IQ5mtr eZCsBuzwYV/6RX5EVjSmKGFQZm3T5yXdAmLeOR25JxLdAJN5Exj/pISB7mJXWpeddlOGldowBrd 5psnG4VZnTdPFuOtzY0XjdDRkg/WQbvL+2Gqi7Z2BTFOqlzBFozhJTLkMAGDWQ8kG1qE/gcJklc 9fMOiyK2/LPsLr9est7u+LyAJueOsu8seozgvV1HmGYVG8gupkbphZZqhXyupkvh/YhG0JkvWVQ T/NnGimPe/xciSCVG9rbEmzH44rm8AbdncFYoQ8DvUaaw1yJCQ1JwVdFHYbFZHKaSbEIP6zp7yK dJ1NwiTsH8K7cmPRoUjsvg4GJXvoQkGjnTGqU5QpzYipek1nXV2LQAmTYxkSBaYG4Nw== X-Received: by 2002:a17:90b:2f4e:b0:35f:bb33:d728 with SMTP id 98e67ed59e1d1-365abae617fmr4696998a91.11.1778088301285; Wed, 06 May 2026 10:25:01 -0700 (PDT) X-Received: by 2002:a17:90b:2f4e:b0:35f:bb33:d728 with SMTP id 98e67ed59e1d1-365abae617fmr4696907a91.11.1778088300585; Wed, 06 May 2026 10:25:00 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-365b4c9ad13sm3051948a91.15.2026.05.06.10.24.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 10:25:00 -0700 (PDT) From: Praveen Talari Date: Wed, 06 May 2026 22:54:44 +0530 Subject: [PATCH v1 1/2] serial: qcom-geni: trace: Add tracepoint support for Qualcomm GENI serial 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: <20260506-add-tracepoints-for-qcom-geni-serial-v1-1-544b22612e08@oss.qualcomm.com> References: <20260506-add-tracepoints-for-qcom-geni-serial-v1-0-544b22612e08@oss.qualcomm.com> In-Reply-To: <20260506-add-tracepoints-for-qcom-geni-serial-v1-0-544b22612e08@oss.qualcomm.com> To: Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Greg Kroah-Hartman , Jiri Slaby , Konrad Dybcio Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, Mukesh Kumar Savaliya , Aniket Randive , chandana.chiluveru@oss.qualcomm.com, jyothi.seerapu@oss.qualcomm.com, Praveen Talari X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778088290; l=6511; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=NBIu/qIHN2l90jn7SpQJDeyvXBRVzWh9a/1UlM4vu8U=; b=5+97K3ZzYFMAFbWnT3AdzPbNHUdm4yJU7pM8oyVNXdLu7N2cp40b+iatWwm7fqmNVX9PtjEJ5 iuLMHuWEIt5DNwR5TtpDgXJ94b2alMZVzyD5os76ls2o33OmZYw4z3l X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Authority-Analysis: v=2.4 cv=Lc8MLDfi c=1 sm=1 tr=0 ts=69fb796e cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=ESrFBFgxKAYm4imzEJIA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA2MDE2OSBTYWx0ZWRfXzfQ7jc3h33i1 c2J21ovUVokaTiXB/L21s5JIImE05Wgi6AS7ymwtRyYrKKLeiXF+q8zF6qLlekv6XhgttxFTCOO iZiyRf1jJIDC3uh0usG9m2JZGU44QTXVzFDNlNx2nktYby35nnnlszTWAf3FYb3L8WfBK7fKB/p Yxfrb3hN8XL67ShL0sfC4jWKrQDa9dVYgbDX3szg4dzQXwMaBwBFZ9Ichr4PNc4kNrBzwLtGsYc lIKFjmI++o92QV++5WlPC95HeHhySJy0x3sPViqrafYSlB623q6k5Fk2Hh29p+IDErHhnevXmtu VldtT23q8tQRPoujtvzZNPsFif/jbXvTFFbceyQU6LfO5eDhWVUoyX2HH5wp3Qymipqg5W+oKSe 4gcsi4E6TDkLHYDyoiiRKYWHVNpEEruoRqj+Vh7h+dYpg0gKrMZJH++qP7wYSAVYNDI3ini/me7 vApFvj483jY2gwHnbJg== X-Proofpoint-ORIG-GUID: 9MgdGR1UdWtx3ptdK9SEi7rbPDB1TaBQ X-Proofpoint-GUID: 9MgdGR1UdWtx3ptdK9SEi7rbPDB1TaBQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_01,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605060169 Add tracepoint support to the Qualcomm GENI serial driver to provide runtime visibility into driver behavior without requiring invasive debug patches. The trace events cover UART termios configuration, clock setup, modem control state, interrupt status, and TX/RX data, making it easier to diagnose communication issues in the field. Signed-off-by: Praveen Talari --- include/trace/events/qcom_geni_serial.h | 173 ++++++++++++++++++++++++++++= ++++ 1 file changed, 173 insertions(+) diff --git a/include/trace/events/qcom_geni_serial.h b/include/trace/events= /qcom_geni_serial.h new file mode 100644 index 000000000000..f386d163907a --- /dev/null +++ b/include/trace/events/qcom_geni_serial.h @@ -0,0 +1,173 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM qcom_geni_serial + +#if !defined(_TRACE_QCOM_GENI_SERIAL_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_QCOM_GENI_SERIAL_H + +#include +#include + +TRACE_EVENT(geni_serial_set_termios, + TP_PROTO(struct device *dev, unsigned int baud, + unsigned int bits_per_char, u32 tx_trans_cfg, + u32 tx_parity_cfg, u32 rx_trans_cfg, + u32 rx_parity_cfg, u32 stop_bit_len), + TP_ARGS(dev, baud, bits_per_char, tx_trans_cfg, tx_parity_cfg, + rx_trans_cfg, rx_parity_cfg, stop_bit_len), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(unsigned int, baud) + __field(unsigned int, bits_per_char) + __field(u32, tx_trans_cfg) + __field(u32, tx_parity_cfg) + __field(u32, rx_trans_cfg) + __field(u32, rx_parity_cfg) + __field(u32, stop_bit_len) + ), + + TP_fast_assign(__assign_str(name); + __entry->baud =3D baud; + __entry->bits_per_char =3D bits_per_char; + __entry->tx_trans_cfg =3D tx_trans_cfg; + __entry->tx_parity_cfg =3D tx_parity_cfg; + __entry->rx_trans_cfg =3D rx_trans_cfg; + __entry->rx_parity_cfg =3D rx_parity_cfg; + __entry->stop_bit_len =3D stop_bit_len; + ), + + TP_printk("%s: baud=3D%u bpc=3D%u tx_trans=3D0x%08x tx_par=3D0x%08x r= x_trans=3D0x%08x rx_par=3D0x%08x stop=3D%u", + __get_str(name), __entry->baud, __entry->bits_per_char, + __entry->tx_trans_cfg, __entry->tx_parity_cfg, + __entry->rx_trans_cfg, __entry->rx_parity_cfg, + __entry->stop_bit_len) +); + +TRACE_EVENT(geni_serial_clk_cfg, + TP_PROTO(struct device *dev, unsigned int desired_rate, + unsigned long clk_rate, unsigned int clk_div, + unsigned int clk_idx), + TP_ARGS(dev, desired_rate, clk_rate, clk_div, clk_idx), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(unsigned int, desired_rate) + __field(unsigned long, clk_rate) + __field(unsigned int, clk_div) + __field(unsigned int, clk_idx) + ), + + TP_fast_assign(__assign_str(name); + __entry->desired_rate =3D desired_rate; + __entry->clk_rate =3D clk_rate; + __entry->clk_div =3D clk_div; + __entry->clk_idx =3D clk_idx; + ), + + TP_printk("%s: desired_rate=3D%u clk_rate=3D%lu clk_div=3D%u clk_idx= =3D%u", + __get_str(name), __entry->desired_rate, __entry->clk_rate, + __entry->clk_div, __entry->clk_idx) +); + +TRACE_EVENT(geni_serial_irq, + TP_PROTO(struct device *dev, u32 m_irq, u32 s_irq, + u32 dma_tx, u32 dma_rx), + TP_ARGS(dev, m_irq, s_irq, dma_tx, dma_rx), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(u32, m_irq) + __field(u32, s_irq) + __field(u32, dma_tx) + __field(u32, dma_rx) + ), + + TP_fast_assign(__assign_str(name); + __entry->m_irq =3D m_irq; + __entry->s_irq =3D s_irq; + __entry->dma_tx =3D dma_tx; + __entry->dma_rx =3D dma_rx; + ), + + TP_printk("%s: m_irq=3D0x%08x s_irq=3D0x%08x dma_tx=3D0x%08x dma_rx= =3D0x%08x", + __get_str(name), __entry->m_irq, __entry->s_irq, + __entry->dma_tx, __entry->dma_rx) +); + +TRACE_EVENT(geni_serial_tx_data, + TP_PROTO(struct device *dev, const u8 *buf, unsigned int len), + TP_ARGS(dev, buf, len), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(unsigned int, len) + __dynamic_array(u8, data, len) + ), + + TP_fast_assign(__assign_str(name); + __entry->len =3D len; + memcpy(__get_dynamic_array(data), buf, len); + ), + + TP_printk("%s: tx_len=3D%u data=3D%s", + __get_str(name), __entry->len, + __print_hex(__get_dynamic_array(data), __entry->len)) +); + +TRACE_EVENT(geni_serial_rx_data, + TP_PROTO(struct device *dev, const u8 *buf, unsigned int len), + TP_ARGS(dev, buf, len), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(unsigned int, len) + __dynamic_array(u8, data, len) + ), + + TP_fast_assign(__assign_str(name); + __entry->len =3D len; + memcpy(__get_dynamic_array(data), buf, len); + ), + + TP_printk("%s: rx_len=3D%u data=3D%s", + __get_str(name), __entry->len, + __print_hex(__get_dynamic_array(data), __entry->len)) +); + +TRACE_EVENT(geni_serial_set_mctrl, + TP_PROTO(struct device *dev, unsigned int mctrl, + u32 uart_manual_rfr), + TP_ARGS(dev, mctrl, uart_manual_rfr), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(unsigned int, mctrl) + __field(u32, uart_manual_rfr) + ), + + TP_fast_assign(__assign_str(name); + __entry->mctrl =3D mctrl; + __entry->uart_manual_rfr =3D uart_manual_rfr; + ), + + TP_printk("%s: mctrl=3D0x%04x uart_manual_rfr=3D0x%08x", + __get_str(name), __entry->mctrl, __entry->uart_manual_rfr) +); + +TRACE_EVENT(geni_serial_get_mctrl, + TP_PROTO(struct device *dev, unsigned int mctrl, u32 geni_ios), + TP_ARGS(dev, mctrl, geni_ios), + + TP_STRUCT__entry(__string(name, dev_name(dev)) + __field(unsigned int, mctrl) + __field(u32, geni_ios) + ), + + TP_fast_assign(__assign_str(name); + __entry->mctrl =3D mctrl; + __entry->geni_ios =3D geni_ios; + ), + + TP_printk("%s: mctrl=3D0x%04x geni_ios=3D0x%08x", + __get_str(name), __entry->mctrl, __entry->geni_ios) +); + +#endif /* _TRACE_QCOM_GENI_SERIAL_H */ + +/* This part must be outside protection */ +#include --=20 2.34.1 From nobody Sun May 31 12:42:09 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 235F14ADDAF for ; Wed, 6 May 2026 17:25:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778088313; cv=none; b=euHvrJlY4lzWAhLDbdBRYBaPgJ9ZpNAYaj9n7AqaYRE5UpTpqP8mohoNroFCAhTVo/lUwHamBIy2c3WcFQTsAQSyT30YXfNGTF381/4IEWdhpaV/bU7CU8oxGJt3i8n5PX80f+Kw/XCxFTrNiRESY3qxrOJpQ7Lx4ZvyKNpfIzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778088313; c=relaxed/simple; bh=cN4714YKFgE3Cy3MMrWdct7feqTVFb9iQz2fsCrzvwo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mD4NBg4CFKohfBa1H2MPXi3/6AcWW+/9CD5m9urfurPcernmfL788ZxEbezckekG6wu2k7jDC2FFNrZrPjgCGyKDLQjRL8yFNp1zKBCTx/V/o40M/X3xGu2PT6N9lAzMNylPWkAvcwEOuBvxZ7D0EEUEr8vJ/jXqXX3giC2AtxU= 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=TN1d5uU3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cET7oj2b; arc=none smtp.client-ip=205.220.168.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="TN1d5uU3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cET7oj2b" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 646D4PFp529331 for ; Wed, 6 May 2026 17:25:07 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= VrjvN4YoXoq6Qx8iD0D8HvuSXAGY4OIP3vppn+Pqo/g=; b=TN1d5uU3sCBiDNNJ 1XzVn2ywIKnm/OGFsmeBbC0O5pUDrNHinTm7auznIXkFNfEnG5bz9yO19bJPvg/b wX1R1H5bUR0H58vvgVF/9g3TdfxpXSQKimmR2Co04TY3YlaqNbYJzYRhu314wKDs 935I+6k/iE7Vt1gf5azv6+HPKooPcPM0vjkw6StA3NOaJqy5/YYwcw+Pt95l/f6T S3Yi3fABVeiQQDf2BFs9V6ZrbVdxcvs0qa8pyMdwvbCbtGwz1ZKCBe+2/03bSyTO DFI8Dt3d++N95rwTYESia8N+TnJNpCHCibTkL8bUUgX9RZWKq5ShDUBtT261Bx7V jf+Xzg== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e015xadqh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 06 May 2026 17:25:06 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-365bba50e82so697660a91.0 for ; Wed, 06 May 2026 10:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778088306; x=1778693106; 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=VrjvN4YoXoq6Qx8iD0D8HvuSXAGY4OIP3vppn+Pqo/g=; b=cET7oj2b6RiH4ZKyO/xMeAUH9QQt3Cs0A0DgQCtJOrdN792N/kMFR5bpt1dCzXgm5e 9EAwThLBTjdbQ/5YnsFDxQ3PaoKrzvFSfr10E3LoMLN0VyDwxYlFlNnzjGi6/+Ue9XrR T78bXfLVVZdEDuHi57QhMiqmbvqYU6YqO4IXA5C925OKmrVchnPHyy1af7bgR/gq8G3v G5pjrvpdcy68Ubxj2pazknwBOcX15aIjJ8svKVqNZpj3y4bGHPNRgS4hbDQbkjMOIZTq wcTr6RQR8RsC1wf6ulSXPXptUBWlyLzlKUVBM4571qFBrKxJKPCEjth6TcEygKSm9UvD trAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778088306; x=1778693106; 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=VrjvN4YoXoq6Qx8iD0D8HvuSXAGY4OIP3vppn+Pqo/g=; b=E31/FsuuyD6xO1IMXdkzCqQHDsKpAlEfM8+jJHO9AdNlyhhtmbHx78Cf2L6gwvOOSc qglLzJNSge4LWivRZac/pZuUWar/UjdiHH1RZTnS3ZARrZiX04TkLW+SnV4Gp67jZqqU eOUyjVIzTC922igyDqNLzuoPKg6u0IIcArRfLyrNqLqHc5fJGqKAiPp7A0N2HVqXuU/Q b/ZeiAXJmoTw7+YTFJdUPKE/94TBLDo2TCruFx/7Kd/PQHol1dDvecjxF2KlIDWq3OCh 3AW8wGtqKHLdRoRuY+HWSatNvqGQ3CmiX17bB++S7lFEFaNO1YFCRLjUZT+E/jW4S3jL fRNg== X-Gm-Message-State: AOJu0YyZX1m00PYyxJWM567Jexn4wPwTLnjT9LWp9mnPfWCh7J82sM+T f0GN2Fb6QomK+xuCcuO6w1+Gm9CTipwhMIlSRQ9+fgtrTpTEwGFkKyrFbJ5pyGZmLfEyRcEWFlb 4xlcd+cqRbh6scTFIJQRKPrp9TlI+c7Dh7SJS4NfpxMQMIzkJVMrZgNvw1ljOwjc0/Bo= X-Gm-Gg: AeBDiesnMONny1rrdMo2msBSPfmUEbfRPkBjHmvWP3jkq0GqgjCSaLU9u0be3S2/uPl Bm4idswAXfSiI0rTtzWxMmyg2Ox6McrnVhtQWmp9oxnl5BxGcfHsfkWnSMUNaTSFbH/W6/loAyg beLCAAycVnVRXlt3VxWQ0dp6ZXwHDvxCZ9uDX65c/govfDpsMJEtvdCemzMxSyqXU7MMIJJSQoX 3CG1spiBATk+yydAmIsY+V/A+ADtSXVampZJFMuC6kTVmncr1bFmAIM+gpI4zKNSeneYeMwB3po 9MUF1PPxqLIt7WYtINrh8dqyK07FzPqClLBnbzyt4AJUivXcsyCa642hxOBwPGGFUicgfQ4XOk5 /uLqmC2oYZhZvZjub9avbFVSHTFInABoPYpXuWVUiCG+Mv/DSq4bScdbsiCIw8HqTvQ== X-Received: by 2002:a17:90b:3c8f:b0:35f:be11:b3e0 with SMTP id 98e67ed59e1d1-365ab9b8135mr4565369a91.2.1778088306205; Wed, 06 May 2026 10:25:06 -0700 (PDT) X-Received: by 2002:a17:90b:3c8f:b0:35f:be11:b3e0 with SMTP id 98e67ed59e1d1-365ab9b8135mr4565330a91.2.1778088305575; Wed, 06 May 2026 10:25:05 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-365b4c9ad13sm3051948a91.15.2026.05.06.10.25.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 10:25:05 -0700 (PDT) From: Praveen Talari Date: Wed, 06 May 2026 22:54:45 +0530 Subject: [PATCH v1 2/2] serial: qcom-geni: Add tracepoints for Qualcomm GENI serial driver 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: <20260506-add-tracepoints-for-qcom-geni-serial-v1-2-544b22612e08@oss.qualcomm.com> References: <20260506-add-tracepoints-for-qcom-geni-serial-v1-0-544b22612e08@oss.qualcomm.com> In-Reply-To: <20260506-add-tracepoints-for-qcom-geni-serial-v1-0-544b22612e08@oss.qualcomm.com> To: Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Greg Kroah-Hartman , Jiri Slaby , Konrad Dybcio Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, Mukesh Kumar Savaliya , Aniket Randive , chandana.chiluveru@oss.qualcomm.com, jyothi.seerapu@oss.qualcomm.com, Praveen Talari X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778088290; l=5509; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=cN4714YKFgE3Cy3MMrWdct7feqTVFb9iQz2fsCrzvwo=; b=KfFd0y+71+XaxkJepYBKHqRiRmFWd2/gTlbNof9M4vUEV487vyTWZtoqd0oB0Bfb7QZrlzIQR UmcPo5RhJzyBSx1NazrRDNsYU7eAJ/+qzndXxIzhfZPQ2z1dR8jFegu X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Authority-Analysis: v=2.4 cv=Os1/DS/t c=1 sm=1 tr=0 ts=69fb7972 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=9bDMwBodl1-tA_8t4OkA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: dz-YWUi-h6GyUCpMwl_leV2KyRg8xmJm X-Proofpoint-ORIG-GUID: dz-YWUi-h6GyUCpMwl_leV2KyRg8xmJm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA2MDE2OSBTYWx0ZWRfXwcAgWh6pH0o2 lGu/L2OlpwiXgHa6a/jlmA7O2tJmbQuvnQMzQUeEppjD0+HelFQwJ8wcS6lpHg2bY7fvoMwVpZ1 SkrJRFMs61squWIvVQJgJChzsCi4SMBWVsmzH8/VVMXC89rMNI1AypQkyRo8tQVfyl8f819ADdi 826Jqo6fmmsOk3a/1mrlKEgD4B5eG4MBebYekS80XiAoVIFxpHsuAo1jrfHd2VqfGg/DytEZ5VO C6FcVL+mEZwPswmmYxo9QT/WC6b1Rlqc/0o6kLH3UkD92P+EjKfX4rvtYKXFzMumd6+fpQr4qmi vCyg1Sd250v39ayV4VHaYEX0waiwEEYmzo93PFWkiawc9Aa+bqvNM+Xo+3PTNYoSfdgr/2u4fcS lVG6MEgOz0bpcqINVi3FWoXWA0cxJiMA+gXlOgVjRN+SGjcpg/+TDCQIfljEpILgIS7vuhJ6j8v VNBMZ505AiV9h5jRKLg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_01,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605060169 Add tracing to the Qualcomm GENI serial driver to improve runtime observability. Trace hooks are added at key points including termios and clock configuration, manual control get/set, interrupt handling, and data TX/RX paths. Usage examples: Enable all serial traces: echo 1 > /sys/kernel/debug/tracing/events/qcom_geni_serial/enable cat /sys/kernel/debug/tracing/trace_pipe Example trace output: 2517.938432: geni_serial_clk_cfg: a94000.serial: desired_rate=3D1843200 clk_rate=3D7372800 clk_div=3D4 clk_idx=3D0 2517.938753: geni_serial_irq: a94000.serial: m_irq=3D0x88800000 s_irq=3D0x08000111 dma_tx=3D0x00000000 dma_rx=3D0x00000000 2517.938803: geni_serial_set_termios: a94000.serial: baud=3D115200 bpc=3D8 tx_trans=3D0x00000002 tx_par=3D0x00000000 rx_trans=3D0x00000000 rx_par=3D0x00000000 stop=3D0 2517.938807: geni_serial_set_mctrl: a94000.serial: mctrl=3D0x8006 uart_manual_rfr=3D0x00000000 2517.938818: geni_serial_get_mctrl: a94000.serial: mctrl=3D0x0160 geni_ios=3D0x00000001 2517.939165: geni_serial_irq: a94000.serial: m_irq=3D0x00400000 s_irq=3D0x00000000 dma_tx=3D0x00000000 dma_rx=3D0x00000000 2517.939592: geni_serial_tx_data: a94000.serial: tx_len=3D8 data=3D61 62 63 64 65 66 67 68 2517.940610: geni_serial_irq: a94000.serial: m_irq=3D0x00000001 s_irq=3D0x00000000 dma_tx=3D0x00000003 dma_rx=3D0x00000000 2517.942174: geni_serial_irq: a94000.serial: m_irq=3D0x08000000 s_irq=3D0x08000100 dma_tx=3D0x00000000 dma_rx=3D0x00000003 2517.942323: geni_serial_rx_data: a94000.serial: rx_len=3D8 data=3D61 62 63 64 65 66 67 68 2517.942680: geni_serial_set_mctrl: a94000.serial: mctrl=3D0x8000 uart_manual_rfr=3D0x80000002 Signed-off-by: Praveen Talari --- drivers/tty/serial/qcom_geni_serial.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qco= m_geni_serial.c index e6b0a55f0cfb..9e2de074d799 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -7,6 +7,9 @@ /* Disable MMIO tracing to prevent excessive logging of unwanted MMIO trac= es */ #define __DISABLE_TRACE_MMIO__ =20 +#define CREATE_TRACE_POINTS +#include + #include #include #include @@ -225,7 +228,7 @@ static void qcom_geni_serial_config_port(struct uart_po= rt *uport, int cfg_flags) static unsigned int qcom_geni_serial_get_mctrl(struct uart_port *uport) { unsigned int mctrl =3D TIOCM_DSR | TIOCM_CAR; - u32 geni_ios; + u32 geni_ios =3D 0; =20 if (uart_console(uport)) { mctrl |=3D TIOCM_CTS; @@ -235,6 +238,8 @@ static unsigned int qcom_geni_serial_get_mctrl(struct u= art_port *uport) mctrl |=3D TIOCM_CTS; } =20 + trace_geni_serial_get_mctrl(uport->dev, mctrl, geni_ios); + return mctrl; } =20 @@ -253,6 +258,8 @@ static void qcom_geni_serial_set_mctrl(struct uart_port= *uport, if (!(mctrl & TIOCM_RTS) && !uport->suspended) uart_manual_rfr =3D UART_MANUAL_RFR_EN | UART_RFR_NOT_READY; writel(uart_manual_rfr, uport->membase + SE_UART_MANUAL_RFR); + + trace_geni_serial_set_mctrl(uport->dev, mctrl, uart_manual_rfr); } =20 static const char *qcom_geni_serial_get_type(struct uart_port *uport) @@ -683,6 +690,8 @@ static void qcom_geni_serial_start_tx_dma(struct uart_p= ort *uport) xmit_size =3D kfifo_out_linear_ptr(&tport->xmit_fifo, &tail, UART_XMIT_SIZE); =20 + trace_geni_serial_tx_data(uport->dev, tail, xmit_size); + qcom_geni_set_rs485_mode(uport, SER_RS485_RTS_ON_SEND); =20 qcom_geni_serial_setup_tx(uport, xmit_size); @@ -909,8 +918,10 @@ static void qcom_geni_serial_handle_rx_dma(struct uart= _port *uport, bool drop) return; } =20 - if (!drop) + if (!drop) { + trace_geni_serial_rx_data(uport->dev, port->rx_buf, rx_in); handle_rx_uart(uport, rx_in); + } =20 ret =3D geni_se_rx_dma_prep(&port->se, port->rx_buf, DMA_RX_BUF_SIZE, @@ -1069,6 +1080,10 @@ static irqreturn_t qcom_geni_serial_isr(int isr, voi= d *dev) geni_status =3D readl(uport->membase + SE_GENI_STATUS); dma =3D readl(uport->membase + SE_GENI_DMA_MODE_EN); m_irq_en =3D readl(uport->membase + SE_GENI_M_IRQ_EN); + + trace_geni_serial_irq(uport->dev, m_irq_status, s_irq_status, + dma_tx_status, dma_rx_status); + writel(m_irq_status, uport->membase + SE_GENI_M_IRQ_CLEAR); writel(s_irq_status, uport->membase + SE_GENI_S_IRQ_CLEAR); writel(dma_tx_status, uport->membase + SE_DMA_TX_IRQ_CLR); @@ -1281,8 +1296,8 @@ static int geni_serial_set_rate(struct uart_port *upo= rt, unsigned int baud) return -EINVAL; } =20 - dev_dbg(port->se.dev, "desired_rate =3D %u, clk_rate =3D %lu, clk_div =3D= %u\n, clk_idx =3D %u\n", - baud * sampling_rate, clk_rate, clk_div, clk_idx); + trace_geni_serial_clk_cfg(uport->dev, baud * sampling_rate, clk_rate, + clk_div, clk_idx); =20 uport->uartclk =3D clk_rate; port->clk_rate =3D clk_rate; @@ -1432,6 +1447,10 @@ static void qcom_geni_serial_set_termios(struct uart= _port *uport, writel(bits_per_char, uport->membase + SE_UART_TX_WORD_LEN); writel(bits_per_char, uport->membase + SE_UART_RX_WORD_LEN); writel(stop_bit_len, uport->membase + SE_UART_TX_STOP_BIT_LEN); + + trace_geni_serial_set_termios(uport->dev, baud, bits_per_char, + tx_trans_cfg, tx_parity_cfg, rx_trans_cfg, + rx_parity_cfg, stop_bit_len); } =20 #ifdef CONFIG_SERIAL_QCOM_GENI_CONSOLE --=20 2.34.1