From patchwork Mon May 31 13:12:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 450514 Delivered-To: patch@linaro.org Received: by 2002:a02:c735:0:0:0:0:0 with SMTP id h21csp888115jao; Mon, 31 May 2021 07:39:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwU3Cvfj2zaY5KGQL1g9NnInKxZb5+Ml/GkUKI0VB6IhV7feFwOuWoYTre0vaTSGFt0mc4i X-Received: by 2002:a05:6e02:5a3:: with SMTP id k3mr4949503ils.302.1622471996703; Mon, 31 May 2021 07:39:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622471996; cv=none; d=google.com; s=arc-20160816; b=D1N2P0A0auLE6r59IPspOzhVA18deItZnoJPkbtd3R9vgji6xlbP4Ryn/ZxwcWjNOH yJfhqJLRc5EhxWDOgunYA4Oi7OwBVul719vgpcIjPOH8ZJFYtkKwxA4U2+qsbHZCCrSQ VLWmYR66PahvbEPxT1jkIjtiKdhi3dAJht3ZxTXpdBKoDqq4KVegfLDCcuWgB39t2Ax7 vJlVIE+KwFUvwrzKZx9T3cZV3DlQi8FWkRKgIIPDAkBuub/Yy5rDiwz1c5qODqvQ+TpV zLETX7gI/AHyhz6ovKRnK69KWz56G8ofredkoZ3noAg+MUCGw1DzF3WoFIJ1qhwxBiTb IgMw== 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=/ucNzn6yiGTZhtOQ9sEeWzZx9sXnQfFKAtgSoxWQNDI=; b=Hgn2biwLc13b025XqYi70u54po4YPjmjm3h6NMDvrzqyNfUyIjBeyO5g086zJpn5fA Z9tyQLMzNVItEo7j2JCcfOnMVlN+VAi9qgtlcU/09eXV7irGlNxZk2XNkPnwN+iroxhj jZyzmn/fW+i+ukYCazp+KIO+x3VkjiWsQC6GjzmlOBZ//smZbhusjgcCmM71i+hTxDAq 8DulM6c/hfMo31heXGksE8WiBjUgqqvw4YcBUXO45njFb/gcjM5Xx/Qn0VX1FyjKSaU3 nzVx72m7KuRVJHPJnZKzT8eSQ2K2gKwUrJbqe3SWyIR8j6t12XeoMOiPxV3J/2S/zZmE i4mw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0AdHzAGP; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 u9si16141682jat.83.2021.05.31.07.39.55; Mon, 31 May 2021 07:39:56 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=0AdHzAGP; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 S233552AbhEaOl1 (ORCPT + 12 others); Mon, 31 May 2021 10:41:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:37854 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234074AbhEaOjT (ORCPT ); Mon, 31 May 2021 10:39:19 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6AB42617C9; Mon, 31 May 2021 13:52:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1622469136; bh=4kczbqToKUoouxXjyJfOWnf9wHAck/hBksZMc/Wqk44=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0AdHzAGPq8HgsVB6ttXekfuooj6I3lurv1MbdokvASVGsLTLoBFGxgEEZB8x3XUXr rqGPg4dtAKmLrDeH7Jevbdph25Kl7a8PaKIeWfEHrkMP/nECQ3bC12xjIi2fx3U1wF rdc9Ospy6j+l9j4dTaF/16qDCOxY56wX7ASYCYlM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alexandru Tachici , Alexandru Ardelean , Jonathan Cameron , Alexandru Ardelean , Stable@vger.kernel.org Subject: [PATCH 5.12 083/296] iio: adc: ad7192: Avoid disabling a clock that was never enabled. Date: Mon, 31 May 2021 15:12:18 +0200 Message-Id: <20210531130706.653856267@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210531130703.762129381@linuxfoundation.org> References: <20210531130703.762129381@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron commit e32fe6d90f44922ccbb94016cfc3c238359e3e39 upstream. Found by inspection. If the internal clock source is being used, the driver doesn't call clk_prepare_enable() and as such we should not call clk_disable_unprepare() Use the same condition to protect the disable path as is used on the enable one. Note this will all get simplified when the driver moves over to a full devm_ flow, but that would make backporting the fix harder. Fix obviously predates move out of staging, but backporting will become more complex (and is unlikely to happen), hence that patch is given in the fixes tag. Alexandru's sign off is here because he added this patch into a larger series that Jonathan then applied. Fixes: b581f748cce0 ("staging: iio: adc: ad7192: move out of staging") Cc: Alexandru Tachici Reviewed-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron Signed-off-by: Alexandru Ardelean Cc: Signed-off-by: Greg Kroah-Hartman --- drivers/iio/adc/ad7192.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -1014,7 +1014,9 @@ static int ad7192_probe(struct spi_devic return 0; error_disable_clk: - clk_disable_unprepare(st->mclk); + if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 || + st->clock_sel == AD7192_CLK_EXT_MCLK2) + clk_disable_unprepare(st->mclk); error_remove_trigger: ad_sd_cleanup_buffer_and_trigger(indio_dev); error_disable_dvdd: @@ -1031,7 +1033,9 @@ static int ad7192_remove(struct spi_devi struct ad7192_state *st = iio_priv(indio_dev); iio_device_unregister(indio_dev); - clk_disable_unprepare(st->mclk); + if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 || + st->clock_sel == AD7192_CLK_EXT_MCLK2) + clk_disable_unprepare(st->mclk); ad_sd_cleanup_buffer_and_trigger(indio_dev); regulator_disable(st->dvdd);