Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp793046iog; Mon, 13 Jun 2022 13:07:18 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tV7yJsFa7q77Wtl3jmpLbU7HbGrK+SK+Uid4/QxT/kYDwCKwvGPYdSWurH4EPTlWG7b9dm X-Received: by 2002:a17:902:a58b:b0:168:b680:c769 with SMTP id az11-20020a170902a58b00b00168b680c769mr868506plb.32.1655150837924; Mon, 13 Jun 2022 13:07:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655150837; cv=none; d=google.com; s=arc-20160816; b=hMb/xkqLnq65Sq7o7cn+YWXz9DYV08eWvA11k94yMnHRv8UronAMXeAqT5dQiRg5GA WIU/suLTGu5i1HLNzwU1jZvh5Qx6P5Ewl8/bmlhs1j2yEoYtnmH/Z56KoG3Zt2QtfkcE 7NtGr3k/h3WOVx/uQIWRAEa+UIM6nl5IlgrL8YnKItSpvrgGKNTlmy3doeEJMvK5vmHc MJbda3dhz7DpBh3dq3BX3ueIfx8cfibOudYxBCN5tdU9xXywVRRNZT+1krOBsGNBt4zH gCLFcju4+RQz2KqaK++hpwqXrHMCoC8pHDrmPXYcWEwjyPd73Ec08MhiRh5kONIeMgOV 5wmg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=HPIFmqCq08/SpFCwk6A8CEBBfhPP5/Wk5un3Ts1xf9s=; b=C4QrIdHRJ4oXhdAhR/HBPpx84zV3THq/ZAwVSiTEIKMiTBXb6dWNQ6bxmqJ21H3tbL wAallNaZux7kk8nRbYfl04F/xbgZkKKFEBIrZBIuR4ZmjtD8EqWMBsqf8cfqCFqzdSEO 0eai1ppjGd1GwSuop46LrLiF7GCxwlbRFUSMajpuDXlnh2u3AG7Eirn8yoUnsA4EfPij wR40myq+R7v29o46NDVtTTXSqMPsl6vZdlPF11jgyvzwuK2HRDx/B6iwrctRdZQ1EJxe D1+Q/h659AJGCW1ufmvCT4JB2ziKayR7yBFJT17H5l4rvEJHORhr8HLJOIISgoLpuYJ3 cshQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=E+wZjHmz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i14-20020a639d0e000000b003fca31afbc1si11854337pgd.564.2022.06.13.13.07.05; Mon, 13 Jun 2022 13:07:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=E+wZjHmz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242051AbiFMTuw (ORCPT + 99 others); Mon, 13 Jun 2022 15:50:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345939AbiFMTu3 (ORCPT ); Mon, 13 Jun 2022 15:50:29 -0400 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEE07427F6; Mon, 13 Jun 2022 11:20:30 -0700 (PDT) Received: by mail-pg1-x52c.google.com with SMTP id 123so6263289pgb.5; Mon, 13 Jun 2022 11:20:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HPIFmqCq08/SpFCwk6A8CEBBfhPP5/Wk5un3Ts1xf9s=; b=E+wZjHmzh6EFZ9vKKG60lhqV9ZhJSRLQp2p8vF8yQi4Je1eGft2sy33hBoAmrBsGSA X+a6C0rVHwzy99s9ZjqLnj+XDUnhTzAQBZsG01edG+So9XfvQrvAgBL96y+R1ejuSFsx x3yViwfQT7IFJ6pt/1+k8s23lwJMdtNZEHe4UnDg5W6JndgtKkmGrKXoeDr5SI5lhtRS j6Knod7c94L7jH4fi3bb8yG6CyiXRYMlw8H7vswIff9sGaWOCRbSyR8yJsUC4+dNFtIL yYv6rEISd3QnsoBtHnUaT/Z1R2ftY2pPB5WUY6Y/ez5Dxlonzaziy/zWgyK1Xenvtpwk a71w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HPIFmqCq08/SpFCwk6A8CEBBfhPP5/Wk5un3Ts1xf9s=; b=S+mQXYNozXo5ZGPQSlu/8gNQbz1QrUv+gfe79aTXAEaqhScxR0XouTGuBn3plnG1mU Lm12zTsi5Yezm4BCdJBlQrUwGA/am6X5+tv6FrMPbNS/VxjSxzNtykf5dFXWgWslJUH/ eOoXzh0hVBnLuKcKkps6cBJkMZ+OFxRB/DYh3iE/Yua0EC8B+rtT+eqf/2auk8hlKmwf RAIokWbT6MaLbf9n3Q0/2VrPSGlVdBKTWOUl+6+fLVVW+giWeAM6+EL4wMGwOKnasWey lkekb9mv2eEm9Xshi0X4IW54xf2szQhE2UzZA+hhTM1Ji3VqQsFwFPVmAdWA7OG6Qcy7 TsbQ== X-Gm-Message-State: AOAM531Dbl5is5D1G6warXR5YpBgu0A3MZTAsxiSZS4QemtvFIHNMffE XctYBvurBRwL0LboozSYjk8= X-Received: by 2002:a63:483:0:b0:3fc:9128:60a5 with SMTP id 125-20020a630483000000b003fc912860a5mr790658pge.606.1655144430244; Mon, 13 Jun 2022 11:20:30 -0700 (PDT) Received: from localhost ([2a00:79e1:abd:4a00:2703:3c72:eb1a:cffd]) by smtp.gmail.com with ESMTPSA id z11-20020aa7958b000000b0051bdb735647sm5737882pfj.159.2022.06.13.11.20.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 11:20:28 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, Rob Clark , Rob Clark , Abhinav Kumar , Dmitry Baryshkov , Sean Paul , David Airlie , Daniel Vetter , Akhil P Oommen , Jonathan Marek , Bjorn Andersson , AngeloGioacchino Del Regno , Vladimir Lypak , Nathan Chancellor , Dmitry Osipenko , =?UTF-8?q?Christian=20K=C3=B6nig?= , Dan Carpenter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] drm/msm/adreno: Defer enabling runpm until hw_init() Date: Mon, 13 Jun 2022 11:20:30 -0700 Message-Id: <20220613182036.2567963-1-robdclark@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rob Clark To avoid preventing the display from coming up before the rootfs is mounted, without resorting to packing fw in the initrd, the GPU has this limbo state where the device is probed, but we aren't ready to start sending commands to it. This is particularly problematic for a6xx, since the GMU (which requires fw to be loaded) is the one that is controlling the power/clk/icc votes. So defer enabling runpm until we are ready to call gpu->hw_init(), as that is a point where we know we have all the needed fw and are ready to start sending commands to the coproc's. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_device.c | 6 ++++++ drivers/gpu/drm/msm/adreno/adreno_gpu.c | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c index 8706bcdd1472..7cef8ae73c71 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_device.c +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c @@ -415,6 +415,12 @@ struct msm_gpu *adreno_load_gpu(struct drm_device *dev) if (ret) return NULL; + /* + * Now that we have firmware loaded, and are ready to begin + * booting the gpu, go ahead and enable runpm: + */ + pm_runtime_enable(&pdev->dev); + /* Make sure pm runtime is active and reset any previous errors */ pm_runtime_set_active(&pdev->dev); diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index 4e665c806a14..e1aef4875e2f 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -1042,7 +1042,6 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev, pm_runtime_set_autosuspend_delay(dev, adreno_gpu->info->inactive_period); pm_runtime_use_autosuspend(dev); - pm_runtime_enable(dev); return msm_gpu_init(drm, pdev, &adreno_gpu->base, &funcs->base, gpu_name, &adreno_gpu_config); -- 2.36.1