Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp975813ybt; Wed, 17 Jun 2020 19:39:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwS+oYBZwn3bXISrEtd4q5sBT6OLGK4Kfh80iW6RJRrx7UpvnhA8F6vQi6lqb/bBUPWqEZ7 X-Received: by 2002:a17:906:f2d9:: with SMTP id gz25mr2059444ejb.467.1592447957925; Wed, 17 Jun 2020 19:39:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592447957; cv=none; d=google.com; s=arc-20160816; b=g0zGqzbfQOXEI+cuxBO/+KeHwO81wowHtg2DwOJlLnBMshVZqf6Dl2EiQyCfKTU8Ke 7Za0KqkkFk0u58BqcqeQhFPb/x/oLWGG2uviwYD/FlQeBg9gdU+8510bXpspx7Rde9uL Fvkc2eAgdtQAmyXapOQILwukVqywpJvG0AFLPFpQhiCqVQYw0qIhu+kCR1FzRHPWK0rj KjzA3jb4zPpdNkBbmTQCxrGHYkl67UP25wXWDizGkojIsA6JK50ICt39lNJ8JSCGo6fA BEa5oe2iD50gNSknrqe2eXRTh15+Jvv12FFg6crlT1GPCgh66mCUgWxOUB5ajaLRnScS ORZA== 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=ZCN3NwxilYHmYWVlD4+w55AMUxdAazHe8csYVY8Gycw=; b=baSfTHGsQA/BdzGEBqpj6FnS+v3fvc0nFEWqcPTVZtzKoKG/01INNMWBcpS+q2yqTj 0m50280Dce0yNON2wWUDx0fM9wWEota4xaQmP8t9JTyjGIbzSUxVmzl34FLXAb63t/g5 gq1zfFsJAbj2LjO49cP+4RmnO4oaTUpzagTn/TzHzFUWD+OqPLwMxKL1Rsnv3CAyaKx5 sYRTtMxRQvEz6m6vvLC4E2wMSCdJaRvIgpniY5YjqocpwBwQ2Z1HYjaJ+ftEE1nEb/jo U2DCx7uWX5YpQEe+3fxOFnyg857pS5PEJaeEIu+HIXjbY0qJPuGEDxHQfkitsf7rRmOr 0jWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=i6jneSvy; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id se19si953468ejb.71.2020.06.17.19.38.56; Wed, 17 Jun 2020 19:39:17 -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=i6jneSvy; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387739AbgFRChQ (ORCPT + 99 others); Wed, 17 Jun 2020 22:37:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:43062 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727111AbgFRBNo (ORCPT ); Wed, 17 Jun 2020 21:13:44 -0400 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 59C1B221EB; Thu, 18 Jun 2020 01:13:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442824; bh=EIJbw7mKgkDtoV/1GnE7maH6brijqvufX+8YAgg0Br4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i6jneSvyEPsmasmNOgTiidalOKkMZp6rfkaokmUejmzlUDVJ5tAzRFS3CswAfPgZB HMLAYB6EAi798jA9T0MjVEQPEwjV8KXn+XN30LeHEcxOZ4DLuP28g2KKL/C6yFr7l8 i2xJPPOHdWG+6Zi2WDCr68yvrqu1toCevEYOVTE0= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jonathan Bakker , Linus Walleij , Jonathan Cameron , Sasha Levin , linux-iio@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 260/388] iio: light: gp2ap002: Take runtime PM reference on light read Date: Wed, 17 Jun 2020 21:05:57 -0400 Message-Id: <20200618010805.600873-260-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-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: Jonathan Bakker [ Upstream commit f6dbf83c17cb223ceabd7c42d441414f3e0e8a86 ] The light sensor needs the regulators to be enabled which means the runtime PM needs to be on. This only happened when the proximity part of the chip was enabled. As fallout from this change, only report changes to the prox state in the interrupt handler when it is explicitly enabled. Fixes: 97d642e23037 ("iio: light: Add a driver for Sharp GP2AP002x00F") Signed-off-by: Jonathan Bakker Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron Signed-off-by: Sasha Levin --- drivers/iio/light/gp2ap002.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/iio/light/gp2ap002.c b/drivers/iio/light/gp2ap002.c index b7ef16b28280..7a2679bdc987 100644 --- a/drivers/iio/light/gp2ap002.c +++ b/drivers/iio/light/gp2ap002.c @@ -158,6 +158,9 @@ static irqreturn_t gp2ap002_prox_irq(int irq, void *d) int val; int ret; + if (!gp2ap002->enabled) + goto err_retrig; + ret = regmap_read(gp2ap002->map, GP2AP002_PROX, &val); if (ret) { dev_err(gp2ap002->dev, "error reading proximity\n"); @@ -247,6 +250,8 @@ static int gp2ap002_read_raw(struct iio_dev *indio_dev, struct gp2ap002 *gp2ap002 = iio_priv(indio_dev); int ret; + pm_runtime_get_sync(gp2ap002->dev); + switch (mask) { case IIO_CHAN_INFO_RAW: switch (chan->type) { @@ -255,13 +260,21 @@ static int gp2ap002_read_raw(struct iio_dev *indio_dev, if (ret < 0) return ret; *val = ret; - return IIO_VAL_INT; + ret = IIO_VAL_INT; + goto out; default: - return -EINVAL; + ret = -EINVAL; + goto out; } default: - return -EINVAL; + ret = -EINVAL; } + +out: + pm_runtime_mark_last_busy(gp2ap002->dev); + pm_runtime_put_autosuspend(gp2ap002->dev); + + return ret; } static int gp2ap002_init(struct gp2ap002 *gp2ap002) -- 2.25.1