Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp9434803pxu; Mon, 28 Dec 2020 16:26:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJzosxR9CEl+SzFz1XaXYrgEXNZcfP5LpZsQzWX3+MDUWgh6MlU//LJW4b0NY6r1eZgDys+F X-Received: by 2002:a17:906:b7cc:: with SMTP id fy12mr43831156ejb.44.1609201562180; Mon, 28 Dec 2020 16:26:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609201562; cv=none; d=google.com; s=arc-20160816; b=QQ7j7S08pZfYQu5kyCXdi9LBE3eqTz1y76WkU6rnnACn7MBsH+pO/Ifm0RF8qf9F3u Y4Y0ooMREo1caCESStdhiijP2jsKs6lVxDz/sI57EOdNFDJvKv5XyceFg3LZxtf2Pf9V RA3ZVymgAyjg+kKQjesbB0MPBesdKWEPhgIpat4zXKriNDlWQA61wRDNXqyoAEdKsLtW xL5fo86ri4gr/4BlBtVrnGynolTCY4Apz4DUx82lIZ9WTp+uvRqa0dqMGvyv2OZiOp8n f0NulxUipim7t4H/LRGxYn69FoPCFgyP6HOHyr8rfOIfKO5lmrNmc4lRw8nDMlqp7mPz uq/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=tVqfZqCNhrxgSN6Q+OTuF9a5JRDTM2+NL7vvqB+hjQU=; b=LGBQz70hCzEbYKjTXyMCnSd2c0jYkprqi7CfcKH4LnR8pWcCh43y3boR83oZNRC3Cx Y1NeDGZArp542D1PnPvYblGhn3EBfqwovGipIa1qj4ixbUmy/B2AiHh5l1PeBvhq0mBS cmhixO+Kg66Fdy2iG4CoKSFe1qB1mfAfsFBuJlkx+w5L+TwdZ5RLAchmleGSMjFs+kYs fqOSrISJLAJbUisyVG9zG+ZBRej9Fm5IB7iCkV7ssrNNJylfvdMnSZQ1zi8parIFb7YW RBPfDy9c9GKXarF6dxi77CZhmBwU77IB7eJg2vgc/90O7FQZYDL+Y+oMt+RFCeak5drL mSvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=s9gDJrQR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o11si21238539edq.506.2020.12.28.16.25.40; Mon, 28 Dec 2020 16:26:02 -0800 (PST) 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=@linuxfoundation.org header.s=korg header.b=s9gDJrQR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2408540AbgL1Pen (ORCPT + 99 others); Mon, 28 Dec 2020 10:34:43 -0500 Received: from mail.kernel.org ([198.145.29.99]:55884 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2407410AbgL1NyM (ORCPT ); Mon, 28 Dec 2020 08:54:12 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 30D342064B; Mon, 28 Dec 2020 13:53:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1609163636; bh=/8ee/wHfIlJuwhmBcBGroCS0Ii8mapdb0sG6eD+PMmM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s9gDJrQRh5jmyak68hUoK59EaSoc7zFho9NfHgligFKMKOwa2cNCbQpYEqMpDHtQS 32RufMnMNpEu+5Wu6tAGnLejVWaGaP5OC0Tb0+TNs1Uyc3lnzIOraZfwPI1V9mAhlh MfP61/02+ht+CcCjV6CshMFmraWt6ahAkzea/G5Q= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Rostislav Lisovy , Ian Abbott Subject: [PATCH 5.4 355/453] staging: comedi: mf6x4: Fix AI end-of-conversion detection Date: Mon, 28 Dec 2020 13:49:51 +0100 Message-Id: <20201228124954.289208627@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201228124937.240114599@linuxfoundation.org> References: <20201228124937.240114599@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ian Abbott commit 56c90457ebfe9422496aac6ef3d3f0f0ea8b2ec2 upstream. I have had reports from two different people that attempts to read the analog input channels of the MF624 board fail with an `ETIMEDOUT` error. After triggering the conversion, the code calls `comedi_timeout()` with `mf6x4_ai_eoc()` as the callback function to check if the conversion is complete. The callback returns 0 if complete or `-EBUSY` if not yet complete. `comedi_timeout()` returns `-ETIMEDOUT` if it has not completed within a timeout period which is propagated as an error to the user application. The existing code considers the conversion to be complete when the EOLC bit is high. However, according to the user manuals for the MF624 and MF634 boards, this test is incorrect because EOLC is an active low signal that goes high when the conversion is triggered, and goes low when the conversion is complete. Fix the problem by inverting the test of the EOLC bit state. Fixes: 04b565021a83 ("comedi: Humusoft MF634 and MF624 DAQ cards driver") Cc: # v4.4+ Cc: Rostislav Lisovy Signed-off-by: Ian Abbott Link: https://lore.kernel.org/r/20201207145806.4046-1-abbotti@mev.co.uk Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -112,8 +112,9 @@ static int mf6x4_ai_eoc(struct comedi_de struct mf6x4_private *devpriv = dev->private; unsigned int status; + /* EOLC goes low at end of conversion. */ status = ioread32(devpriv->gpioc_reg); - if (status & MF6X4_GPIOC_EOLC) + if ((status & MF6X4_GPIOC_EOLC) == 0) return 0; return -EBUSY; }