From patchwork Fri Mar 7 02:25:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sherry Sun X-Patchwork-Id: 871458 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) (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 79E1D18785D; Fri, 7 Mar 2025 02:26:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741314400; cv=fail; b=nE5i3zUOidnAMLLVDJPYHo5FNvOjLyta2aD5m4aZIB+6nWVLxjTfXbqx6Cpo/nVg4lhJND/wcbUgN4/cMpvw5uu+rBVUZpJ8upz5wwugb8cOLKPu+R/Hml5jCu9y8ipZLNPafPKgw7i3i2oBUt77kHtWZAVy+suyxyslrw9sQhE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741314400; c=relaxed/simple; bh=SvAxeCPVLz+oJH7VkWcKjMhd6EbTOT6cxWeKn9FnT20=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kOrHLRkB0ts/Achh2i7ll8opfAap2AVgu5VZkcIgI+MfPtAgWJ9Cr3D9pLf/cImIlyts2Y446RGpDagDO03RijYkQU1JC2+ZnO64nNgxXMBpZ93J6gjfCQeg6jW7FHB51rruLVvVz7zTOmo8HtLE7eNKpZCJH8WdzYtCV9GJa98= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=G3I7CKQg; arc=fail smtp.client-ip=40.107.21.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="G3I7CKQg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VqIhy1oW3d5wWFaKK3L6LkP9jZngEzgF5iQA9Q6aIJTrw8WgZw9tv2yd5qidUtVUouko8e94jYMx2zpcqAkW5gmHhuODZS0E5lE9ML2ZU0uNgAbqOY8KQVKIuGj/hh7LDNsie3EARiIj7YJ6952EssPYbl08mJYt2b3C7EUhrZKTfsOGHWy/TTBF0WrGW+pQdYyuKgGS7KNFfJ9nrflRRoQlSUMfxhDgFnKXAgAqCTAr0rJQRE3sKSqO1KuVHo9HGOL9iJ38Dn2sDfp6bITEfURFzXIC/VhrEhON3RFkWS/Y2PsP8M7tbUgelPWNUqllCIuoLCjJHxGEQRumPlTJPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=f4+NNzrrxQT2smN3zgbk/Q/gYfXX5ykBgT47gqx1vJE=; b=TDSuYI1UycIYE37UbRUNtUftZtjRtN9Utrf43f0JXCV0s6FW342FKfU24rYdZlmz01Q1nPU5HDFFD1TKICZd/dzmiCL44SkWJiaRQCmwwMk/OKbbUV98bthOpnXrcwPQE2ovmKGVJ0CPmbS0BBI7zAfhbmTtIAtbP3NYZEDPtWnrRskPpTexh6If0e24tFfvPgSCcPdVneioY1wGmN6696pLnWd5zJQ8uRcjYiexR/PZth07mbOwdQHO/nb+fhjko82504OHLvXcwZ7iPrAWAFBo0afHm/e49sqVgJ9+F4+fxisWbFfJETQuS7kAvwdn36L3zWlrm1lNP1Rrt9q+Xg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=f4+NNzrrxQT2smN3zgbk/Q/gYfXX5ykBgT47gqx1vJE=; b=G3I7CKQg3JJ4Fqj/TSmF1mP2+6gds52z5gHDTj2Hq92JDNCLkp7j23KnyPvEFJ0XH15GBs378B978vPVx6PwHkpCtaV8ptt7UIhFyM1NG0pH0pHvOWVYii4Xx87pLMlcBVjhhzd1TVuBtoYr/C/guh4hC9SJYddH4Ng5La3ecsmnQjU5kgQWBwV9eLi+ypC+ITvYqpE6ntT3kmF6VT3QZ68O+OijVnH7DLtRKIY9/qFkVlNgAoW/gJaB8PxoolGr5Gw2Use8eZeBTKY+ogQGUsQo0GbY/WJ2YBv5yyV2tLJec+SYS6EJO68t5cr7QF+UeMnszGNAAbhUFN8dQj5LdQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB8429.eurprd04.prod.outlook.com (2603:10a6:10:242::19) by PA1PR04MB10628.eurprd04.prod.outlook.com (2603:10a6:102:490::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.20; Fri, 7 Mar 2025 02:26:34 +0000 Received: from DB9PR04MB8429.eurprd04.prod.outlook.com ([fe80::2edf:edc4:794f:4e37]) by DB9PR04MB8429.eurprd04.prod.outlook.com ([fe80::2edf:edc4:794f:4e37%6]) with mapi id 15.20.8511.017; Fri, 7 Mar 2025 02:26:34 +0000 From: Sherry Sun To: gregkh@linuxfoundation.org, jirislaby@kernel.org Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, shenwei.wang@nxp.com Subject: [PATCH 1/2] tty: serial: fsl_lpuart: Use u32 for register variables Date: Fri, 7 Mar 2025 10:25:46 +0800 Message-Id: <20250307022547.1000293-2-sherry.sun@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250307022547.1000293-1-sherry.sun@nxp.com> References: <20250307022547.1000293-1-sherry.sun@nxp.com> X-ClientProxiedBy: SI1PR02CA0012.apcprd02.prod.outlook.com (2603:1096:4:1f7::8) To DB9PR04MB8429.eurprd04.prod.outlook.com (2603:10a6:10:242::19) Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9PR04MB8429:EE_|PA1PR04MB10628:EE_ X-MS-Office365-Filtering-Correlation-Id: c6b6b323-d9b7-4a8a-b942-08dd5d1f7a89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: yCTMFZpr79PYHPqdzlXwcbNz2fgWGDMGDqwPf+f7IPZn8x8ctk8WoNh1ZGVTklKCxoxy/eDaqDZIepGYNYCaYYppDCCU8M76Z7zyLiEXlPeqylu3H++2rs9BGqP1ytqi0caF+JQArGLuiXIdeQZDoShv+ZxYpNLYX3y5fMhCKzU9Qm6OcHb5k6I/hY9fDJ5bwzSAgUtzEAky4ViuRmgPuWCVnJJhvFm5AHg8kKnjgmIutAKGSzHMGP4I2o+BmEMBRvXLeQOyiaYEiJXuLwxbpHHtiPXoIoCyT5H0/Rvj8yOwyrR1Kw688/RSMBnhLcGOegf0C08ul5BAzSofmQdA2xVt9/rsf9tz4KqQvXzZS5w4wzIfznw/Qw1OXlGBrOoIDLKNiGmpsRyvpfSwhcqTCSTnqe23I5hA6EYG/9RLhCjUCS+5UITBopVZ5CdkiUgCAYYhveaZsB2ywP6iSN7chLou19Q5Y96N9z4qsp8G5Y1ShmklCThSLanRDLvO6+iRwq6btawMud2gKniocP8aCIFocpnD7Uz2y4/fjf+uIpVxUq66wiN/nuCvv8+ZXeL4r0M8ryV3fGHoWvZiN1V0CGIU+JG+4Y+SjlnUJ3LHw/EcB2L+upap4lNuL5SXLMAqtgdz+EBms/o9KI62cnjcGQWJntQOoffRNOj8EZ3NmCGmgoRJleSaJIoNKfKLfbe3p8w+RH/ZDKoUsBAENsVeYl46c0CkU2B97FeM0vFwTezhVGDlxBVkDOHEOQpuuPs8q++iepD6/AUfliJLWQzEA/iRKTyqp+5137zMSneHjmZdAKTftK2bnGr9OmUqioEP08AiV/wO6eqkiODyc4RD2zgjXkWxdpNY5iKgl+Nqei9x1DbSWhcLGRNEPGjHfBJ9n+SSyx/ltlWOpJyQjzA1fVLAw2aXnFhhGxsxpNX3Awc3yAXQCIp7OzslmkSoJX65tpyw+zSFnePRKfWSGCLp5NO+pFSzbmoL2TGoemCaIo4u8YzQ/fTLKh7eb87E266LdDqa4miURVfQ7Y6LkFC7QHlA1w8P6mzuka8lUOgVCBP8BJN7PFoQf+Zu1i45k1ZqThEObVLdjfM5J0JdrktauzIsFC35vu51FUJ+PVxxEWlbCpU1gdp/TEwdFvDxZLLIUvOINLUGSr6TggKSZX+zHmtYIjX50F5YtmGAxR7m0O+s3dCKZ3OP8zH8CcM4nhGwtpPZPzlpTVEi/Y5LcRWGW+eeS9HeYnn5U5HMEPm77/5vVPm0fXQyfKFsDpHqMa/iv2jWS0p008F086kCpCbzfYBH4EhWtZ//XGW2hbgaIAqZMmvX/+wWKgYfKYcoJfRSSS46kGJoybz6+Q3GRQJHHhk1EdglyXM/V+N32QGDRVaDmfiZTHLi3QxzgGJeSh7gRC8hlIwBC8Y2v5oxpxfdBb8m0EH91KL5gdCjJ4A+QiUAdlI7nrIhtzHk9BgGyDJi X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR04MB8429.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9tdawlYikfp0N7ckBkxugOs8X0keyCwulqFPQpGXhvcgywU8Sbsu/x/BYc2dxRQOv51mHTGxE3MsUVWLJHl3Q5RXPosOJYCSl8otweJ1wpY9cXBMMm4Pj5l9FH/wotTfAiIze3KdEt2c2McIvdqcJ8RkJnqNSvRdnsTiwZc9AeJrBhl9HGQTTWGNIR1WCqpe7c2iHFvW/VuyhD8INKnTJM7eHapD43jQQ2E8GpgebmqK/oLMJ0u18PfwWA9Bu74KKDOqzg8SzgglrqDJtXsLRNSeCC8zqeuhz2Frv21JBEZ25+/73QQ1uFA4RefN1lmAMOJryrGNbYoctDS7j8a9ntyFqQRL8bmO5YaGfIvXYzNsq/AI8CiiYrIEwiH9PIv6GYJ0R8x2cwVFLVz2brYL6pOgy1P7Zswkr2Dx5zvw3jFryGwQna1nK3t9ZBcBGn2hN8Yf4dz4B7klo8iYcVnUMpMRTKKy94gCiJB1SAn+Lzt5t69Yu00QH+ao+pI4Nim3YZ8EGcUjd+Fy7Q+KnGsRbb7DF0c1gXH7F+8vWB8ssdsqp1ZWXZyIqGVf4/L5yxn9PH7cFtXrlIeBbSunRgBIyDC2549TCpKF3av1x6wOU3F0WeD28COzJeGRkcN15U5+Dg9nkAnM6/0wlgPLn73u89OhTMUQVDoeQUw+UqT+moUrZGC5PBlFLz/oBoXQu0nTfYQRXIoUw4xr9LdfTLjSIJ+dcak6vlOZwWOtA9jaRHkD4W6rYvx2F1ztPc2R0fzBOKcMo5493vun7/n4gB182rm5WChvHp620EhCb/3uHGFyKiU4bdEjBv4rxTupuzU8NfaP0jaEUubrHSZyCQovWc+ADwLx/FzeyPreMiiQkhYrDOtj4inzA+pU7MQTkyA71HdbBFE25emeJgQfOnzDl8hV1haRuydgQ5hTyH/TO2cSYDq0A0D48tG1Ie1Zdk3v8bfeu1Itfnmi+TiPHpJwnWVz1DmeVBsbPQEM27ApG5rPmcv31YJ/wPGyfEW6TOm2QXtRgvMeABnWT4GL6rvinrvgGFwkRtrshBHHE+2m0q3GpPyAVeUkeumXq5FxQgPCtU76U0UadB19265U/yfhDVPRSVMmTPTvz2+qvvhqFI78ppBoeaavwlD3bLU+o61xCJIHoqoFHK3f23xkW3hciP+Q6saGQ0P3x7z72Kzmp0mq5GJacLNJcQroIiP0N6l/oLs9Ck12t8wFHYI2ObhZXcWx18aS73geDi+M4JoQtCsQilc/i8Oxcg89YFUem7tkRpvgYK6hYlUsuMytfLIvU0t/payrPfmDmHTlfzDd3e+YiL/uxKKVKB/ZB7WSafYlOzWnbrXIUo0Qi0uWQOtdLeJYqyM4s8zrufPLeqG+/EN0U2lte4+F2kaVUsg0iYTmIIzWR1g/uwlAghLgpJJlxmE30GY0vz7SJlHkia5yZEl6B/5PP5sp2QgqGdclGbHVGmTZ0hWvp7LIU/42+tlZqUeB249bmcOFG35fyAp8mS3ItPd+8dzukaWV3W0ZJenqEfRLe+Hh8PPfy0DKrdwbSH2AGkK3Wbasi30RdSHBUYV1qREsS1pls14UaEWPOXs8 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6b6b323-d9b7-4a8a-b942-08dd5d1f7a89 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8429.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2025 02:26:33.9531 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0x87s/vfvHv1Hq0r46z2YHFU8y4F3ZBA1OWSd6XxsCzNeR5S3yVjJ0oP5SuLtGCpX5FSgKZcx6NcOQCIHXbGRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR04MB10628 Use u32 rather than unsigned long for register variables for clarity and consistency. Signed-off-by: Sherry Sun --- drivers/tty/serial/fsl_lpuart.c | 54 ++++++++++++++++----------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 4dc2f3e2b8e0..888d744494d6 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -450,7 +450,7 @@ static void lpuart_stop_tx(struct uart_port *port) static void lpuart32_stop_tx(struct uart_port *port) { - unsigned long temp; + u32 temp; temp = lpuart32_read(port, UARTCTRL); temp &= ~(UARTCTRL_TIE | UARTCTRL_TCIE); @@ -467,7 +467,7 @@ static void lpuart_stop_rx(struct uart_port *port) static void lpuart32_stop_rx(struct uart_port *port) { - unsigned long temp; + u32 temp; temp = lpuart32_read(port, UARTCTRL); lpuart32_write(port, temp & ~UARTCTRL_RE, UARTCTRL); @@ -752,7 +752,7 @@ static inline void lpuart_transmit_buffer(struct lpuart_port *sport) static inline void lpuart32_transmit_buffer(struct lpuart_port *sport) { struct tty_port *tport = &sport->port.state->port; - unsigned long txcnt; + u32 txcnt; unsigned char c; if (sport->port.x_char) { @@ -806,7 +806,7 @@ static void lpuart_start_tx(struct uart_port *port) static void lpuart32_start_tx(struct uart_port *port) { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); - unsigned long temp; + u32 temp; if (sport->lpuart_dma_tx_use) { if (!lpuart_stopped_or_empty(port)) @@ -855,9 +855,9 @@ static unsigned int lpuart32_tx_empty(struct uart_port *port) { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); - unsigned long stat = lpuart32_read(port, UARTSTAT); - unsigned long sfifo = lpuart32_read(port, UARTFIFO); - unsigned long ctrl = lpuart32_read(port, UARTCTRL); + u32 stat = lpuart32_read(port, UARTSTAT); + u32 sfifo = lpuart32_read(port, UARTFIFO); + u32 ctrl = lpuart32_read(port, UARTCTRL); if (sport->dma_tx_in_progress) return 0; @@ -961,7 +961,7 @@ static void lpuart32_rxint(struct lpuart_port *sport) { unsigned int flg, ignored = 0; struct tty_port *port = &sport->port.state->port; - unsigned long rx, sr; + u32 rx, sr; bool is_break; uart_port_lock(&sport->port); @@ -1113,7 +1113,7 @@ static void lpuart_copy_rx_to_tty(struct lpuart_port *sport) int count, copied; if (lpuart_is_32(sport)) { - unsigned long sr = lpuart32_read(&sport->port, UARTSTAT); + u32 sr = lpuart32_read(&sport->port, UARTSTAT); if (sr & (UARTSTAT_PE | UARTSTAT_FE)) { /* Clear the error flags */ @@ -1279,7 +1279,7 @@ static void lpuart32_dma_idleint(struct lpuart_port *sport) static irqreturn_t lpuart32_int(int irq, void *dev_id) { struct lpuart_port *sport = dev_id; - unsigned long sts, rxcount; + u32 sts, rxcount; sts = lpuart32_read(&sport->port, UARTSTAT); rxcount = lpuart32_read(&sport->port, UARTWATER); @@ -1411,12 +1411,12 @@ static inline int lpuart_start_rx_dma(struct lpuart_port *sport) dma_async_issue_pending(chan); if (lpuart_is_32(sport)) { - unsigned long temp = lpuart32_read(&sport->port, UARTBAUD); + u32 temp = lpuart32_read(&sport->port, UARTBAUD); lpuart32_write(&sport->port, temp | UARTBAUD_RDMAE, UARTBAUD); if (sport->dma_idle_int) { - unsigned long ctrl = lpuart32_read(&sport->port, UARTCTRL); + u32 ctrl = lpuart32_read(&sport->port, UARTCTRL); lpuart32_write(&sport->port, ctrl | UARTCTRL_ILIE, UARTCTRL); } @@ -1482,7 +1482,7 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio struct lpuart_port *sport = container_of(port, struct lpuart_port, port); - unsigned long modem = lpuart32_read(&sport->port, UARTMODIR) + u32 modem = lpuart32_read(&sport->port, UARTMODIR) & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE); u32 ctrl; @@ -1586,7 +1586,7 @@ static void lpuart_break_ctl(struct uart_port *port, int break_state) static void lpuart32_break_ctl(struct uart_port *port, int break_state) { - unsigned long temp; + u32 temp; temp = lpuart32_read(port, UARTCTRL); @@ -1665,8 +1665,7 @@ static void lpuart_setup_watermark_enable(struct lpuart_port *sport) static void lpuart32_setup_watermark(struct lpuart_port *sport) { - unsigned long val, ctrl; - unsigned long ctrl_saved; + u32 val, ctrl, ctrl_saved; ctrl = lpuart32_read(&sport->port, UARTCTRL); ctrl_saved = ctrl; @@ -1845,7 +1844,7 @@ static int lpuart_startup(struct uart_port *port) static void lpuart32_hw_disable(struct lpuart_port *sport) { - unsigned long temp; + u32 temp; temp = lpuart32_read(&sport->port, UARTCTRL); temp &= ~(UARTCTRL_RIE | UARTCTRL_ILIE | UARTCTRL_RE | @@ -1855,7 +1854,7 @@ static void lpuart32_hw_disable(struct lpuart_port *sport) static void lpuart32_configure(struct lpuart_port *sport) { - unsigned long temp; + u32 temp; temp = lpuart32_read(&sport->port, UARTCTRL); if (!sport->lpuart_dma_rx_use) @@ -1885,7 +1884,7 @@ static void lpuart32_hw_setup(struct lpuart_port *sport) static int lpuart32_startup(struct uart_port *port) { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); - unsigned long temp; + u32 temp; /* determine FIFO size */ temp = lpuart32_read(&sport->port, UARTFIFO); @@ -1959,7 +1958,7 @@ static void lpuart32_shutdown(struct uart_port *port) { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); - unsigned long temp; + u32 temp; unsigned long flags; uart_port_lock_irqsave(port, &flags); @@ -2233,7 +2232,7 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); unsigned long flags; - unsigned long ctrl, old_ctrl, bd, modem; + u32 ctrl, old_ctrl, bd, modem; unsigned int baud; unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8; @@ -2530,7 +2529,7 @@ static void lpuart32_console_write(struct console *co, const char *s, unsigned int count) { struct lpuart_port *sport = lpuart_ports[co->index]; - unsigned long old_cr, cr; + u32 old_cr, cr; unsigned long flags; int locked = 1; @@ -2613,7 +2612,7 @@ static void __init lpuart32_console_get_options(struct lpuart_port *sport, int *baud, int *parity, int *bits) { - unsigned long cr, bd; + u32 cr, bd; unsigned int sbr, uartclk, baud_raw; cr = lpuart32_read(&sport->port, UARTCTRL); @@ -2819,7 +2818,7 @@ static int lpuart_global_reset(struct lpuart_port *sport) { struct uart_port *port = &sport->port; void __iomem *global_addr; - unsigned long ctrl, bd; + u32 ctrl, bd; unsigned int val = 0; int ret; @@ -3025,7 +3024,7 @@ static int lpuart_runtime_resume(struct device *dev) static void serial_lpuart_enable_wakeup(struct lpuart_port *sport, bool on) { - unsigned int val, baud; + u32 val, baud; if (lpuart_is_32(sport)) { val = lpuart32_read(&sport->port, UARTCTRL); @@ -3090,7 +3089,7 @@ static int lpuart_suspend_noirq(struct device *dev) static int lpuart_resume_noirq(struct device *dev) { struct lpuart_port *sport = dev_get_drvdata(dev); - unsigned int val; + u32 val; pinctrl_pm_select_default_state(dev); @@ -3110,7 +3109,8 @@ static int lpuart_resume_noirq(struct device *dev) static int lpuart_suspend(struct device *dev) { struct lpuart_port *sport = dev_get_drvdata(dev); - unsigned long temp, flags; + u32 temp; + unsigned long flags; uart_suspend_port(&lpuart_reg, &sport->port); From patchwork Fri Mar 7 02:25:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sherry Sun X-Patchwork-Id: 871825 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) (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 7227716F282; Fri, 7 Mar 2025 02:26:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741314402; cv=fail; b=H/dtlAOlr+2OUUgFSCAn6n2WKlX3N5dbLpwOJw43Dmmv4C0HC7hbwDX1PP0dA2wKuKLgIuatoLkxOwogknD3eazJLZozMenDWaynCujdHir1RbHyx4eJJkwK8NlI5FkabMtdiPfHS45320aFfLEv9P45mptN+QCcPpvXCqJV5qc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741314402; c=relaxed/simple; bh=Ak8/boKXPB5ZoBAGMIfTlTDOU5H8IsmrTOYvSJYIN7k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=H/z6gFom+GKqrko4FTXlmzkeklnwrrnt2QH2lbRQxNN2rcL/y073K/xQPx2c5qpzSDlR8CLYEBo9Xv8MRbJobOrUv8RyjgNLXgJ8qWpI9G4hwTfuZdKuKsjJHCjrqZa3f5Yg7KM9gSCUS3FKxqOH5sdaCvViLK4rKxo3dqtQKPE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=kibbsBfp; arc=fail smtp.client-ip=40.107.21.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="kibbsBfp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D2sMYCpJm4M9cdW9cuu/6Grdak7oHZmFGTvHaoLaxHklB/mTlOX8eH67Cvg3NHs2bY/SeBYFd+ezHuS7A6Wl7n9tDZHiceheU8A47Onq5Ie3gTntqAUgZUosCOY/VheGZApU2X4y4sm+271aFsX/QxkKOg2yWA/gPUcYMzy51A4yUPPoNDzq3qpTxRi5jtT9uquPIN5iCnk+tBpRahcjCFPvzsfW9dOcxqyqpGKSrSG2Pzvnu0UVFrVuDGB7Qt0AXIBGYUkwWmU5Iw/WTLw02XTN5GyZ7Xrmu5ViVqD8yGNHoxKvd7XRuxXSnWfqI1eU0O+TF6w71ez/eOtgqXS/pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2d0rQOBVw1zDir33v1ZWkGIuJSjpwI1CWr59WGmNarc=; b=mFHmfEO0YxU0f1qBzK3IzhNWzffrRAKfecU9Mc9nHsUI1/BtWq1Ua1Wyy0ThI73Ma044PoNrXocnfTjSkz1jIqaosXSBgqDDnBzMKy3LJ6O5/NxAnkJ+q5oyw3AuhPYXR1jcsTqiz5Vp6qG1u7X0tUb6CNAZs57UfyuiNO0c7e4hW27EnnVPVuqoEsOEzHUm1B/nb2lBpzji4VqStWFmw35BeOpW5R2LulFbz57IRE78eXhTqRaorvQ1R+5cZxX4zAlwifmkbG5j/LJmTiaDGkRx/jg1T3W/DO62jhLLSo4a3G8RVeb/VgG9rcYuJUeIzc67W4kCwG0Kxc/P7T5fmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2d0rQOBVw1zDir33v1ZWkGIuJSjpwI1CWr59WGmNarc=; b=kibbsBfpckC1KC33j+SEWN1uq7R32zDCl7vPVzmTL4nIHt63JifyyF79LvvShbmJdNkLKnXuRSwLOZ1CBBSVUNFca7vQfvXxsZ2QmvbdZydVlB94NG0DN6EM7dRYUgeyu8Yv9YtOe49FGRi61Xmu7fgGBJADNVsRRhw5SHHj2KMeZJEqGSO+ISphS1AV1tyNp2ORo21WkL4EvqHmCaTSvvvBRlWdXlktWfF2TpWe1EMnLC6pRAm53QMIAFfzySicT4bh0BjPRbrd5tRwUIUqwEpYoGdGcu7CrazIzqnsG35mB2N7mVsW0EivQd7y3jblVJTCXnRB9Jas4XqQEfXIwA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB8429.eurprd04.prod.outlook.com (2603:10a6:10:242::19) by PA1PR04MB10628.eurprd04.prod.outlook.com (2603:10a6:102:490::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.20; Fri, 7 Mar 2025 02:26:38 +0000 Received: from DB9PR04MB8429.eurprd04.prod.outlook.com ([fe80::2edf:edc4:794f:4e37]) by DB9PR04MB8429.eurprd04.prod.outlook.com ([fe80::2edf:edc4:794f:4e37%6]) with mapi id 15.20.8511.017; Fri, 7 Mar 2025 02:26:38 +0000 From: Sherry Sun To: gregkh@linuxfoundation.org, jirislaby@kernel.org Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, shenwei.wang@nxp.com Subject: [PATCH 2/2] tty: serial: fsl_lpuart: use port struct directly to simply code Date: Fri, 7 Mar 2025 10:25:47 +0800 Message-Id: <20250307022547.1000293-3-sherry.sun@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250307022547.1000293-1-sherry.sun@nxp.com> References: <20250307022547.1000293-1-sherry.sun@nxp.com> X-ClientProxiedBy: SI1PR02CA0012.apcprd02.prod.outlook.com (2603:1096:4:1f7::8) To DB9PR04MB8429.eurprd04.prod.outlook.com (2603:10a6:10:242::19) Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9PR04MB8429:EE_|PA1PR04MB10628:EE_ X-MS-Office365-Filtering-Correlation-Id: 8124bc17-2583-4de1-3bf9-08dd5d1f7cdd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: wEDAnVQ3RyAkNwnOYjzm+TEnEpCI2qr40evkj+dBJgoKe/+TeV6HzhfKLupeww3Wyj62g+7ZsW29fmArKrLTnqsDiLDQnWEEMCpr4ZqXt09ql9sqJw93sABMw8t+k/QQunK6YWrv5N8N/n5Bc/i54HyXJDmd2e60Yd+2xBocrssWToG3U2rxEz20vwZdm5rI37KHg2NwWeoJHHCXGoEvfNwh3VSzF/bloaFpxFWdNIN6P+NgmN1C7EzHu6HEGjxL55yhf9MPf+79oAzBOT3+uDhg8QpX1UYUvV1cX8d3RrNjelzTyYzMCjI3vumaw6VEB6avXjNirSfKJ6Bv0YYYLGeaum4hUbNn+ZKrmdPcRNYPNYOrN7bPYznCUSadZb+YkEnmYfjoxodpadlLtv+D0xJ6jDv/tEk9Fc/Gjq3K6p93anFde1HqqTErFkIXhPJXrG1X4SfiL4Yh7CuIq8Y8UBTC0T/8RzgoniSHt1sJlf1xgV6rELw1aYKYe4qcsjqx3lk6tBcQ6tUvvp33B1Z2TfszpwrjBL7NTMdSXzCUXSFFqgWk0dPHeo8vL6cFLrSvLvKZMkgnUxYo6cH7JsYT4ME45+yxXdwK1vTE0U05rM3Dw9jhtX32mYjBaERG7yh9xv86kcg7hQKNMtUuVLf76xgc/ursAxR0vzSbbO6u+2jMcwC3JP4/TcKfhQD0PDouiutFpj7PoGc4jEUEwWaafcBidc32jR5KXiDT7N0BrA7WOBNLmNx1YOFvKoRETYjou9mSF+ZL1cqp7Q6jnGFiPTdN1D1Ky51nu4BsfSBNkiY6vyE+plqE6LmZCckeblU8uNm2zYXIROPAzEZYSTKKBDkL+4qiLdvLHBLOpscNbKarFp6K+tuP/rTlFzLGoBKz67Soko5O6Tl4CG3sF3eM7Bse7iYNO0dPry4tFjDWh1b/rtCP5TSSQTBu8MfSPVIJOrmY1/puN1IdyfOUvJImqw9a3UEUsCi5wwqiSMLzTA89HchXtOaeBr4EZ0nA1Vl0+kFxzA6JcUyknlHt9E+wsv9sXVppp0xO8dsyYmhFD6ONL/uhvQJx27qih2F5byMvF/Abf1ZqMxfqAhNrRgRE3qmt27f9Wq8tFb7dwdAUhMUAMZVG/ePS5MQpa1RaZ+W2q0TwYrelWZDX6vICMW1WWLNgDM/RiNC5+g3/F7IdMB5iO5NTWQXD66s0xGrqn7NF+1JutcR2Ucq2EH6qhLnjP3pybOoUObd4eBbc3A8+6BbyAve+XRIXLTr/jIUUU0cKIopmrDYhDbc/tEzm0Yju22tzUklUUVcphE0kI8aHisKZc69qifcmpvJH+woR7T+lfnmPKumaLbL8bNOnIcHPGomgvHa4SyQ1Igbtd/MjQmAOYpsZbEVVlYeJa/cb8H+o8aaKGvOP8ihi37dvkw0bGD7FEcoGgaqqljkP1mxqyINWF6mQ4o4PwASPajd2vJJR X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR04MB8429.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LDDH4plJIL6OuUkdOPTIUDYM3t2LtZOJ9245X1nHAKfmIWNy2eMt0zi4XXYQkWYSS/jTJGjlzHs76iUugNd4oadNGPYH8g8qsb9Rq0uouKeMfGCyemrVbZvjh2JRENWhXrqeuLJEGe7/odpkrGh/B8X12L3VMG3UEYwz46a+BNhLAl23NGEjbyUH0Qx+qAA6Esg4dCbC7vLl/ZJNnuhYlDQmc0BysDWQ2LLP/pYtp0ZzDpCGcnzgRab/RmHTs9U4BJj3KCwzyeltXsJVUjOudeBJ7GOIWGmono8acsG0jczVrS0HrPcKlR3zQWTff4kUAzxdJQPCb7GfENaJ4O2zvf3CbdY8v28INK3k3khEy5vw933WG9B3EpJJ/P4wbqgiLm5JT7A83y9/xwJKA+nJ3Hk3qbyZb0lZXUWE7w6i+hIBYlcX4KvlWD12Ku0LJGmMR4NQaZUmg+O0b6cfX4gAh5HsZMUrPW//9b2lIbZxVRrBsiBVroG/VrMTpHnOeqLYE3h/89/lI1joizraVH/oPkha1nnruV7GPeR6r0qX3aTkVvq7HccTWlCJ4x32il072U1owwxzTDaZTWaywA0Kb2g5zFbn/cSkFUK8o/BOznYb08vppuqi9gZ20/utsHUBw4i9Dpq2r2cgytdZTAkidQr0Xg0zRAMjsXMc6BtnD/gNHKH0hHC3wGb1Zpfv7V05nliO4WWbuuJuGy8ML/x9TDGI5H3ak3YPqK5F6WjscxuLrHmQiC8Y5KNkTrOAVwnCq1woChgsxpP1yhmVxaOjDbp8cBOVTwb1stGuchnNMkL7s8RlG5tSQZ7IftvJg62a+tJ8p22xh3iDr7WqFW0nUgsZgKW6B9GtbvmRrUfqXnFcBoilPT/w1IokWxInKL7dljuOWH1XoIDTPm4Tw1Otl6oQPDjWTpY2ZzsXahQjsB2d6+00AIhY5qG6Qr6UbBGnOxYJKZ4qtGb/pLE2PTljzvphRfBzY16MfTxYzRgxspbVUjWs2p7/FKZphnV5dMz55oDr6vFmpy9EapT1YXrEXwpIAMb3YS24qY7Ha9LYcbAgj6voKj5nMoGZW4LfzNjORoH6pS2kjf6MM+bO1FXsV9GPZ3pEMTY9ycSB6ySq6HDp0i+tM7V3XnoQ+YRlv5SSnRNquoK2gH7MV04IHo17+rfJcEe+zditPY/kO+8DXES8sRjxnYe8amllH0TPaNlp216DhMqgsLGJwQpmNwrIroCiO2DdRL0K117xtm4mv8Sem7ZDNRSlB4/X0VEA4sRsITvQ2Hrv1c1hmNRRuunqdWwtryVvB7VB6VV2aLqA7ui8p+JT2+sk3yO+kGseDCgrb4XwMvQXtz0fu2ruzHVp5C6RmDL3vTNMSDvy75BgaaMnFcn8Wb0M5mb5EFwAMP3tgFm1AuegTMlOHves10Sy7iUpfGpc+o8qVWOLbJOps2qDMFH7+mWtUlJ2gk733tRHvur53KNXembUsDRTaFR75riCiqkir2/jahJ/qQ8cRsSjZExyg9aeqyeqND5k8RyKSTT7NMDwFZwdDdkHDPWHtPSkEsRfQgJwcWxiROPNh4fw+/usd7OUyxUKqawbXpHm X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8124bc17-2583-4de1-3bf9-08dd5d1f7cdd X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8429.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2025 02:26:37.9668 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AXP5LKB1KSNDKS7wrR1OHNOe1Cp2pOvZiOlieZ4nz2NGOdxu4NUPCMWykutrqU6OGHywqCWise4BGAIfkz3Uxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR04MB10628 Most lpuart functions have the parameter struct uart_port *port, but still use the &sport->port to get the uart_port instead of use it directly, let's simply the code logic, directly use this struct instead of covert it from struct sport. Signed-off-by: Sherry Sun --- drivers/tty/serial/fsl_lpuart.c | 208 ++++++++++++++++---------------- 1 file changed, 101 insertions(+), 107 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 888d744494d6..740de74e9f0a 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -581,7 +581,7 @@ static int lpuart_dma_tx_request(struct uart_port *port) ret = dmaengine_slave_config(sport->dma_tx_chan, &dma_tx_sconfig); if (ret) { - dev_err(sport->port.dev, + dev_err(port->dev, "DMA slave config failed, err = %d\n", ret); return ret; } @@ -611,13 +611,13 @@ static void lpuart_flush_buffer(struct uart_port *port) } if (lpuart_is_32(sport)) { - val = lpuart32_read(&sport->port, UARTFIFO); + val = lpuart32_read(port, UARTFIFO); val |= UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH; - lpuart32_write(&sport->port, val, UARTFIFO); + lpuart32_write(port, val, UARTFIFO); } else { - val = readb(sport->port.membase + UARTCFIFO); + val = readb(port->membase + UARTCFIFO); val |= UARTCFIFO_TXFLUSH | UARTCFIFO_RXFLUSH; - writeb(val, sport->port.membase + UARTCFIFO); + writeb(val, port->membase + UARTCFIFO); } } @@ -644,33 +644,33 @@ static int lpuart_poll_init(struct uart_port *port) unsigned long flags; unsigned char temp; - sport->port.fifosize = 0; + port->fifosize = 0; - uart_port_lock_irqsave(&sport->port, &flags); + uart_port_lock_irqsave(port, &flags); /* Disable Rx & Tx */ - writeb(0, sport->port.membase + UARTCR2); + writeb(0, port->membase + UARTCR2); - temp = readb(sport->port.membase + UARTPFIFO); + temp = readb(port->membase + UARTPFIFO); /* Enable Rx and Tx FIFO */ writeb(temp | UARTPFIFO_RXFE | UARTPFIFO_TXFE, - sport->port.membase + UARTPFIFO); + port->membase + UARTPFIFO); /* flush Tx and Rx FIFO */ writeb(UARTCFIFO_TXFLUSH | UARTCFIFO_RXFLUSH, - sport->port.membase + UARTCFIFO); + port->membase + UARTCFIFO); /* explicitly clear RDRF */ - if (readb(sport->port.membase + UARTSR1) & UARTSR1_RDRF) { - readb(sport->port.membase + UARTDR); - writeb(UARTSFIFO_RXUF, sport->port.membase + UARTSFIFO); + if (readb(port->membase + UARTSR1) & UARTSR1_RDRF) { + readb(port->membase + UARTDR); + writeb(UARTSFIFO_RXUF, port->membase + UARTSFIFO); } - writeb(0, sport->port.membase + UARTTWFIFO); - writeb(1, sport->port.membase + UARTRWFIFO); + writeb(0, port->membase + UARTTWFIFO); + writeb(1, port->membase + UARTRWFIFO); /* Enable Rx and Tx */ - writeb(UARTCR2_RE | UARTCR2_TE, sport->port.membase + UARTCR2); - uart_port_unlock_irqrestore(&sport->port, flags); + writeb(UARTCR2_RE | UARTCR2_TE, port->membase + UARTCR2); + uart_port_unlock_irqrestore(port, flags); return 0; } @@ -696,30 +696,30 @@ static int lpuart32_poll_init(struct uart_port *port) struct lpuart_port *sport = container_of(port, struct lpuart_port, port); u32 temp; - sport->port.fifosize = 0; + port->fifosize = 0; - uart_port_lock_irqsave(&sport->port, &flags); + uart_port_lock_irqsave(port, &flags); /* Disable Rx & Tx */ - lpuart32_write(&sport->port, 0, UARTCTRL); + lpuart32_write(port, 0, UARTCTRL); - temp = lpuart32_read(&sport->port, UARTFIFO); + temp = lpuart32_read(port, UARTFIFO); /* Enable Rx and Tx FIFO */ - lpuart32_write(&sport->port, temp | UARTFIFO_RXFE | UARTFIFO_TXFE, UARTFIFO); + lpuart32_write(port, temp | UARTFIFO_RXFE | UARTFIFO_TXFE, UARTFIFO); /* flush Tx and Rx FIFO */ - lpuart32_write(&sport->port, UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH, UARTFIFO); + lpuart32_write(port, UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH, UARTFIFO); /* explicitly clear RDRF */ - if (lpuart32_read(&sport->port, UARTSTAT) & UARTSTAT_RDRF) { - lpuart32_read(&sport->port, UARTDATA); - lpuart32_write(&sport->port, UARTFIFO_RXUF, UARTFIFO); + if (lpuart32_read(port, UARTSTAT) & UARTSTAT_RDRF) { + lpuart32_read(port, UARTDATA); + lpuart32_write(port, UARTFIFO_RXUF, UARTFIFO); } /* Enable Rx and Tx */ - lpuart32_write(&sport->port, UARTCTRL_RE | UARTCTRL_TE, UARTCTRL); - uart_port_unlock_irqrestore(&sport->port, flags); + lpuart32_write(port, UARTCTRL_RE | UARTCTRL_TE, UARTCTRL); + uart_port_unlock_irqrestore(port, flags); return 0; } @@ -1449,12 +1449,9 @@ static void lpuart_dma_rx_free(struct uart_port *port) static int lpuart_config_rs485(struct uart_port *port, struct ktermios *termios, struct serial_rs485 *rs485) { - struct lpuart_port *sport = container_of(port, - struct lpuart_port, port); - - u8 modem = readb(sport->port.membase + UARTMODEM) & + u8 modem = readb(port->membase + UARTMODEM) & ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE); - writeb(modem, sport->port.membase + UARTMODEM); + writeb(modem, port->membase + UARTMODEM); if (rs485->flags & SER_RS485_ENABLED) { /* Enable auto RS-485 RTS mode */ @@ -1472,29 +1469,26 @@ static int lpuart_config_rs485(struct uart_port *port, struct ktermios *termios, modem &= ~UARTMODEM_TXRTSPOL; } - writeb(modem, sport->port.membase + UARTMODEM); + writeb(modem, port->membase + UARTMODEM); return 0; } static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termios, struct serial_rs485 *rs485) { - struct lpuart_port *sport = container_of(port, - struct lpuart_port, port); - - u32 modem = lpuart32_read(&sport->port, UARTMODIR) + u32 modem = lpuart32_read(port, UARTMODIR) & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE); u32 ctrl; /* TXRTSE and TXRTSPOL only can be changed when transmitter is disabled. */ - ctrl = lpuart32_read(&sport->port, UARTCTRL); + ctrl = lpuart32_read(port, UARTCTRL); if (ctrl & UARTCTRL_TE) { /* wait transmit engin complete */ - lpuart32_wait_bit_set(&sport->port, UARTSTAT, UARTSTAT_TC); - lpuart32_write(&sport->port, ctrl & ~UARTCTRL_TE, UARTCTRL); + lpuart32_wait_bit_set(port, UARTSTAT, UARTSTAT_TC); + lpuart32_write(port, ctrl & ~UARTCTRL_TE, UARTCTRL); } - lpuart32_write(&sport->port, modem, UARTMODIR); + lpuart32_write(port, modem, UARTMODIR); if (rs485->flags & SER_RS485_ENABLED) { /* Enable auto RS-485 RTS mode */ @@ -1512,10 +1506,10 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio modem &= ~UARTMODIR_TXRTSPOL; } - lpuart32_write(&sport->port, modem, UARTMODIR); + lpuart32_write(port, modem, UARTMODIR); if (ctrl & UARTCTRL_TE) - lpuart32_write(&sport->port, ctrl, UARTCTRL); + lpuart32_write(port, ctrl, UARTCTRL); return 0; } @@ -1827,11 +1821,11 @@ static int lpuart_startup(struct uart_port *port) unsigned char temp; /* determine FIFO size and enable FIFO mode */ - temp = readb(sport->port.membase + UARTPFIFO); + temp = readb(port->membase + UARTPFIFO); sport->txfifo_size = UARTFIFO_DEPTH((temp >> UARTPFIFO_TXSIZE_OFF) & UARTPFIFO_FIFOSIZE_MASK); - sport->port.fifosize = sport->txfifo_size; + port->fifosize = sport->txfifo_size; sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTPFIFO_RXSIZE_OFF) & UARTPFIFO_FIFOSIZE_MASK); @@ -1887,11 +1881,11 @@ static int lpuart32_startup(struct uart_port *port) u32 temp; /* determine FIFO size */ - temp = lpuart32_read(&sport->port, UARTFIFO); + temp = lpuart32_read(port, UARTFIFO); sport->txfifo_size = UARTFIFO_DEPTH((temp >> UARTFIFO_TXSIZE_OFF) & UARTFIFO_FIFOSIZE_MASK); - sport->port.fifosize = sport->txfifo_size; + port->fifosize = sport->txfifo_size; sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTFIFO_RXSIZE_OFF) & UARTFIFO_FIFOSIZE_MASK); @@ -1904,7 +1898,7 @@ static int lpuart32_startup(struct uart_port *port) if (is_layerscape_lpuart(sport)) { sport->rxfifo_size = 16; sport->txfifo_size = 16; - sport->port.fifosize = sport->txfifo_size; + port->fifosize = sport->txfifo_size; } lpuart_request_dma(sport); @@ -1964,8 +1958,8 @@ static void lpuart32_shutdown(struct uart_port *port) uart_port_lock_irqsave(port, &flags); /* clear status */ - temp = lpuart32_read(&sport->port, UARTSTAT); - lpuart32_write(&sport->port, temp, UARTSTAT); + temp = lpuart32_read(port, UARTSTAT); + lpuart32_write(port, temp, UARTSTAT); /* disable Rx/Tx DMA */ temp = lpuart32_read(port, UARTBAUD); @@ -1999,12 +1993,12 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8; unsigned int sbr, brfa; - cr1 = old_cr1 = readb(sport->port.membase + UARTCR1); - old_cr2 = readb(sport->port.membase + UARTCR2); - cr3 = readb(sport->port.membase + UARTCR3); - cr4 = readb(sport->port.membase + UARTCR4); - bdh = readb(sport->port.membase + UARTBDH); - modem = readb(sport->port.membase + UARTMODEM); + cr1 = old_cr1 = readb(port->membase + UARTCR1); + old_cr2 = readb(port->membase + UARTCR2); + cr3 = readb(port->membase + UARTCR3); + cr4 = readb(port->membase + UARTCR4); + bdh = readb(port->membase + UARTBDH); + modem = readb(port->membase + UARTMODEM); /* * only support CS8 and CS7, and for CS7 must enable PE. * supported mode: @@ -2036,7 +2030,7 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, * When auto RS-485 RTS mode is enabled, * hardware flow control need to be disabled. */ - if (sport->port.rs485.flags & SER_RS485_ENABLED) + if (port->rs485.flags & SER_RS485_ENABLED) termios->c_cflag &= ~CRTSCTS; if (termios->c_cflag & CRTSCTS) @@ -2077,59 +2071,59 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, * Need to update the Ring buffer length according to the selected * baud rate and restart Rx DMA path. * - * Since timer function acqures sport->port.lock, need to stop before + * Since timer function acqures port->lock, need to stop before * acquring same lock because otherwise del_timer_sync() can deadlock. */ if (old && sport->lpuart_dma_rx_use) - lpuart_dma_rx_free(&sport->port); + lpuart_dma_rx_free(port); - uart_port_lock_irqsave(&sport->port, &flags); + uart_port_lock_irqsave(port, &flags); - sport->port.read_status_mask = 0; + port->read_status_mask = 0; if (termios->c_iflag & INPCK) - sport->port.read_status_mask |= UARTSR1_FE | UARTSR1_PE; + port->read_status_mask |= UARTSR1_FE | UARTSR1_PE; if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK)) - sport->port.read_status_mask |= UARTSR1_FE; + port->read_status_mask |= UARTSR1_FE; /* characters to ignore */ - sport->port.ignore_status_mask = 0; + port->ignore_status_mask = 0; if (termios->c_iflag & IGNPAR) - sport->port.ignore_status_mask |= UARTSR1_PE; + port->ignore_status_mask |= UARTSR1_PE; if (termios->c_iflag & IGNBRK) { - sport->port.ignore_status_mask |= UARTSR1_FE; + port->ignore_status_mask |= UARTSR1_FE; /* * if we're ignoring parity and break indicators, * ignore overruns too (for real raw support). */ if (termios->c_iflag & IGNPAR) - sport->port.ignore_status_mask |= UARTSR1_OR; + port->ignore_status_mask |= UARTSR1_OR; } /* update the per-port timeout */ uart_update_timeout(port, termios->c_cflag, baud); /* wait transmit engin complete */ - lpuart_wait_bit_set(&sport->port, UARTSR1, UARTSR1_TC); + lpuart_wait_bit_set(port, UARTSR1, UARTSR1_TC); /* disable transmit and receive */ writeb(old_cr2 & ~(UARTCR2_TE | UARTCR2_RE), - sport->port.membase + UARTCR2); + port->membase + UARTCR2); - sbr = sport->port.uartclk / (16 * baud); - brfa = ((sport->port.uartclk - (16 * sbr * baud)) * 2) / baud; + sbr = port->uartclk / (16 * baud); + brfa = ((port->uartclk - (16 * sbr * baud)) * 2) / baud; bdh &= ~UARTBDH_SBR_MASK; bdh |= (sbr >> 8) & 0x1F; cr4 &= ~UARTCR4_BRFA_MASK; brfa &= UARTCR4_BRFA_MASK; - writeb(cr4 | brfa, sport->port.membase + UARTCR4); - writeb(bdh, sport->port.membase + UARTBDH); - writeb(sbr & 0xFF, sport->port.membase + UARTBDL); - writeb(cr3, sport->port.membase + UARTCR3); - writeb(cr1, sport->port.membase + UARTCR1); - writeb(modem, sport->port.membase + UARTMODEM); + writeb(cr4 | brfa, port->membase + UARTCR4); + writeb(bdh, port->membase + UARTBDH); + writeb(sbr & 0xFF, port->membase + UARTBDL); + writeb(cr3, port->membase + UARTCR3); + writeb(cr1, port->membase + UARTCR1); + writeb(modem, port->membase + UARTMODEM); /* restore control register */ - writeb(old_cr2, sport->port.membase + UARTCR2); + writeb(old_cr2, port->membase + UARTCR2); if (old && sport->lpuart_dma_rx_use) { if (!lpuart_start_rx_dma(sport)) @@ -2138,7 +2132,7 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, sport->lpuart_dma_rx_use = false; } - uart_port_unlock_irqrestore(&sport->port, flags); + uart_port_unlock_irqrestore(port, flags); } static void __lpuart32_serial_setbrg(struct uart_port *port, @@ -2236,9 +2230,9 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, unsigned int baud; unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8; - ctrl = old_ctrl = lpuart32_read(&sport->port, UARTCTRL); - bd = lpuart32_read(&sport->port, UARTBAUD); - modem = lpuart32_read(&sport->port, UARTMODIR); + ctrl = old_ctrl = lpuart32_read(port, UARTCTRL); + bd = lpuart32_read(port, UARTBAUD); + modem = lpuart32_read(port, UARTMODIR); sport->is_cs7 = false; /* * only support CS8 and CS7 @@ -2272,7 +2266,7 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, * When auto RS-485 RTS mode is enabled, * hardware flow control need to be disabled. */ - if (sport->port.rs485.flags & SER_RS485_ENABLED) + if (port->rs485.flags & SER_RS485_ENABLED) termios->c_cflag &= ~CRTSCTS; if (termios->c_cflag & CRTSCTS) @@ -2322,32 +2316,32 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, * Need to update the Ring buffer length according to the selected * baud rate and restart Rx DMA path. * - * Since timer function acqures sport->port.lock, need to stop before + * Since timer function acqures port->lock, need to stop before * acquring same lock because otherwise del_timer_sync() can deadlock. */ if (old && sport->lpuart_dma_rx_use) - lpuart_dma_rx_free(&sport->port); + lpuart_dma_rx_free(port); - uart_port_lock_irqsave(&sport->port, &flags); + uart_port_lock_irqsave(port, &flags); - sport->port.read_status_mask = 0; + port->read_status_mask = 0; if (termios->c_iflag & INPCK) - sport->port.read_status_mask |= UARTSTAT_FE | UARTSTAT_PE; + port->read_status_mask |= UARTSTAT_FE | UARTSTAT_PE; if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK)) - sport->port.read_status_mask |= UARTSTAT_FE; + port->read_status_mask |= UARTSTAT_FE; /* characters to ignore */ - sport->port.ignore_status_mask = 0; + port->ignore_status_mask = 0; if (termios->c_iflag & IGNPAR) - sport->port.ignore_status_mask |= UARTSTAT_PE; + port->ignore_status_mask |= UARTSTAT_PE; if (termios->c_iflag & IGNBRK) { - sport->port.ignore_status_mask |= UARTSTAT_FE; + port->ignore_status_mask |= UARTSTAT_FE; /* * if we're ignoring parity and break indicators, * ignore overruns too (for real raw support). */ if (termios->c_iflag & IGNPAR) - sport->port.ignore_status_mask |= UARTSTAT_OR; + port->ignore_status_mask |= UARTSTAT_OR; } /* update the per-port timeout */ @@ -2359,22 +2353,22 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, * asserted. */ if (!(old_ctrl & UARTCTRL_SBK)) { - lpuart32_write(&sport->port, 0, UARTMODIR); - lpuart32_wait_bit_set(&sport->port, UARTSTAT, UARTSTAT_TC); + lpuart32_write(port, 0, UARTMODIR); + lpuart32_wait_bit_set(port, UARTSTAT, UARTSTAT_TC); } /* disable transmit and receive */ - lpuart32_write(&sport->port, old_ctrl & ~(UARTCTRL_TE | UARTCTRL_RE), + lpuart32_write(port, old_ctrl & ~(UARTCTRL_TE | UARTCTRL_RE), UARTCTRL); - lpuart32_write(&sport->port, bd, UARTBAUD); + lpuart32_write(port, bd, UARTBAUD); lpuart32_serial_setbrg(sport, baud); /* disable CTS before enabling UARTCTRL_TE to avoid pending idle preamble */ - lpuart32_write(&sport->port, modem & ~UARTMODIR_TXCTSE, UARTMODIR); + lpuart32_write(port, modem & ~UARTMODIR_TXCTSE, UARTMODIR); /* restore control register */ - lpuart32_write(&sport->port, ctrl, UARTCTRL); + lpuart32_write(port, ctrl, UARTCTRL); /* re-enable the CTS if needed */ - lpuart32_write(&sport->port, modem, UARTMODIR); + lpuart32_write(port, modem, UARTMODIR); if ((ctrl & (UARTCTRL_PE | UARTCTRL_M)) == UARTCTRL_PE) sport->is_cs7 = true; @@ -2386,7 +2380,7 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, sport->lpuart_dma_rx_use = false; } - uart_port_unlock_irqrestore(&sport->port, flags); + uart_port_unlock_irqrestore(port, flags); } static const char *lpuart_type(struct uart_port *port) @@ -2824,7 +2818,7 @@ static int lpuart_global_reset(struct lpuart_port *sport) ret = clk_prepare_enable(sport->ipg_clk); if (ret) { - dev_err(sport->port.dev, "failed to enable uart ipg clk: %d\n", ret); + dev_err(port->dev, "failed to enable uart ipg clk: %d\n", ret); return ret; } @@ -2835,10 +2829,10 @@ static int lpuart_global_reset(struct lpuart_port *sport) */ ctrl = lpuart32_read(port, UARTCTRL); if (ctrl & UARTCTRL_TE) { - bd = lpuart32_read(&sport->port, UARTBAUD); + bd = lpuart32_read(port, UARTBAUD); if (read_poll_timeout(lpuart32_tx_empty, val, val, 1, 100000, false, port)) { - dev_warn(sport->port.dev, + dev_warn(port->dev, "timeout waiting for transmit engine to complete\n"); clk_disable_unprepare(sport->ipg_clk); return 0; @@ -3190,7 +3184,7 @@ static void lpuart_console_fixup(struct lpuart_port *sport) * in VLLS mode, or restore console setting here. */ if (is_imx7ulp_lpuart(sport) && lpuart_uport_is_active(sport) && - console_suspend_enabled && uart_console(&sport->port)) { + console_suspend_enabled && uart_console(uport)) { mutex_lock(&port->mutex); memset(&termios, 0, sizeof(struct ktermios));