From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4FC4C433FF for ; Tue, 30 Jul 2019 20:53:37 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 8087820693 for ; Tue, 30 Jul 2019 20:53:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="bicJFqjo"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="M54UzvXv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8087820693 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ChwV/csIKHe2WcqBZxCKlybA1hXqpIsSiydAaY8t3J0=; b=bicJFqjo3HOIwm GVvMaWmJ9xbyLpZuXIQAMAP8KO4YGO7JEyffO7H7GkDaw0BpHKooW19srH4eyCxbvbr9AnYsH7Zn8 QeP7DUyNNMvjzn9kEWJpQ6FnA2e9CEAJnYzWvUOEfj+Ai+Nro0o+w7xYqg4jRhmN5HVd5iRzv7P80 ZUvkJ6AhIzIwsCTIulBsJL8ZUMGfntr8h+DhOEjhjbtV7AAdYFpaThhLpRWj9zMoHLGLM2Lp56f25 +fqCnwr2gGD54DdFxsHLgZGcncIq3/vrYK9Va9GjQd+s0bXcIgjaJIPv14kujuvb99SCnxS38y6OY P4i0m++wzOCgdmim2AMg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hsZ7o-0008Kz-NT; Tue, 30 Jul 2019 20:53:36 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hsZ7h-0008A8-0S for linux-arm-kernel@lists.infradead.org; Tue, 30 Jul 2019 20:53:30 +0000 Received: by mail-pg1-x541.google.com with SMTP id x15so20326498pgg.8 for ; Tue, 30 Jul 2019 13:53:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=RGi8YSyqfGHFxZ4qxqzTrqnfCbtBm7VBWTegRdqBqJA=; b=M54UzvXvvuwPcYffLeUbPfMGWrV7EgGeFXXZay6Jp7eWsxe24wEwnNq3h0IqfHEPtt j97FjJBplbL+HW2M+qoa/c/X8iqJ15uDqlq7DKkAkn23eP257BlqCsKNGjDp2oFfYRYG FeERJlxkUNpwBIJarL248E21HoCUXOTs58nds= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=RGi8YSyqfGHFxZ4qxqzTrqnfCbtBm7VBWTegRdqBqJA=; b=rJSKfDFz523PAyUPFtNSjE8CM0duxhB3Nzh7WhJR6OSGXSDFYG0oy8md1z2UQT/+Ry 0c9BMVpetnis6uiSWtk7QWMyKH59nZ4DKgd2bDduusxKoZXk4dNegwlFtQHk29rDEyIc cgPUw9Jnc0gV/mevsf4sOVP3CKCvgdDCEWtWNLWpoJQgDh5CnQb3QvO/MEsnfOiVZnRW usVsOspKF5aZ9g7SWqpSJG2K9DpSka5ao+NraczAYrxNzAQqzxLTdQViag/Sf0YlGF8r hQf0DXLHo8Z53e5Mu9xAE/gX+TTA8Qh5OamlUYycX3USXxCHmhyNht92Jfta7COtQax4 HSHw== X-Gm-Message-State: APjAAAX0s/gztEFcsiWDokD3IJicB6vTcETirVxvfo9S2wnseM06PnjL 4YR8Jz/mXq3UnxATrpfG9h62VQ== X-Google-Smtp-Source: APXvYqzh+qauyPlzUnXvJLah95lGU4CLhUnpH5T201YFRASrlH3tCF34TwBU9lCOYSYPr9aw5WG+fg== X-Received: by 2002:a17:90a:d998:: with SMTP id d24mr91210113pjv.89.1564520007294; Tue, 30 Jul 2019 13:53:27 -0700 (PDT) Received: from [10.136.8.239] ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id z4sm55247034pgp.80.2019.07.30.13.53.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Jul 2019 13:53:26 -0700 (PDT) Subject: Re: [PATCH v1 1/1] i2c: iproc: Fix i2c master read more than 63 bytes To: Rayagonda Kokatanur , Wolfram Sang , Rob Herring , Mark Rutland References: <1563956907-21255-1-git-send-email-rayagonda.kokatanur@broadcom.com> From: Ray Jui Message-ID: <8b8d83ce-70ba-eacd-7ea3-6f8425f1e0fc@broadcom.com> Date: Tue, 30 Jul 2019 13:53:24 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <1563956907-21255-1-git-send-email-rayagonda.kokatanur@broadcom.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190730_135329_098688_EFE8633F X-CRM114-Status: GOOD ( 19.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Florian Fainelli , linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Rayagonda, On 7/24/2019 1:28 AM, Rayagonda Kokatanur wrote: > Use SMBUS_MASTER_DATA_READ.MASTER_RD_STATUS bit to check for RX > FIFO empty condition because SMBUS_MASTER_FIFO_CONTROL.MASTER_RX_PKT_COUNT > is not updated for read >= 64 bytes. This fixes the issue when trying to > read from the I2C slave more than 63 bytes. > > Fixes: c24b8d574b7c ("i2c: iproc: Extend I2C read up to 255 bytes") > > Signed-off-by: Rayagonda Kokatanur > --- > drivers/i2c/busses/i2c-bcm-iproc.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-bcm-iproc.c b/drivers/i2c/busses/i2c-bcm-iproc.c > index 2c7f145..d7fd76b 100644 > --- a/drivers/i2c/busses/i2c-bcm-iproc.c > +++ b/drivers/i2c/busses/i2c-bcm-iproc.c > @@ -392,16 +392,18 @@ static bool bcm_iproc_i2c_slave_isr(struct bcm_iproc_i2c_dev *iproc_i2c, > static void bcm_iproc_i2c_read_valid_bytes(struct bcm_iproc_i2c_dev *iproc_i2c) > { > struct i2c_msg *msg = iproc_i2c->msg; > + uint32_t val; > > /* Read valid data from RX FIFO */ > while (iproc_i2c->rx_bytes < msg->len) { > - if (!((iproc_i2c_rd_reg(iproc_i2c, M_FIFO_CTRL_OFFSET) >> M_FIFO_RX_CNT_SHIFT) > - & M_FIFO_RX_CNT_MASK)) > + val = iproc_i2c_rd_reg(iproc_i2c, M_RX_OFFSET); > + > + /* rx fifo empty */ > + if (!((val >> M_RX_STATUS_SHIFT) & M_RX_STATUS_MASK)) > break; > > msg->buf[iproc_i2c->rx_bytes] = > - (iproc_i2c_rd_reg(iproc_i2c, M_RX_OFFSET) >> > - M_RX_DATA_SHIFT) & M_RX_DATA_MASK; > + (val >> M_RX_DATA_SHIFT) & M_RX_DATA_MASK; > iproc_i2c->rx_bytes++; > } > } > Thanks for the fix. This fix looks good to me! Reviewed-by: Ray Jui _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel