Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5924957ybl; Tue, 10 Dec 2019 13:52:11 -0800 (PST) X-Google-Smtp-Source: APXvYqzPnlvQTIrM+0wb2hXQoi+nUlArQtKTI2Zt7PfIxNNtD58LGzlLJzqpz11Afw4j+izYAwiF X-Received: by 2002:aca:c646:: with SMTP id w67mr114640oif.171.1576014731327; Tue, 10 Dec 2019 13:52:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576014731; cv=none; d=google.com; s=arc-20160816; b=sNUFYnKy1ZzIEPYd25bLXtEZM5UyqgLxSo4tWSYeKBR1A9Zp/Rr7KZpNzn09J88iKh qHI0nGvnFNQU430zHqhtWAFTwW+s5kZYG+/tTuHqEei/DrIJ9uasywWyIaTS/WT5Mz3S 21KKy15agyybDlnmUKHg4g9WwfIt14KeaF2om3Pniq6pDLBdw2WKguyDrQvEUAUgEqwP A4DCvhYdRj8raUez616O6lL4TQCzMb+2xbFk6MK3bRZk39VIU0NVikhGLkhLLPihW4BX JTpT+T4nUyAvT5QtDp3CEqQyMjw26eu0wgSp0tadDGYktFuxgsIc5T3ic8CunlZoMUBb 6EsA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hTrZXCY9CGJSVxDCu/xQIa9AMYdfH1WkBdo5TSHVgTY=; b=G+fJ6h7n9DDUFFlR5B1ysryx5sqnZB+M/KynERuDyic4FOs7IkRJXBxZ851uAGlxQY +dw7cxz1K3ecI8jz/cytEOoj6nwAORxwbyI5CKSPjbUKeIgkkseMFeuYE7glHJ88AK+s HMd7Cu/BWPaN3JyW44nHeyV6RHrAFPzXGU2JoiidJf8cX4VOkrYL2zlPr94YyveGDInm 3Q57JXVYZ7RjN1iLzFNRr8Bcb9y26Cev1AXRBMST/0RTWjBPUpIebRAv5AeXlahJ7CBr /VjmEYxEnS/KIH4G8VVqo3Ra2Eg3mT+h/31etQioJ7vRCjBJkx/8JHlKKnMNvRUkQoSz +alg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=w+jTIkam; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l8si2861664otq.75.2019.12.10.13.51.58; Tue, 10 Dec 2019 13:52:11 -0800 (PST) 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=w+jTIkam; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730165AbfLJVun (ORCPT + 99 others); Tue, 10 Dec 2019 16:50:43 -0500 Received: from mail.kernel.org ([198.145.29.99]:55596 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726568AbfLJVIS (ORCPT ); Tue, 10 Dec 2019 16:08:18 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BCBC724697; Tue, 10 Dec 2019 21:08:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576012098; bh=rqiJcDmxOj5w4DNUtDakiAxzrhotGsLTvX+zXRMtAgY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=w+jTIkamKFzH2kn3isCoR3ZG0RecEBKu44ygdr74e5AfA/b+2THv+eMjqhPb4G4PO vjq9EQZ23vJP7BM0XaUTIILkTyKe8DqbTi4nFnAc7FCFVm1W1tQ0WPWQ35nC3iLSHG cs7qR2LP+yYybMRWQOK0Cb/d9IBkDUGaLMe4MrWA= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexandru Ardelean , Jonathan Cameron , Sasha Levin , linux-iio@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 074/350] iio: proximity: sx9500: fix iio_triggered_buffer_{predisable,postenable} positions Date: Tue, 10 Dec 2019 16:02:59 -0500 Message-Id: <20191210210735.9077-35-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191210210735.9077-1-sashal@kernel.org> References: <20191210210735.9077-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alexandru Ardelean [ Upstream commit 3cfd6464fe23deb45bb688df66184b3f32fefc16 ] The iio_triggered_buffer_predisable() should be called last, to detach the poll func after the devices has been suspended. This change re-organizes things a bit so that the postenable & predisable are symmetrical. It also converts the preenable() to a postenable(). Not stable material as there is no known problem with the current code, it's just not consistent with the form we would like all the IIO drivers to adopt so as to allow subsystem wide changes. Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron Signed-off-by: Sasha Levin --- drivers/iio/proximity/sx9500.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c index 612f79c53cfc6..287d288e40c27 100644 --- a/drivers/iio/proximity/sx9500.c +++ b/drivers/iio/proximity/sx9500.c @@ -675,11 +675,15 @@ static irqreturn_t sx9500_trigger_handler(int irq, void *private) return IRQ_HANDLED; } -static int sx9500_buffer_preenable(struct iio_dev *indio_dev) +static int sx9500_buffer_postenable(struct iio_dev *indio_dev) { struct sx9500_data *data = iio_priv(indio_dev); int ret = 0, i; + ret = iio_triggered_buffer_postenable(indio_dev); + if (ret) + return ret; + mutex_lock(&data->mutex); for (i = 0; i < SX9500_NUM_CHANNELS; i++) @@ -696,6 +700,9 @@ static int sx9500_buffer_preenable(struct iio_dev *indio_dev) mutex_unlock(&data->mutex); + if (ret) + iio_triggered_buffer_predisable(indio_dev); + return ret; } @@ -704,8 +711,6 @@ static int sx9500_buffer_predisable(struct iio_dev *indio_dev) struct sx9500_data *data = iio_priv(indio_dev); int ret = 0, i; - iio_triggered_buffer_predisable(indio_dev); - mutex_lock(&data->mutex); for (i = 0; i < SX9500_NUM_CHANNELS; i++) @@ -722,12 +727,13 @@ static int sx9500_buffer_predisable(struct iio_dev *indio_dev) mutex_unlock(&data->mutex); + iio_triggered_buffer_predisable(indio_dev); + return ret; } static const struct iio_buffer_setup_ops sx9500_buffer_setup_ops = { - .preenable = sx9500_buffer_preenable, - .postenable = iio_triggered_buffer_postenable, + .postenable = sx9500_buffer_postenable, .predisable = sx9500_buffer_predisable, }; -- 2.20.1