Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2761532ybh; Mon, 5 Aug 2019 06:26:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqyB9ZSiNr4PSnSvTng7u6nYjjjw92DziwZtR9DZaX01gszrAdWGWhXaXmFfWJd9W40Ua+UA X-Received: by 2002:a63:481c:: with SMTP id v28mr24117025pga.50.1565011589421; Mon, 05 Aug 2019 06:26:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565011589; cv=none; d=google.com; s=arc-20160816; b=YilJdUtkRTW9txTGscOIRzpHb3ztV+k/so8rN87PAmYzSobg0rPuTtBc5IAzQoAvL+ nv+w2SAf6UqqfdqqufavZ9Ho7WAgLS2wsZufgm2wbKXRdABu9KbWhJdmQSJdgj+O7d0z hsWnfRrv7MTwrC9XXJ4Vnh79drZowuBn0RcEv0H2bugkRrO8/aHvSLVULFA5f3JXFemE iRNCEm8JMUbm5X2AAn+wxWevazJiZYYwbpKdh+FNzsRid9tT3nQkpTg4f8Nclawa+5xk 4pV2VzsmELLggfLeMYevdvdFiAqCJuq5FnkXaa5caDnYOYbfoOSjLaxUUacVm69slkDw 8PnA== 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:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=D/3jnJvJEiuj3dfaP7Jeg03RtrlCr9oZ3s4SRneZx2k=; b=efDhB6P/91TuR5C2ogNpOA3wlTSSksaUI2VqV135irfTJKJZV4+H1hjWWPI8ursBaf eHt8bd1Sqf3e2wFrg1zu3r2nxktmmpF/OuxdxEW7RhK3m0ToYko0gt1+y7OODqxJs6g3 Jfw8Nq9bT7ZPAp6FxuZqX5rwXYbgE6r/2VMsPtJ6KD1ExwLCyymNikWmGcZdQ/sjdksR Ld2WjDXcf2mORC5SQH3gA1cyaduPi/fhkxti5wKCI+NejCbS5PvignJpMPPThVnUNmql Gb0TK8rY8JIlkB6da0UQpfzLdKt6csyP/MgeXH0Wbca2TptpJYyvMkZht6HCHZCMCy0f 4t7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="bzI/gcF2"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w188si46390336pfb.175.2019.08.05.06.26.14; Mon, 05 Aug 2019 06:26:29 -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=@kernel.org header.s=default header.b="bzI/gcF2"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730768AbfHENYV (ORCPT + 99 others); Mon, 5 Aug 2019 09:24:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:32828 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730971AbfHENYT (ORCPT ); Mon, 5 Aug 2019 09:24:19 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 92A9C2087B; Mon, 5 Aug 2019 13:24:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565011458; bh=dJ6eF9Ln8U7bkQe9KNDZRmgsHgayYzmLEycoAeDZu5I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bzI/gcF2lM/JrqWSDEy51v4/pvtL2+CF3o5laPO6MXrnoghUxvgD6BQGfLsXzfP5i nVB3PDKaHNAmx+cVqPhNoyHVvt5G1FcqmRSnOM+5+4Dz53CvM58altfHEW5fdo0t54 KZZa4ljA1QMuGe5nHtQRNp1t8hABe4YDYEKg3YGA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= , Ludovic Desroches , Raag Jadav , Wolfram Sang Subject: [PATCH 5.2 095/131] i2c: at91: disable TXRDY interrupt after sending data Date: Mon, 5 Aug 2019 15:03:02 +0200 Message-Id: <20190805124958.328486837@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805124951.453337465@linuxfoundation.org> References: <20190805124951.453337465@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michał Mirosław commit d12e3aae160fb26b534c4496b211d6e60a5179ed upstream. Driver was not disabling TXRDY interrupt after last TX byte. This caused interrupt storm until transfer timeouts for slow or broken device on the bus. The patch fixes the interrupt storm on my SAMA5D2-based board. Cc: stable@vger.kernel.org # 5.2.x [v5.2 introduced file split; the patch should apply to i2c-at91.c before the split] Fixes: fac368a04048 ("i2c: at91: add new driver") Signed-off-by: Michał Mirosław Acked-by: Ludovic Desroches Tested-by: Raag Jadav Signed-off-by: Wolfram Sang Signed-off-by: Greg Kroah-Hartman --- drivers/i2c/busses/i2c-at91-master.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) --- a/drivers/i2c/busses/i2c-at91-master.c +++ b/drivers/i2c/busses/i2c-at91-master.c @@ -122,9 +122,11 @@ static void at91_twi_write_next_byte(str writeb_relaxed(*dev->buf, dev->base + AT91_TWI_THR); /* send stop when last byte has been written */ - if (--dev->buf_len == 0) + if (--dev->buf_len == 0) { if (!dev->use_alt_cmd) at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_STOP); + at91_twi_write(dev, AT91_TWI_IDR, AT91_TWI_TXRDY); + } dev_dbg(dev->dev, "wrote 0x%x, to go %zu\n", *dev->buf, dev->buf_len); @@ -542,9 +544,8 @@ static int at91_do_twi_transfer(struct a } else { at91_twi_write_next_byte(dev); at91_twi_write(dev, AT91_TWI_IER, - AT91_TWI_TXCOMP | - AT91_TWI_NACK | - AT91_TWI_TXRDY); + AT91_TWI_TXCOMP | AT91_TWI_NACK | + (dev->buf_len ? AT91_TWI_TXRDY : 0)); } }