Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp9038813pxu; Mon, 28 Dec 2020 05:08:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJySG7gGdYFfGvvrWVuMklLGMsudPGUY7JoYoJ0jvPGiP1eW3QWRP1vB4rd8ngHtk+7d5ZEj X-Received: by 2002:aa7:c7d8:: with SMTP id o24mr42629422eds.328.1609160887788; Mon, 28 Dec 2020 05:08:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609160887; cv=none; d=google.com; s=arc-20160816; b=uS1ciHoqdqo85f1enEj/PJ87/WFlv6TYOLd2tpbCT81JY4+DZ7xuKZDBpFQE6Nnwjp FJSHJMOnPdM1WyxehnOhfOGH/6V3ubvUArGXqAqc9vvSEfIDHWaa9nmETGgVyeaeVJeq +6nlmZ/1h4MFzOtMvMcSNMwW7kf9Y8cyVwfZvqr6/YYn4CbXTweQ3E0WQUck7cRTT7nb qt6sQGdVBLFWZRgdi5oQWDqGMT9tcSv7h0o1SlF/09QoyKP3hvGspWWPFO7n+urwQpmh T68usQTzGoYKfcjU0ZeU9vsyixbYbNPM/RVZRysFaU9uqkIt5CcFLysix3Aqo+QcDx5v ZL4Q== 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=/YYZmP409/BzvOfr0u6LZ3O8+aSgypzM89NpLpki9Wk=; b=L/GL/Lr1ivdCXX7oI1bmeYUrA62fIaMXAjy54XFx5MMQsKqSkL917E/gkTnJ7t4Ulu R+zAPMv7FXdltX0gxJ9A1TuK3t4nCpYClkhzkS9OOMMgOx/I52htEkai7OXNP5ZPX2GM kKvRvQahHNCMM/t7Gl7PQuqPOWBJqgrFylEA17844nmmkdiDxnvTXOAEBS3H/JJ4ZKXe reZeA5DAG0dIa9WJ7oYOrKmXwLIPy8vINFQQMRt8aVqqu6n8L2gC56lDdnC50ChPnysq Kt0wyGfuRdTioFKIlmUYZU9xo3KzNjJ1CtGT69MkeoRtNHvMTB3tkLfB9sxpLFiEY5r2 CpwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=KPAkIgkY; 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 t19si20440543edt.253.2020.12.28.05.07.44; Mon, 28 Dec 2020 05:08:07 -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=KPAkIgkY; 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 S1729579AbgL1NFx (ORCPT + 99 others); Mon, 28 Dec 2020 08:05:53 -0500 Received: from mail.kernel.org ([198.145.29.99]:33474 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730661AbgL1NFp (ORCPT ); Mon, 28 Dec 2020 08:05:45 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5C17A22583; Mon, 28 Dec 2020 13:05:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1609160704; bh=Ed7G+Ve7B0rvQklr6MqKHAeDjIyVTNfHzgYEmp4xBl0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KPAkIgkYyV5CI4d3cjIKzuecXYILXH5B6X6s5BjWKHezkK83c/JDwvn6LZ0XxeAnS N4gFvo0nn6zMDXaKs20S+CyrYUTxtJqzDNQz+BfJTdJpmflmq+3lGSK8IozGPITQ6e YLNgGYNn9S8IDHbzTncO2v/6HBER33NoqklRzHIU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Rostislav Lisovy , Ian Abbott Subject: [PATCH 4.9 142/175] staging: comedi: mf6x4: Fix AI end-of-conversion detection Date: Mon, 28 Dec 2020 13:49:55 +0100 Message-Id: <20201228124900.134917491@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201228124853.216621466@linuxfoundation.org> References: <20201228124853.216621466@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 @@ -121,8 +121,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; }