Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4453380ybz; Tue, 28 Apr 2020 11:33:22 -0700 (PDT) X-Google-Smtp-Source: APiQypJ3K0a+TnPb0fy5/2azFdkPXPMyLUGPGPz1I1fZNZzaz916zhBi7r9eYbpMOzfLbSa08+vU X-Received: by 2002:a05:6402:1a49:: with SMTP id bf9mr14553207edb.189.1588098801870; Tue, 28 Apr 2020 11:33:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588098801; cv=none; d=google.com; s=arc-20160816; b=era2mQdT4FPD/C+O8KVstTMBYFTylyOlAp0nZUkyrj5pTWtK1TnJx/ykabcz6pEuGf H7o8++UJFhElTH16l9Vp0D3OxIbHSIjurElFJ7LdjLyrBEysYQ11LdczXv4lDQpk6ttx 3AcS2NxfLZdAzi0QGoP6KWBLdBJfmu2lc1w3RwEmAy4VLKqWocKlOE+wm73aV0VPYCIm buj0rajVuHM/1oJs0QErS2gTOY26CUnYKTX4w0uRXhAwnGYjqQlClRBz07tHkOE5d9mZ IYSKj7yflSrMCgAfrVRtUaOzct6Hg6rkb0hSb/dybxdzwnjQSmLV+vCGEA1lD8s9gvs+ 9M4Q== 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=UJ/1WuWZbAB+B3MShj2oMKEpWfRubee6ke9cuzpHOt8=; b=EClcE/8/DvfBevwRRGqBe0ycJR2tU/m3n29B6NU5lKi/N0+zLeorP75PWLiD7SBDCV gFWwXxVJlS5gAhWj/JvS+bao2xCMAGGoLCXeq46vZRXBGfaK16NCJNJEsGjeM8tg12C2 EcXF+8LKavgCGlgghHohYoUH6zL/P5t95pAPeG6u+GlTwwT9Fp7RZKEAAaFIHhAb5xUd k7cz5i9zXBW7upVqEEWV5hIe75zWliTbAGnz1qhjTyw1xSqsVphKXGm4H+vZa9X80nXw iIlbdkWIdSQlVL38uJNXPsJ8KIFUuPqRXCbJRzf8BLrLFV5h0RgvirinNNrRpb8dojQl LauA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E0HLcIB4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q17si2004589edr.550.2020.04.28.11.32.57; Tue, 28 Apr 2020 11:33:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E0HLcIB4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729505AbgD1Sa1 (ORCPT + 99 others); Tue, 28 Apr 2020 14:30:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:45136 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729499AbgD1SaY (ORCPT ); Tue, 28 Apr 2020 14:30:24 -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 E3AD021707; Tue, 28 Apr 2020 18:30:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588098624; bh=WD3yPOcNBz5ao0L7Opx2owCe6PDhH1jhqWizIZim2uw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E0HLcIB41+0hUzAA1KRekI/IYVQxoDuOUy62nCZeWVxA9AGmZLgqXFQ9uYXuwkSNO OO3sbeXaoYiRCJmtkLkOmE5ccH+rxRg+PJ5IQrDRfUsCGYmLPApQuaXV/azyQ/rZah 91r0f47gw+yvvUDxdWBezKwTYeI9xQqiKxewC2fo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Stable@vger.kernel.org, Jonathan Cameron Subject: [PATCH 5.6 087/167] iio: xilinx-xadc: Fix clearing interrupt when enabling trigger Date: Tue, 28 Apr 2020 20:24:23 +0200 Message-Id: <20200428182235.965806499@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200428182225.451225420@linuxfoundation.org> References: <20200428182225.451225420@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: Lars-Peter Clausen commit f954b098fbac4d183219ce5b42d76d6df2aed50a upstream. When enabling the trigger and unmasking the end-of-sequence (EOS) interrupt the EOS interrupt should be cleared from the status register. Otherwise it is possible that it was still set from a previous capture. If that is the case the interrupt would fire immediately even though no conversion has been done yet and stale data is being read from the device. The old code only clears the interrupt if the interrupt was previously unmasked. Which does not make much sense since the interrupt is always masked at this point and in addition masking the interrupt does not clear the interrupt from the status register. So the clearing needs to be done unconditionally. Signed-off-by: Lars-Peter Clausen Fixes: bdc8cda1d010 ("iio:adc: Add Xilinx XADC driver") Cc: Signed-off-by: Jonathan Cameron Signed-off-by: Greg Kroah-Hartman --- drivers/iio/adc/xilinx-xadc-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -674,7 +674,7 @@ static int xadc_trigger_set_state(struct spin_lock_irqsave(&xadc->lock, flags); xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val); - xadc_write_reg(xadc, XADC_AXI_REG_IPISR, val & XADC_AXI_INT_EOS); + xadc_write_reg(xadc, XADC_AXI_REG_IPISR, XADC_AXI_INT_EOS); if (state) val |= XADC_AXI_INT_EOS; else