From nobody Mon May 25 04:36:11 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 0372B3876BD for ; Mon, 18 May 2026 17:57:14 +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=1779127037; cv=none; b=fsWjhDx2A92CKc0PnOdJxnR4X7mxTnvfN2DnUk1B/iA2MfhyJ0YmVYOS0dgCadlivJnBZTP9G3tKPbavCRjjj97cReD60Z3AXx50ZeiM4Dh9+KGycqYeyVncMWJCBuwdF3B3fass20RI7bW29lzCSbvVFetbGqdlHKZ4BpkczM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779127037; c=relaxed/simple; bh=bE5uS5jA4gBHIOsnRhx9ylByIay9uNE8JeImQsB7G9Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ukCMXcChez7M2bVsNGbjvznrKQkZqd3LgCZbJa3aF5JAUhCHh3eUJwhTPv+nwD6GM1tiIz2U75BxjaCOqxS4dZ1UQbIgSimOE9J3/v4eut1uQ7qHwyG4NCKGwrf9Cambu3l/QghkwgNn/y++ek03Buo7eqg395h2dEVKBwpbdhI= 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=CpMlNfAn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CszbXVpq; 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="CpMlNfAn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CszbXVpq" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64ICLBlD1890422 for ; Mon, 18 May 2026 17:57:14 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= SfH/3JY9K6L3mKJHK5XJzCKs/zpVCvC7Z8FqVLUpQcg=; b=CpMlNfAnlEQ1cQ6G B2IV/Wu4BzLt1CuDnmsccwQxkkbKI/8D6xef3C5mtqrOaMvAf8aYCwjSYlp7zN2s d14/VTgnhJ1WXVEakSRN3GFkCJ2FuJi9SJh23SFWu2djxoXOdfQGxU0MKL12YmAv JRqDvf/1zA0GjM3VISrVZvOI8y2bmgp7ffEFqUQgbXl7CW23cK0aos5ofyunNITg a0fyUdNKuj5RxUizkV2bEeLBopFT1f6FpHqXUtZjf1kP1fKjq5vOVinLp66/MNNP xC68G+TsfkyU3GfvwEHMvqUxtRbsCHjrToC80+WNot5oNw841qEqhlSPIQCX+3kx BpCpmA== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e82pw1agn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 18 May 2026 17:57:14 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2baedd2fd43so18831225ad.1 for ; Mon, 18 May 2026 10:57:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779127034; x=1779731834; 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=SfH/3JY9K6L3mKJHK5XJzCKs/zpVCvC7Z8FqVLUpQcg=; b=CszbXVpqux1ZyjC1QPJfIm83ru2H9/jfumBFHexa1HpJstJhtQtzAmFw5+TRPYSIFU 6tRba1bLWWz8I1wQdrR7f+37pYU4NNGezFh5pSyZNmpzr5yrg/XUCkapG5Msksxh2h9d OCTS5fT7LZ/gk8upvBSYX08rBGeYQDPFhJZCHGRwcW9fvX8YxL3UpWOiQicwTANHEQYm nJOedMFDPnz50zTpNEKRLq5Popuv3+pG4DC1nxWDCc/FmhWUC+f8X8mpe8r4pEqEOhCd JbFynkwZD9oGlc2LlpnNkcn5XuaU5+AMKpDmN/J7XgG+CYCxb8zbZ4ReMKAfoBSzcVqY l9Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779127034; x=1779731834; 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=SfH/3JY9K6L3mKJHK5XJzCKs/zpVCvC7Z8FqVLUpQcg=; b=naA92U/He1V430x8GAq2qW7fHUbj19VMQh+9TmylsOaP9tJ38Yf0RpCT2ggdR8Y3GG D2x83446gA0VHeSr5TmktW3xBjd72F3SLfxE7Z9oJH/OBmr4r+g7taMMWHCkTHufy06c gBpJgrzgQv/rgJm7tpyqLu5RXYwjMTLqejhqDlJr2CwMceGi9VB4IQU6yM7yHBf13r8R tbNWIjOegi3utxaDr7GFa4NESEv8Jub5PmJB9CWRDdCj9in1UKwSsV7KGTU8Nv68vf1f Lxtd/dm9r4BfS0C8D+7H5CJmr7lllEgHp69X73MvaMBAgTotBNsoF1mQ+MyqVzpW8JOA 3y0Q== X-Gm-Message-State: AOJu0YzvX4gxE96/V0/TUrtQ6fg08hAJNeHGCmXQXIGu2gSzMMx6kWaX Hs/CBjoZctZgfx5KQOuzFLzBFLWV7E99tVpJHqH08b3mfF3obhZgC1X5aLxhBrLx2zVNXW/3bC/ HtG+RwLyN3BizvBzwY8EAmW6ZJiZ/1vHWFiKSM4DcLz6rVVxHuvbKc6e2SSuJ20YZryQ= X-Gm-Gg: Acq92OF9IKkrPMAoSx6zta83kNIs2lUYscX73Oeux9cQuJneuxI4Whuc3KQ7OHHCi2B rF9ufZczsyWzDrG498t6Ix02AfWBG+b7Nksf/ndzipIAUqIE70cvjnfN6rmWBagp4gO1WE5+QyD HiuwAbBaPzuFrW46pARra14P7A89nhCnig23USv+YtHFjr42NmCYAlZhZpi8Ph49Xv7Te+YxsVQ LXcKIv3dOoLOoSKmehwxeG6AfEhU18mCiHeyxRNJXUY/oCxFGZoUEG9g+hdTCfyT8ERU7hXk1q/ kxIlL4X/QdjHK8RVLtC3sYKRPmOBLcqqUuACqPhjL3TK4B4x8i+mwQNX4Amy0Sf2M1T+Cb8n7sD 01tBif1R/1HFA5YJylgEUjpKVsAlbgQ5A25VcwP6E305za7IeYs6FeVU= X-Received: by 2002:a17:902:ea03:b0:2bd:9c0a:32c with SMTP id d9443c01a7336-2bd9c0a065cmr121058225ad.19.1779127033576; Mon, 18 May 2026 10:57:13 -0700 (PDT) X-Received: by 2002:a17:902:ea03:b0:2bd:9c0a:32c with SMTP id d9443c01a7336-2bd9c0a065cmr121057935ad.19.1779127032904; Mon, 18 May 2026 10:57:12 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5cfe4973sm158348015ad.41.2026.05.18.10.57.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2026 10:57:12 -0700 (PDT) From: Praveen Talari Date: Mon, 18 May 2026 23:26:55 +0530 Subject: [PATCH v3 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: <20260518-add-tracepoints-for-qcom-geni-serial-v3-1-b4addb151376@oss.qualcomm.com> References: <20260518-add-tracepoints-for-qcom-geni-serial-v3-0-b4addb151376@oss.qualcomm.com> In-Reply-To: <20260518-add-tracepoints-for-qcom-geni-serial-v3-0-b4addb151376@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=1779127023; l=6634; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=bE5uS5jA4gBHIOsnRhx9ylByIay9uNE8JeImQsB7G9Y=; b=/ODY7GjAISGw7k6fX3K91Fp/f+BdNhjJSP2vsH/1XTsekZj3v/82964g5pw0rVcKupyvFk4jh Qh5fAt66M9GAeeCCU1/YIwmn6d0xSTsJ9T3dMMWJkI+6sGJJCVgVGl0 X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Authority-Analysis: v=2.4 cv=a6AAM0SF c=1 sm=1 tr=0 ts=6a0b52fa cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=ESrFBFgxKAYm4imzEJIA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDE3NyBTYWx0ZWRfX1uN2CUIgPXdx 2YjZmrTsPPS25n7+juP/VBRMdHf726msCFXGK29rFNndnIeeK05JdamK3FRwueOfTH/uiGb+/12 TOuSotxE1ldMaTMsg4PvobooUs+qc6Uz8LSIW6e21N6+lYRUEDFYZb10ibv2yFQGuCCQ3GuSadM 3rsIdD1cvZSUqJkRBnGbv4DLU7zrfAyvlJ65gvlc2R5IbmhkUvIoZMUyN8RHfoz5nCXn34VL1bs rWHluYPnTmgZh8XyUVmWH1jkm6KrOVu8bkTpLJ/zmfjvsKr2bqzAVtAfFBT2MpcaOI8S6+JmZoK FA6CPinxm8GBAXJJYh1F4bfHulaejovd2GJXcerHhhnPAgKdzsezsBwzxF9qgY1jxvTdvpSSGZa 1HGPbO1s0YFgxbaEANeYs2dLMg8boa/gIwkaG6GOwsz3+RZV1vDPE5a/vp5Wvfj0XEjtJqK97Up 3P2aFzT0rKGjx9JfUkA== X-Proofpoint-GUID: EVidQOtuttrF9rDI8pxSalUk7eHfgd_- X-Proofpoint-ORIG-GUID: EVidQOtuttrF9rDI8pxSalUk7eHfgd_- 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-18_03,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 bulkscore=0 impostorscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605180177 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. Reviewed-by: Konrad Dybcio Signed-off-by: Praveen Talari --- v2->v3: - Removed \n from geni_serial_tx_data and geni_serial_rx_data events. - Resolved aligment issues in geni_serial_data, geni_serial_tx_data and geni_serial_rx_data events. v1->v2: - Removed multiple TX/RX trace events, instead used DECLARE_EVENT_CLASS and DEFINE_EVENT. --- include/trace/events/qcom_geni_serial.h | 164 ++++++++++++++++++++++++++++= ++++ 1 file changed, 164 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..417ec01f9fc8 --- /dev/null +++ b/include/trace/events/qcom_geni_serial.h @@ -0,0 +1,164 @@ +/* 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) +); + +DECLARE_EVENT_CLASS(geni_serial_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: len=3D%u data=3D%s", + __get_str(name), __entry->len, + __print_hex(__get_dynamic_array(data), __entry->len)) +); + +DEFINE_EVENT(geni_serial_data, geni_serial_tx_data, + TP_PROTO(struct device *dev, const u8 *buf, unsigned int len), + TP_ARGS(dev, buf, len) +); + +DEFINE_EVENT(geni_serial_data, geni_serial_rx_data, + TP_PROTO(struct device *dev, const u8 *buf, unsigned int len), + TP_ARGS(dev, buf, 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 Mon May 25 04:36:11 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 F2E63382F23 for ; Mon, 18 May 2026 17:57:19 +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=1779127041; cv=none; b=Q9pnMQsmgzv0BuPJ5QOfEBQtECLM7DM7+Xpink0G5ADYZkZt7zbtrIdnQmIruefpqhh7GrgFgfNyHX9wCE3qza58mQPXHu5y/W+lNEogMzDIvVgiVJg31IXw68CCdcsdZtNYbYan6/0/j7kj9H/eUHVsJH0E3DmPiQKJhfW1vU0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779127041; c=relaxed/simple; bh=0nyRs1xCvidMCfw1zr2HoR8+SkkJFdchyMA/7+/8bnc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VRVLkCQdw5aZOoIKBJDgynVgxCjx9kddlv2FDNe7QQOm+n6s/sHz9rv87tYDnjzBNeNHaZPQ+Hnxy31S0BvgUhGOjBaMoE9LhUPQIB1T86zJnQuwInxbJT8Y3bkQfGtrv4TiGik4EvcuLamOHrlJYK6ycRh8+9+6eg4SJxtpZ1Q= 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=UJuvFVUr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=e75GHQ1B; 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="UJuvFVUr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="e75GHQ1B" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64IE0liX2892861 for ; Mon, 18 May 2026 17:57:19 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= 9EX8T0Dx6cCRltReKRh3IbYrL3q0hQ7wW+nwXIPZhAw=; b=UJuvFVUr29PJ3GTl Lf15QnsEIAhfNBgifkS1tX481o/faE4+XqeJk/12/yO3DeiaWQF/BM6bkOBfoxIX +cevGyXiWIrnuKZRIXLpW8PlWYqpEW78adHJ1IU4mldNtoHVbV268v1fjFdJmGi7 xw/cf43NfMrvbYt7bn17kxRF2IPkxEyA+/PDLIJFPuE/XHXoIhBGcESukZOt1qXU 4v1yoBhhE+N7VXpkO9hvK5p8EOtc2zLYieQt39AW5VfTOezoZPhXNL5styh6uef/ MyerjE/CNhluBZUF4a0RfDYTMAAdacZAxh5r/+W/sndnRtISeP+hlEcNUykG8nmA 2zAShA== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e7xk1afww-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 18 May 2026 17:57:19 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2baedd2fd43so18831825ad.1 for ; Mon, 18 May 2026 10:57:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779127039; x=1779731839; 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=9EX8T0Dx6cCRltReKRh3IbYrL3q0hQ7wW+nwXIPZhAw=; b=e75GHQ1BKgUyh5B3T1RzkNGVMy8oWPT5ng8A0QAKOY9A/65TFy/hqWG9l6e2E0OqUJ DwPJ0N0xqMURbaEsRqTHqOMq6IABhziutqHqL9ToLHfzMcm1sofGQEd/4OxTP80uYaBb Q1VhJ4YADcsZ9fNpSW5wcdaj+Dkb1nEY2ZXudeT/qlZQg2Fo7rf0q9a800kg3923JVeN e0v1GRSmVxFPSvP1e4VsnmWUcki9P2FYvpuAh9SBw6x8+NZRRPk4IY2dy5BD0FsA2uAh qjaRnL4dYskoiUdCkSpMfJDsV0xax+Hnn55Q1aK67LPXC+XGqPRzqiYyS0iS/KPnM+u8 dFRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779127039; x=1779731839; 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=9EX8T0Dx6cCRltReKRh3IbYrL3q0hQ7wW+nwXIPZhAw=; b=ga8UHPfCrZgeBkUYpAL6NwTee1/P8EcXHvpUKRXcEWbaXCdXAop2ZBJXB9s70FRXlm ndg9MJb2ISl2v58/bV5Y/6L5qBiSHos5mMPGFMVEp39gAJWDcQxCiyxsHoIQGYBoFaiQ xECfMoRC6Uled04FyMymGFk0GwZRcwrBLGcmaiVgus7GB+CYDk7hnuy9Hs9SPA2c8NTp VSEMLbS2SYkMn5W1J537YvytkEwzO3gpEsCi5yQZXBswBt/ZZlxTXwTcuDtRnYXEvQjH +6vXbT0IUqS7yWvuqMgVwIpiC6U9PXUlVbngtfpKbj0B/l91lHdcYREKjo+fUb4yYc4O b2oA== X-Gm-Message-State: AOJu0Yz3nw5ANuz2UziSH9vVphsJjLvhn72YlsyS9qcXck//T85+PW8i Tvnn0FoZJFguUfRiRUWlpOgtbvwkma+g55gBHcG7Kp2ZWaETEWN/88Ayg9ySqwRr1J9vOsXX+f+ MfzOv6pS78GL2EwpoaQKXWEj7VTKcmxERZewCCCarhYPwBsxnakspiCUzSG5BpJcqnqk= X-Gm-Gg: Acq92OF2TYXRA5T/5kGoCs3k8stcTHqMyHan5dXbeF7Hx+u1H5niTP47E8BI6K0OMOz XddNzEQKwHNVdz4QwtCfcYrPaeQia12y0PgGdhtMngEeIp1tKs5AwTdWbUOQju/+/l6f3sYJho/ oKBvH1tN4w7L2imrcJvPJTl73RwIGkKVtVf5uF/5D6ybdozReLUKDGyXPqik+h2ioI361uypjkL qNhDN2u3YYd82jy25ZuS955S4gGXcHLqx/FUb2FbHPEIvruHb9pFfUAUm/Q/E46dz4EKc13hz51 LVWzD9slF8pIRzCZqh0pfqf8O9NmD1sNud7mbhxwSFELuZcP/IgGABNdC+wL5z8Du4bLCq3MRX+ 4KNtzVNtzbxWvkpmct2sGHw9eZjkyfpykywCPrdyh/PKdmh5U0SB1cwQ= X-Received: by 2002:a17:902:da84:b0:2ba:3e2f:6874 with SMTP id d9443c01a7336-2bd7e94d060mr170797935ad.26.1779127038402; Mon, 18 May 2026 10:57:18 -0700 (PDT) X-Received: by 2002:a17:902:da84:b0:2ba:3e2f:6874 with SMTP id d9443c01a7336-2bd7e94d060mr170797725ad.26.1779127037825; Mon, 18 May 2026 10:57:17 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5cfe4973sm158348015ad.41.2026.05.18.10.57.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2026 10:57:17 -0700 (PDT) From: Praveen Talari Date: Mon, 18 May 2026 23:26:56 +0530 Subject: [PATCH v3 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: <20260518-add-tracepoints-for-qcom-geni-serial-v3-2-b4addb151376@oss.qualcomm.com> References: <20260518-add-tracepoints-for-qcom-geni-serial-v3-0-b4addb151376@oss.qualcomm.com> In-Reply-To: <20260518-add-tracepoints-for-qcom-geni-serial-v3-0-b4addb151376@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=1779127023; l=4237; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=0nyRs1xCvidMCfw1zr2HoR8+SkkJFdchyMA/7+/8bnc=; b=9qCjOxVvFpM/Poxi6zQQtp/qyXLfxex0492AN6mDg/xyAIGAMML2WuY2nhkBgrD4BuG+bvdcL 6v3sw9dC+LUDOGJw+92TSVetI2egmGCtUUmqSyajPwL+bCRozdjkhfN X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-GUID: hvca__xWzjzbgdUGo1lSAGrpEnyanF6V X-Proofpoint-ORIG-GUID: hvca__xWzjzbgdUGo1lSAGrpEnyanF6V X-Authority-Analysis: v=2.4 cv=BICDalQG c=1 sm=1 tr=0 ts=6a0b52ff cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=KXSloCXmEunfo-Xy6rIA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDE3NyBTYWx0ZWRfX+nFwAGZzmu8n nftLAURGUZ4DRERIttiS9K5/hV6L+45lByCQJZOuHHMcBsttzgZMpIRgIzGeMM4LxT/VuOZmHtZ LBBJbpCt5WRDsR7Y395ZocOp94bYZBMBFZ0VOaWm+rfmRFVUHd0ahVSSX/jJrejiSlG0B+MyyZx qMmiAyM3cbvIGnbvsVDjOrsONVQXrUTF9XN518qHUnZKpZ0pUwjAmkdSMXyUWMmBfkqYADJbc0Y Xf1TSwmqb7GBUcAj3T4niBhnBOjIPxLYYk84J2VdiGdqiFOq/gSmDHBg/Po209s/7Jx7XHWVAD7 2AD89XcSH9eRhaF3b0TwyPYXRvqc5YlrdhHq5VC6yvYvWchMwkuDDfknibvailjEyBbMY10kxjP 7A3cm8DlHnHqc5bfeWV6oyaRP5AYE/AC2+npFuDLCEjPfGKyr7sIthHX0IZwvGL2GGYD7VY2YYE Nm9Gui1+XbD755FEQzw== 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-18_03,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 impostorscore=0 phishscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605180177 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. Reviewed-by: Konrad Dybcio Signed-off-by: Praveen Talari --- v2->v3: - Updated commit text(removed example as it was available on cover letter). --- 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