Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp5223739ybi; Tue, 30 Jul 2019 16:30:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqzedw9uRq5VC3lfzNCMe1bCddE21ile6VHE+OYBYHiPmeWDva8pwbDolhxfKHSr4RoHEAAZ X-Received: by 2002:a65:64c4:: with SMTP id t4mr72798895pgv.298.1564529438412; Tue, 30 Jul 2019 16:30:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564529438; cv=none; d=google.com; s=arc-20160816; b=uTWxP5Clky2nOsbfTcSBQ1l+oMZDYqNRyWNqWWErUKyozWspd6tYUez9v76DDxfX1e q8RF9mv3XoPZlFWUsaJ31i2XYfRqR6k6XM1hy7FbSo6vsAYPDUw32iEkC/wLlmCqnoT8 sdnE9qJ0lSF/KGxqXbFRHM6UCTQ50GIgHOaoJOjCdupG9LTMmTHC1V7lFV5ov8VfV49R pP3NoOLiKuWBK9x600UGsO5vhDK5jpSQWoBlj/CeTc0W+p7N4Gl+LyazguJMyAqLSWr0 BjF+QRYDyvv3+IcbEiLBnqkArXcxU8hhi38ZYVGYkSfx5cyD2ZTUadZy61buW2e91g8n V81A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=RGi8YSyqfGHFxZ4qxqzTrqnfCbtBm7VBWTegRdqBqJA=; b=ElXvyg8sslOhPuffjM2m3iKeBShY8Y4NhxfPwFVbEOCE2LPCbZ2+qHFPekKwCjZRUE qZ62+Dujf06JUSh9ZoCLisxBV79aFZfZlkApuVlNorZN1ZTNnCQ0VUPOouRupN21AskQ SaqElqGQYpDBLta7WhDEMWdKkjaznavUgAiRJjWalLSbKVXywOabMe71pNwY98Z3eTBO fAT02R4kFkB0XSW0vgnYIWCz8FKILvgScNeCgFDxlMMdC478VytJ6WUdqzDXcWgb/y59 VrDYf9/dLb8uI2KlT/rSwlIyuWV7mj/dc+0BesRfyF9iAHdtoayCJlKc422YCMhABWyx Pk0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=M54UzvXv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j62si30428839pgd.170.2019.07.30.16.30.22; Tue, 30 Jul 2019 16:30:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=M54UzvXv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728531AbfG3Uxa (ORCPT + 99 others); Tue, 30 Jul 2019 16:53:30 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:34201 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726230AbfG3Ux2 (ORCPT ); Tue, 30 Jul 2019 16:53:28 -0400 Received: by mail-pg1-f193.google.com with SMTP id n9so24451074pgc.1 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=YUhPM3UZX5vG3EZVeB8J1zwiwAVyFyodanWztx/BSADMEFSA+UU03L/GRE1sjzS4Cx J9Z/Vqltcntgy9EOBetXD8EoS2WwzqpvPgd4tCKfiLJcjk5HkvFUCN8MtQDTopAZxMST bJwO0PdtpV8k1HCfiVXgZ8j+lLK7DJC2TbRv4v4IKKXygEbzoo18W7OP8YMGmmLqDrUz dviVf/SwWwbko4TLO1jF12Vk4drwyfUnsRMv7ketBlWYQi5pmc/MvEx0i/zf731DsTOh 5HKg5FDQqcOCqC2bhzZKwfzb2t6qWOzF06Jq6iLKMSJyUlc4/uT5+FE2GamRZ7+rsPeK b3bw== X-Gm-Message-State: APjAAAXhC44sMtE3sjpNSB/NVaj+KsDb75TOgZDbshbecVfOProweMp3 96jkQa3xzq0JR7OJ9ceDhx7Wag== 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 Cc: linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Florian Fainelli 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-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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