Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp155819ybh; Tue, 14 Jul 2020 21:22:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAd56mmQODCSyqUS0xEP7WfB6T0GGOJc3mpw7rfIlBA58VZ6RwbDtJ67E+C8OmBK4wbkyo X-Received: by 2002:a05:6402:1a4b:: with SMTP id bf11mr7315175edb.191.1594786936993; Tue, 14 Jul 2020 21:22:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594786936; cv=none; d=google.com; s=arc-20160816; b=kxNgegeN7alM8xEnwS8CtUKL2nTqoYvB3PWdvAHsWbA0l3thsVHfq91v86rgV5uN1a jy3FvpIHr4YXm3Dlz5gp1ysV7aini/JvwCR8etl6MYGmOK21j+X/vLmdFMXsbKnOv1N1 j8fMhbZVSgut6EnVQg3VZO5iRPdHBK5+3Onuj5iZ1pxpeicAFoS1wuLfUpEfZ4J2QgtJ nC6SXnHo7xBr+x6fychbYh19ZZlbgMieTYAsDyoNNMIIESjmn+jegotldPy1mPB7P2IP qQwQ547K+vHHeueS5vbuVc3oUT5+6DgVVx1Ye+L7TGO8TugG9AxeZek86W3rPNitbjXh Lq/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from; bh=zxB65TqmmcKmPfWkLJU50AtZToCBrCGEYlb/JsyjY+U=; b=ml+wfhg586RDBWkD+EmSPB5q8FQplrL8e3vYZiVz4WqTvvQ5mISNFo8JY51tq7e1Z+ ARHNUGbeWj1gdCp2YjO0eDNgCQVMUcmVvSUIAaiNHwHxbUV0odEwuQBGyGYvYS2w9K3b PtzI2DGHPJkX/7NLcqklellPRlkFtNrqNCXwWZRKW/ZPu9nGYPVnC7klfPZ5JalGMUKV dV3DRybpwDrJN6tXGhOW0+fnCHqD0UX30b1yIVs9cWbLi5sPS1EP6IiVY/oFpaUhUZEs 3KCvLXJtqPhTkD/PDUKY8t9HwX8P2pnA6irKqkrh8zGWo1ogF9PJJoEWZfZYB8woBpI7 zGPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=Xka7PEDQ; 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=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ha20si455356ejb.683.2020.07.14.21.21.54; Tue, 14 Jul 2020 21:22:16 -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=@nvidia.com header.s=n1 header.b=Xka7PEDQ; 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=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728887AbgGOEUs (ORCPT + 99 others); Wed, 15 Jul 2020 00:20:48 -0400 Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:9559 "EHLO hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728103AbgGOET0 (ORCPT ); Wed, 15 Jul 2020 00:19:26 -0400 Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Tue, 14 Jul 2020 21:17:32 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Tue, 14 Jul 2020 21:19:25 -0700 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Tue, 14 Jul 2020 21:19:25 -0700 Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 15 Jul 2020 04:19:25 +0000 Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 15 Jul 2020 04:19:24 +0000 Received: from skomatineni-linux.nvidia.com (Not Verified[10.2.160.169]) by rnnvemgw01.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Tue, 14 Jul 2020 21:19:24 -0700 From: Sowjanya Komatineni To: , , , , , , , CC: , , , , , , , Subject: [RFC PATCH v3 03/18] i2c: tegra: Don't mark VI I2C as IRQ safe runtime PM Date: Tue, 14 Jul 2020 21:20:40 -0700 Message-ID: <1594786855-26506-4-git-send-email-skomatineni@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1594786855-26506-1-git-send-email-skomatineni@nvidia.com> References: <1594786855-26506-1-git-send-email-skomatineni@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1594786652; bh=zxB65TqmmcKmPfWkLJU50AtZToCBrCGEYlb/JsyjY+U=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:X-NVConfidentiality:MIME-Version: Content-Type; b=Xka7PEDQWikb4oQIXRaCkY2gULdhMDJ1lasgdot1PE7Qf8Z/hdMS8RhHveHp+qBk+ P7VgFglkANZ11RbdOM7SOFc/cLmigsqV9PcSWWJVYFBnIPYPeLfDz9pX9xSI3K1MDi QOeJzMMya50BETGQiaSeB2mhYEW/QqRUFqK5F7OCpeM+SG+yfLlCVzLWUN47dMsJN5 4tGMIVKVP/LW642IIzNsh5ze1UW2iMBZKLmdO9mwC03T6WBX3O4FDnA0MgQw0sKr29 eLagY03vZ1rKnriR7npLuBZ5bKSQfO8Kgisz1Yg0mTYzoCCEERwMpbqm+eW6BKOmNO 6Iwvh4+fpTNUA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Tegra VI I2C is part of VE power domain and typically used for camera usecases. VE power domain is not always on and is non-IRQ safe. So, IRQ safe device cannot be attached to a non-IRQ safe domain as it prevents powering off the PM domain and generic power domain driver will warn. Current driver marks all I2C devices as IRQ safe and VI I2C device does not require IRQ safe as it will not be used for atomic transfers. This patch has fix to make VI I2C as non-IRQ safe. Signed-off-by: Sowjanya Komatineni --- drivers/i2c/busses/i2c-tegra.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 1577296..3be1018 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -1750,7 +1750,15 @@ static int tegra_i2c_probe(struct platform_device *pdev) goto unprepare_slow_clk; } - pm_runtime_irq_safe(&pdev->dev); + /* + * VI I2C is in VE power domain which is not always on and not + * an IRQ safe. So, IRQ safe device can't be attached to a non-IRQ + * safe domain as it prevents powering off the PM domain. + * Also, VI I2C device don't need to use runtime IRQ safe as it will + * not be used for atomic transfers. + */ + if (!i2c_dev->is_vi) + pm_runtime_irq_safe(&pdev->dev); pm_runtime_enable(&pdev->dev); if (!pm_runtime_enabled(&pdev->dev)) { ret = tegra_i2c_runtime_resume(&pdev->dev); -- 2.7.4