From patchwork Wed Sep 11 10:38:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manikanta Guntupalli X-Patchwork-Id: 13800188 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C98F1EE498F for ; Wed, 11 Sep 2024 10:40:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=VAXUc+ks8G2fFWunSNjtxS13J93MOyH3ZzNqUNBwFUM=; b=e1RoAPXr/lP4AQcS5mXSCZzQ+o JFjKYQlWmbwwmS42gXG8Qi9/d9mtVtLJZAnyJZM81BhWoCHZC/km+v9leh7hlTP6w0R7nhx1gYtjl oDA61HBw9cGan0UUZFdRrWDZWhxxK/DNZdlSo276Cdj+6+E1C0B/TgG5JHHDrM8i9QBScT/vGcSY0 CvCQgCte3pjH4CE1QUmn38L84YuOD/cWuUP9pJ+UCIh111YjyChBaFc/MztcAnyU2MI0J6nUOqT7f 5EBrR+PVQluaXz4gMrsyKxZ+8pMSSBaLWh9EQ9OowXH1JHkRBDH4or8LV7Pfy4vsICrA49ZIxur/v yb1LR9lQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1soKlm-000000097vO-3Z5M; Wed, 11 Sep 2024 10:40:18 +0000 Received: from mail-bn7nam10on20606.outbound.protection.outlook.com ([2a01:111:f403:2009::606] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1soKkj-000000097Pr-00tI for linux-arm-kernel@lists.infradead.org; Wed, 11 Sep 2024 10:39:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AsP/z7bs4iACpAXvZc17RYV5uf61193yEQ7Eiy1dxdnq71cDQobSa+Zcqc2/w8Kbj3iADRKd5OGzBgJwe6uiwP6EJX5BU75FGifGhDeTEXqTjfrTMp1PdFzbdOOn42H3pWEkOVYd3XUtMDseBCjSyBiJeasoilA6A4LD7hCBvL8z1zUxX7maQnYwXRWjuUICx/gSC8/mIAzIs45VpGhPSIGsjARHN6MQc01WbxHvSXNn1bvobpibOSRwnjtyMOVqBHLfqtVvZhDdk+MhlEPAOFK6w8tbWiiTKAwq3BA8xJMnjc9vo8CppsAT6Pw9ZfhFXjqqDD1ot1LTM9TUnxYoeg== 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=VAXUc+ks8G2fFWunSNjtxS13J93MOyH3ZzNqUNBwFUM=; b=QAq3enNIOeuQuDL1LTlRKtHdEyuSVx/kgMCXMg/doWirUKCILoscMXsDIavVoQe83ML9pfZJexx3vBVu2ZcID/E6lAmBH7aL8fSEdm3Byk7GlgiGE74xUbH4U1/9XoMvbmBOuVJWGdAp9GnEZoofDCvUQjH9uaQwcOetTaCgye/bcWiDh22p5voIlZgDGQNFqIvpaFESAQ3EiBzt/kCRldD/Xvbl5ZShE27N6GGEjuCxMmIRlaxKhKEbsW5Y80EKrAWLHWHZbP5fYxzriSo9LfhiZ60sU6XeCGs0yDgW10fyERvFDoN22BcJR7Z4tepp6ESS4Yn4Osw+uQP+OKFDBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VAXUc+ks8G2fFWunSNjtxS13J93MOyH3ZzNqUNBwFUM=; b=evtVQkD1ZfxjCvgI3WC6Qtv81muJCf5M2MvCR6Lut067RhIjpE26iqqZMRPTPB8AGUWac/jONIDwrfV++6IGZlNJcMjbQ4CBfpvhtHtzFnGqEMAW0m/KPjQ4TuAkwktwuaEAEnND3O5f8Xu68fOE6idwyN7MwcEF0GZOEsaUet0= Received: from BYAPR08CA0059.namprd08.prod.outlook.com (2603:10b6:a03:117::36) by BY1PR12MB8448.namprd12.prod.outlook.com (2603:10b6:a03:534::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.24; Wed, 11 Sep 2024 10:39:05 +0000 Received: from SJ1PEPF00002324.namprd03.prod.outlook.com (2603:10b6:a03:117:cafe::8a) by BYAPR08CA0059.outlook.office365.com (2603:10b6:a03:117::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.25 via Frontend Transport; Wed, 11 Sep 2024 10:39:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ1PEPF00002324.mail.protection.outlook.com (10.167.242.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7918.13 via Frontend Transport; Wed, 11 Sep 2024 10:39:05 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 11 Sep 2024 05:39:04 -0500 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 11 Sep 2024 05:39:03 -0500 Received: from xhdsneeli40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 11 Sep 2024 05:39:00 -0500 From: Manikanta Guntupalli To: , , , , , CC: , , , , Manikanta Guntupalli Subject: [PATCH V2 1/3] i2c: cadence: Relocate cdns_i2c_runtime_suspend and cdns_i2c_runtime_resume to facilitate atomic mode Date: Wed, 11 Sep 2024 16:08:50 +0530 Message-ID: <20240911103852.162234-2-manikanta.guntupalli@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240911103852.162234-1-manikanta.guntupalli@amd.com> References: <20240911103852.162234-1-manikanta.guntupalli@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00002324:EE_|BY1PR12MB8448:EE_ X-MS-Office365-Filtering-Correlation-Id: 67b6a601-8a8f-4477-f21c-08dcd24df591 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024; X-Microsoft-Antispam-Message-Info: eD7pcTE6O+LkGHUvYKg2JqZKXkMqW1YPGlp6nvQW0xKL9E7IZDGLS7NGvwwesqhhR/XSjRRktAMWc9UGAMy5mGGB+IAskxT7r3eeEaL16RzUIcZ9rW0kukqRRtQhRnprxpSoJZyGDj4/b0bICGI1gYNdZc5ry5ZA/svzsVG14NDKB6qgoqLmUU+8fbC1p57GjOqehcXYKQeYC83LKzSbsigoJfIBJo7y2lZbnsvOVNIZMHyUHUU7Gf41/DUGttJnR9wV/PYERel8tSJ5grh5vK6zgiRnSLip4Sq99aRE2d5CBKHiyKicpUzLgQ+u4rDlAMefDmvFbPACZ9lSrmpu7AoZTnR/dYhLtFQ/zMW9KFhz6vg2kwv6ypzqXM5zIKDMsFzChJ6l6X4/V5MN9ggyA6YFTVYmtWoJkeMOggNkn1f1u5AQVBgHIc3+zZNClBt4u4H1Mqr6DDaduwe5gKMXhBmI27yKvAi/pLuhUQ2l+ZAKFM7pLBCxdsSxSCSnA4MhhRR34fy14AJIZ9lOOL0WXDanQ9VPv2zbx3bWj+wWPqQjkkuW9ZxM36x2JTmrAiXYYCR3lm1dbckHuOX8BhsUx7xuEIeOs5ADjPOD05SMwxpnIWTIPsCgf7jH/DxdI+xF5Ow5ZGe/zLMLUAGQMvRSNURozNxVX8g5xkD7aUoTvB9Zzk77RXaGD3Qp9JarAh88H4jxhvx1YI+1vvnQTtzXBFJvZ+kwRqhxbQ83RUZVFj+fN6iog6kHKOvhArrZPOhZhdRn0X89UEb3xh/BQQqCRIn1ds5tsIambXe6o/rBjDOI/tEnZ41ZFbLdukvSGHanX1n7g4IlhvC01oRUKRhglk3qqTi/nwMIERg0nGquOTO3t8NJnzpL7VUIYfh1AIz/DBTg2i6O0bRVL9mxXN+V795xMCuwpw6viW1SCu66Otg1cdSxjJfJJpCeQRUCjKcWFly5LvqsvgDk2ugTA0qUF1CAB3RU6oBr9V0bE05BLhIPQP9hiJG+GOjTAzfhAFlCZH4u8Xe5plTBoAqHo6d/Q+ByRJEhwhwqjiRf/8+ZFSaIMLDZ169jgzG+4O/UnzC8SkEOzC2BR0W4Va8JlYu9ENzFlwEl425ve+7uQExnciaH8dXlRhrwy8SmhRcsV0c4iwcP7GQz0ab9PVMNXbML4U41K5nBgWiNybsGeG1BN8xtm3w8OrYxJp1rNzNIbN1vgiIkKH+BW1JFuD6TtmieLlXIEPUwv6WO0wweyGB6VL9iAzI48iB9J9UM/MvBM3gnDBmOvEebEv27QT73PLaZLhvU50vwJwKA+rflttCN8ZKlSt4onHJ8E7msrJd144KPS1QelLGIB0u59Q6/YlhH36dv809Oo+Vh0j4Dej4YjNWiT4/dUPE+V7VvXBvBejtYWaa5E8/MPhV5mb0kmqCOFSAJoPxwJ4rhefBluughSaQlDhw0K607bXX/IOJQVI/g X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Sep 2024 10:39:05.2502 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 67b6a601-8a8f-4477-f21c-08dcd24df591 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00002324.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR12MB8448 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240911_033913_069974_CE0036DC X-CRM114-Status: GOOD ( 21.11 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Relocate cdns_i2c_runtime_suspend, cdns_i2c_runtime_resume and cdns_i2c_init functions to avoid prototype statement in atomic mode changes. Signed-off-by: Manikanta Guntupalli Reviewed-by: Andi Shyti --- Changes for V2: Added review signature. --- drivers/i2c/busses/i2c-cadence.c | 120 +++++++++++++++---------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c index 87b9ba95b2e1..d3f6ca2cb4d7 100644 --- a/drivers/i2c/busses/i2c-cadence.c +++ b/drivers/i2c/busses/i2c-cadence.c @@ -228,6 +228,66 @@ struct cdns_platform_data { #define to_cdns_i2c(_nb) container_of(_nb, struct cdns_i2c, \ clk_rate_change_nb) +/** + * cdns_i2c_init - Controller initialisation + * @id: Device private data structure + * + * Initialise the i2c controller. + * + */ +static void cdns_i2c_init(struct cdns_i2c *id) +{ + cdns_i2c_writereg(id->ctrl_reg, CDNS_I2C_CR_OFFSET); + /* + * Cadence I2C controller has a bug wherein it generates + * invalid read transaction after HW timeout in master receiver mode. + * HW timeout is not used by this driver and the interrupt is disabled. + * But the feature itself cannot be disabled. Hence maximum value + * is written to this register to reduce the chances of error. + */ + cdns_i2c_writereg(CDNS_I2C_TIMEOUT_MAX, CDNS_I2C_TIME_OUT_OFFSET); +} + +/** + * cdns_i2c_runtime_suspend - Runtime suspend method for the driver + * @dev: Address of the platform_device structure + * + * Put the driver into low power mode. + * + * Return: 0 always + */ +static int __maybe_unused cdns_i2c_runtime_suspend(struct device *dev) +{ + struct cdns_i2c *xi2c = dev_get_drvdata(dev); + + clk_disable(xi2c->clk); + + return 0; +} + +/** + * cdns_i2c_runtime_resume - Runtime resume + * @dev: Address of the platform_device structure + * + * Runtime resume callback. + * + * Return: 0 on success and error value on error + */ +static int __maybe_unused cdns_i2c_runtime_resume(struct device *dev) +{ + struct cdns_i2c *xi2c = dev_get_drvdata(dev); + int ret; + + ret = clk_enable(xi2c->clk); + if (ret) { + dev_err(dev, "Cannot enable clock.\n"); + return ret; + } + cdns_i2c_init(xi2c); + + return 0; +} + /** * cdns_i2c_clear_bus_hold - Clear bus hold bit * @id: Pointer to driver data struct @@ -1158,23 +1218,6 @@ static int cdns_i2c_clk_notifier_cb(struct notifier_block *nb, unsigned long } } -/** - * cdns_i2c_runtime_suspend - Runtime suspend method for the driver - * @dev: Address of the platform_device structure - * - * Put the driver into low power mode. - * - * Return: 0 always - */ -static int __maybe_unused cdns_i2c_runtime_suspend(struct device *dev) -{ - struct cdns_i2c *xi2c = dev_get_drvdata(dev); - - clk_disable(xi2c->clk); - - return 0; -} - static int __maybe_unused cdns_i2c_suspend(struct device *dev) { struct cdns_i2c *xi2c = dev_get_drvdata(dev); @@ -1187,49 +1230,6 @@ static int __maybe_unused cdns_i2c_suspend(struct device *dev) return 0; } -/** - * cdns_i2c_init - Controller initialisation - * @id: Device private data structure - * - * Initialise the i2c controller. - * - */ -static void cdns_i2c_init(struct cdns_i2c *id) -{ - cdns_i2c_writereg(id->ctrl_reg, CDNS_I2C_CR_OFFSET); - /* - * Cadence I2C controller has a bug wherein it generates - * invalid read transaction after HW timeout in master receiver mode. - * HW timeout is not used by this driver and the interrupt is disabled. - * But the feature itself cannot be disabled. Hence maximum value - * is written to this register to reduce the chances of error. - */ - cdns_i2c_writereg(CDNS_I2C_TIMEOUT_MAX, CDNS_I2C_TIME_OUT_OFFSET); -} - -/** - * cdns_i2c_runtime_resume - Runtime resume - * @dev: Address of the platform_device structure - * - * Runtime resume callback. - * - * Return: 0 on success and error value on error - */ -static int __maybe_unused cdns_i2c_runtime_resume(struct device *dev) -{ - struct cdns_i2c *xi2c = dev_get_drvdata(dev); - int ret; - - ret = clk_enable(xi2c->clk); - if (ret) { - dev_err(dev, "Cannot enable clock.\n"); - return ret; - } - cdns_i2c_init(xi2c); - - return 0; -} - static int __maybe_unused cdns_i2c_resume(struct device *dev) { struct cdns_i2c *xi2c = dev_get_drvdata(dev);