From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030223AbbJ1QSZ (ORCPT ); Wed, 28 Oct 2015 12:18:25 -0400 Received: from mail-bl2on0064.outbound.protection.outlook.com ([65.55.169.64]:35360 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S966120AbbJ1QSX (ORCPT ); Wed, 28 Oct 2015 12:18:23 -0400 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Date: Wed, 28 Oct 2015 09:18:10 -0700 From: =?utf-8?B?U8O2cmVu?= Brinkmann To: Shubhrajyoti Datta CC: , , , , , , Shubhrajyoti Datta Subject: Re: [PATCH v2] i2c: cadence: Move to sensible power management Message-ID: <20151028161810.GB6436@xsjsorenbubuntu> References: <1446017200-30373-1-git-send-email-shubhraj@xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1446017200-30373-1-git-send-email-shubhraj@xilinx.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-21906.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11OLC007;1:pynUJGl3rx3SSN5mh2XBSgDILLHFR+qYga/vepn/aKFMZcegHleZxgivJQgHxtNTeOHs7Pu6lc2yBmYjHn5799IAALlctwXUpeX3E8mLteL80AN3EnhWhu7kUZGYLgYzYp/fCVAL0KlZUYYoww+sP8LOvKdrwd64bmufoKdSvu39sgYVvjd/JXBVFNsdAeQOku5VsyaY1zgIIyLdAgwoI0/fZXVeLrazPjTcHvtvBaQOknDrkvgJdnBgxnPNfmmWS4WfXpxeac41wYwaeaXIWsw7Coqog71vnB8zj8f5ekDhEtD1v+qqj/eyxAet8hQTdnNdvgS/GOuZzoguJ7ElDqs7twN/BBTRenFr54sSoJ+1WJ5a9r7LU6oTJiESbJDfL1E3IVoUIkibvwJ90U7ioso5u9WnvzK30juBZ/P57es= X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(24454002)(189002)(377424004)(199003)(4001430100002)(19580405001)(87936001)(19580395003)(85182001)(47776003)(23676002)(106466001)(551934003)(33656002)(86362001)(5007970100001)(11100500001)(76176999)(2950100001)(92566002)(85202003)(36386004)(33716001)(6806005)(50986999)(83506001)(107886002)(16796002)(4001450100002)(5001960100002)(5008740100001)(4001150100001)(54356999)(77096005)(63266004)(110136002)(50466002)(57986006)(81156007)(76506005)(189998001)(4001350100001)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2FFO11HUB054;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11HUB054;2:4L9S/LfZuJZDkHOUPNACz9jbwh64AMB2EmXpJwA9kwC4ePs+tfhERDgvwqlUx1h+bozQg0hfa16km+y0Sie4fwRbEVBSag3QNYT8Q6NTrqEzy7TguvCXYbv9e7dmK4KrJElB6ZfBrGBdzTR4Z3tcGtv6aC7vQPpRF+flltLVKq4=;3:xSI9gtR3I2xI2CP3STEDRdcMgD6NcCIIENg3SzaTM27PKn1NLoGIoi//yCo/+6loBi9D4mTbavBteSNY6ZBJlyZ19xQ9U1wxdJBvexu0ETHNf2gDkQBdtwNvmN6oxVyrQt0Uch/hZthQunpqCW3mh7zidiXR1LgLb2i9MdW8etnhNAwrLbC24uXGT01EPZXx8RJep60tPD3AlsIr8LTv8oNPYnMZAixrMI7DbbkMkQzFWLC+PWuZCWQ+NIVfvsC2VeF6SrQR5m5GGVdwOuqzCQ==;25:E5ORot7bYa+vUe2pxLLwIkXQMPwQVpekcP6MTIuPgKMSJSBCKPF/1bjLvPgRr806NoPgFhLy+qnrxS98SMuOkf3uneYlUJVKdLhJ/emLuiIiOw0ZLduCl+1ZVvpOC5tw4OOxZt04h2KIxMgojfsVxkufYwqfiaMWTlCbb9I4o9WzkCaq8ozBg3QCA13vjqZ48PblTimQfv/r1jiSwl5+8EhB5TpfSqCSsFOIg7AG0dD+KUTpwENejlPuEgEiVO7kZL/E1VHs098JhI9TXZkcig== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501001);SRVR:BY2FFO11HUB054; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11HUB054;20:e4waDePgn4P7bDM7w9LQ9WGQ+E51Zwz7NWDRdm0u+LS9kQIXyqOEnfWBTLFUv0mSLcGTRzM8VqTRS9HuxfvD7A1bB3Oo0Xy9Di7JGdljVAGC1EZChb/g1/CnOg4DtqbSAJ1LE9bJQMpqn82Cmr4bpa5W6nKU6lTAYgxDgziY4PmqcylE9/Ky4Rk6v2gd5q7P7kqn0UjWpBDe27iTzY8IOm7TPsz7ldVMwle1S6OHK91S1nrkmjaYJll06jorLcjSP46qyCFyuPY1ccL4XB0G8J1YNKy4nvyhxCqyrnMGoa5mGuJrXBfaHMVjIyHcY/sPIyBsEElJGM2d/vm4SUXm8+I+Cu953lmVjXwIoERMDREgg1hERb4YfqRNwkqZuIwKOgms02Aa92elOCUchzPo+FtQPaHPYtwF8wDV95uR1oR2OVRK2I+7hV6YydLjw07vBRLWYZomRVpF9dCE1cPmR8SoliKQHymCYH283MmsMmZneSFLLA4iMEahcCSxHMnk;4:+TNIR+IgfiM/E4iNq1f+Ee1+LUZ0e/0vg1KDOAHut9aGqyUrnse9vrEglpboGkkrUKe/drzNhpx5Pu0M/5JOA8KOl5jDJZwxlPIcMcFzSPaqScDpNKjgBDAzTARC41ttQGvp6j1MnpXZVR5L9SrVnVxVxRECTRyuCA+BOvZoae1VBRNVyrWEAnHqu7xUaOXzqaZs4rMA6fcK+ssoaCOBxHYnHxgZ8WFuXW4z/DrFCboF3O/+/ZmiHqVymfwVSOMvorA5ru6QsFa/DyoVuVsDMDUU5noi5ugAO+EVoIXnMK/v0l85sdBz3LBIStpf5Oz+SznNxf2p4JPm+Zfn/4VExYMLwSO2PK+28/b/0X46xkZyAiItgczE+DOnarw9ypTfr/2QbFkS4A3ZEUgd4rhxHA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001)(10201501046)(102215026);SRVR:BY2FFO11HUB054;BCL:0;PCL:0;RULEID:;SRVR:BY2FFO11HUB054; X-Forefront-PRVS: 0743E8D0A6 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJGRk8xMUhVQjA1NDsyMzpIc0ZtaUtadTVXM3R3V3hWOUNPMUxOOENO?= =?utf-8?B?WTlDeDZBdkhLVTlPdWlTZFJHZzRvRmwwQWJoMU5oRXJUOHlYV0pDYWR4Z0w0?= =?utf-8?B?RU5hcXllUFVBU2ZJRGpFSWtQTjFJSjFDQi9tODZmOHI0bVNVSUZHVjZYd3NY?= =?utf-8?B?b09BNVVpSVc1SWI1UzZORlRUN3VlSnBkekgrdm4yTlJqVHkxbjBpSEFoZ2Qv?= =?utf-8?B?aHlMS2FDY3RsN0l1SUYzZjBEOFp0UmpacVNIZXMySnAyMmtISnJQaHkxZUNS?= =?utf-8?B?UzZrQVI3NjJQYmVUcjNmMVFIczFqbnJ0TVJRL1RaQmQ4UGZXOE5rRGlZQ21h?= =?utf-8?B?TGZiUENNN2I4UHQvbjUxRCtXdE55bkkwMnJtN3FBcytobXYwNFlEUVR3ZUJK?= =?utf-8?B?bWJ1alJKU0FSckFCL2E4MEpSbld3dno1ZGpwYkJtQXRKNjc5Vm01dDFJSHVQ?= =?utf-8?B?aGJldTZkRWw1Wk1IRHpiV001TXRORUVSK2lBWE5qUHQxakhtT1NvS0xMZWNu?= =?utf-8?B?ZjFxTWZPNkV0YTlCYmpJOVNCdUw5MUNQeTA2UDM5OG1YQnZkSmZPU0Rjek40?= =?utf-8?B?TlJjZ2VMU3lYcWRmdUZ4TEJKSFY3WTZWTzNFSlMvSWE5QUN2UnpySjlrS0wv?= =?utf-8?B?NGVIbkMzWlo2c0czc01XZ2d6cWdJbkJsWVg1V0pvVzg4MHdtdXZXQkpQTm4w?= =?utf-8?B?OTl3UDRkWU8wZUpnKzJURDhya1FuQzZ4NklZaXROd1VOR1kzNm50WFAyaERE?= =?utf-8?B?MXY1ZGwwUmc5WHJXaC9rYTNqVzR3Ry92aEMxQnIyZDZIc3NMR3dNTktGZjNu?= =?utf-8?B?UkFRbTdlUWkvM3ZGc0NKd2NIcldkME93UW9MSkNiUzl2MVNYWTFxU2Niejl6?= =?utf-8?B?bkxwdDJ6UmZyUmxpWVFpRUhpcmxOWWNQUVl2R3hCNlFZMlNrSmtjUWxwR2J2?= =?utf-8?B?Y2x3WHZKbjh6VUgrbnE5SE85bDRPS0x0bUVSdjBMajk1bTd0cDdhaGUrbDlU?= =?utf-8?B?MHFxQnVDV2g4RWVqUi9DcjJEeUtxZmR2aTRBQ3grVFdCTi9hWnVORjVTL2Z2?= =?utf-8?B?Z3dXZFZDR09aN3VRSG1oUVBOMXNobVFXUVFWUUhnN2RvVVNYWVI2dy9WNlMr?= =?utf-8?B?dzViM0FuUndlbnBZTlhjVmdrazVLd1FkK3dvQUxmVEdXNkw1d0lDaTZGL1By?= =?utf-8?B?MUkzcWUyYUxNRGJITzlydytpOWpZcitRTTc5QTVrYW1tM25Gb2xGdGNIOHFN?= =?utf-8?B?NmxDQ2pSMkJqdmMxNnZ6cW1ST0NhM2pJMFpkSzE5WDN4aElzdHNrZHFhSTA3?= =?utf-8?B?aXAybVZiOVpvdFdpeTRZa1lDTkhFZUI0SWsvUU9yeGFObytyNVEvMldncHJl?= =?utf-8?B?RUZrME5BbWtsU0s3bE5MUVAzWm1XM2xwekovTytJYWJ4d1dTMmFXRTFJQ3Z1?= =?utf-8?B?Vy9SNWNMVGRhUmRQdm0xUHBMN3p2dHZnODlJZEpQVkh5ZFEvKy9mTmMrR1ZH?= =?utf-8?B?aXdWQTRCdjRqMG0wWURLQytmQjJtSHV4ZVlmbW40T0dWK3lFUE5XSFN0THM5?= =?utf-8?B?RjAxcW0xNTFrWDhKejB6aFQwbnl4S0dydXJxcjIrSFJ1V3NMVWNmQVJOWFdI?= =?utf-8?B?UkYvZk1pcDVoallSNVozOUx3R0l3RkJkSis4eUxlNlBmK1E5bWNVQ2djOEpk?= =?utf-8?Q?dpcE+88Paa5gzPiYPQk=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11HUB054;5:6O50mN054oEGJHI2rHFZeNGt1HUiOc2ATIM3SbtZZhnn9qm7PlOI0y712pTjIm1BQLmyREQLa4KZfDYy+As6Ig+ThkcflOz+1iBqtbd+wyKTfMqghKFRVRPxDJk7NRVjsrUurA0BiAmHeuevbipNCA==;24:QTWplmjToltvaS+94qV/BsZCYmQcnXxrojTA+yTP/pKrStMrmUgQUWgvZTXxlOWNqgwu7yNqDYhoWBi7YTZLdrGw/W859RhUNyALJgl2HLo= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2015 16:18:20.8199 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2FFO11HUB054 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Shubhrajyoti, On Wed, 2015-10-28 at 12:56PM +0530, Shubhrajyoti Datta wrote: > Currently the clocks are enabled at probe and disabled at remove. > Which keeps the clocks enabled even if no transaction is going on. > This patch enables the clocks at the start of transfer and disables > after it. > > Also adapts to runtime pm. > Remove xi2c->suspended and use pm runtime status instead. > > converts dev pm to const to silence a checkpatch warning. > > Signed-off-by: Shubhrajyoti Datta To me, this looks all good. Just one small concern below. > --- > changes since v2 > update the cc list > > drivers/i2c/busses/i2c-cadence.c | 73 ++++++++++++++++++++++++-------------- > 1 files changed, 46 insertions(+), 27 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c > index 84deed6..6b08d16 100644 > --- a/drivers/i2c/busses/i2c-cadence.c > +++ b/drivers/i2c/busses/i2c-cadence.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include > > /* Register offsets for the I2C device. */ > #define CDNS_I2C_CR_OFFSET 0x00 /* Control Register, RW */ > @@ -96,6 +97,8 @@ > CDNS_I2C_IXR_COMP) > > #define CDNS_I2C_TIMEOUT msecs_to_jiffies(1000) > +/* timeout for pm runtime autosuspend */ > +#define CNDS_I2C_PM_TIMEOUT 1000 /* ms */ > > #define CDNS_I2C_FIFO_DEPTH 16 > /* FIFO depth at which the DATA interrupt occurs */ > @@ -128,7 +131,6 @@ > * @xfer_done: Transfer complete status > * @p_send_buf: Pointer to transmit buffer > * @p_recv_buf: Pointer to receive buffer > - * @suspended: Flag holding the device's PM status > * @send_count: Number of bytes still expected to send > * @recv_count: Number of bytes still expected to receive > * @curr_recv_count: Number of bytes to be received in current transfer > @@ -141,6 +143,7 @@ > * @quirks: flag for broken hold bit usage in r1p10 > */ > struct cdns_i2c { > + struct device *dev; > void __iomem *membase; > struct i2c_adapter adap; > struct i2c_msg *p_msg; > @@ -148,7 +151,6 @@ struct cdns_i2c { > struct completion xfer_done; > unsigned char *p_send_buf; > unsigned char *p_recv_buf; > - u8 suspended; There might have been a reason to store this flag here. Did you test this with lockdep and CONFIG_DEBUG_ATOMIC_SLEEP? Just to make sure that nothing that can sleep is called from atomic context. Sören