From patchwork Tue Aug 13 09:11:28 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Barry Song <21cnbao@gmail.com> X-Patchwork-Id: 266757 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47BE92C00EE for ; Tue, 13 Aug 2013 19:13:07 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755934Ab3HMJNG (ORCPT ); Tue, 13 Aug 2013 05:13:06 -0400 Received: from mail-pa0-f43.google.com ([209.85.220.43]:47138 "EHLO mail-pa0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753818Ab3HMJNE (ORCPT ); Tue, 13 Aug 2013 05:13:04 -0400 Received: by mail-pa0-f43.google.com with SMTP id hz10so8590367pad.30 for ; Tue, 13 Aug 2013 02:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=96BLvLhVpKOqc9CGO8BCraf7fZ3UpOqf5Z9X/eKwRHo=; b=VXeXPIRdgYStvTWy8fsI1y5Ap8DY0S4TDJpOUtwjbMXlG1SjJDqx2PqBarBXQzyyoV AlZIrC6NmUxMKxFz1X6VyHb+H5+Oh6yfpAN5MkybquqxRcfj8hbiG15lSRqIAHs/Hmuw 6yvVTXIYFiKSQXDNnuOyONQx76xwSw+E+FZYwybnSGDqe8l2iPsiGKge4dJ66YxbvQhN UkOCRk8eDjR6Cwb+RHK3T6dlMzGjQQyNP3fKM7aS3W1VaXNFBrqyZpifQPIP1UCRV8PB KIdh7sJwnP4f9Kbo1UMDh7ecyICwpRvyyIVR9BVLPqIonBDojfpVZbQVTQC58BRX0cQl LOhQ== X-Received: by 10.68.176.132 with SMTP id ci4mr3514937pbc.7.1376385184481; Tue, 13 Aug 2013 02:13:04 -0700 (PDT) Received: from localhost.localdomain ([117.136.8.11]) by mx.google.com with ESMTPSA id mz5sm11805828pbc.18.2013.08.13.02.12.58 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 13 Aug 2013 02:13:03 -0700 (PDT) From: Barry Song <21cnbao@gmail.com> To: wsa@the-dreams.de, linux-i2c@vger.kernel.org Cc: workgroup.linux@csr.com, Zhiwu Song , Barry Song Subject: [PATCH 2/5] i2c: sirf: we need to wait I2C_RESET status in resume Date: Tue, 13 Aug 2013 17:11:28 +0800 Message-Id: <1376385091-30597-3-git-send-email-Baohua.Song@csr.com> X-Mailer: git-send-email 1.8.2.3 In-Reply-To: <1376385091-30597-1-git-send-email-Baohua.Song@csr.com> References: <1376385091-30597-1-git-send-email-Baohua.Song@csr.com> Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org From: Zhiwu Song this fixes the issue that we lost to wait the i2c reset finished. Signed-off-by: Zhiwu Song Signed-off-by: Barry Song --- drivers/i2c/busses/i2c-sirf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c index 055210e..45a8881 100644 --- a/drivers/i2c/busses/i2c-sirf.c +++ b/drivers/i2c/busses/i2c-sirf.c @@ -425,6 +425,8 @@ static int i2c_sirfsoc_resume(struct device *dev) clk_enable(siic->clk); writel(SIRFSOC_I2C_RESET, siic->base + SIRFSOC_I2C_CTRL); + while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET) + cpu_relax(); writel(SIRFSOC_I2C_CORE_EN | SIRFSOC_I2C_MASTER_MODE, siic->base + SIRFSOC_I2C_CTRL); writel(siic->clk_div, siic->base + SIRFSOC_I2C_CLK_CTRL);