From patchwork Thu Jul 5 13:03:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanimir Varbanov X-Patchwork-Id: 10509081 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 74E0B600F5 for ; Thu, 5 Jul 2018 13:13:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6463A28BF5 for ; Thu, 5 Jul 2018 13:13:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5827E28E88; Thu, 5 Jul 2018 13:13:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D415F28BF5 for ; Thu, 5 Jul 2018 13:13:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754473AbeGENNL (ORCPT ); Thu, 5 Jul 2018 09:13:11 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:39049 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754226AbeGENFT (ORCPT ); Thu, 5 Jul 2018 09:05:19 -0400 Received: by mail-wr1-f65.google.com with SMTP id h10-v6so1136990wre.6 for ; Thu, 05 Jul 2018 06:05:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0MKE00JaWerRp2/nQ0l2U1l97a+GwZN1ggGadoc+uKY=; b=Y+tsa2Kgng9NIpvHg6lzwny2cePlCJmo68eKAkvZ/n6P7oGZ9uglsTSl3c6Psm09ao IaezgHVRYpSiEag/EIiewAtPSsBi1KxExBTPg+/0aQbeaMQH5nukXvWjUVlUHBOcHei7 VCCggFIwfbBCRZcVuE3RTOxtgOPSvjypnkg0k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0MKE00JaWerRp2/nQ0l2U1l97a+GwZN1ggGadoc+uKY=; b=R6CX82LidBtwiHVqezZtvkvdupgkuU6rax5sPmwYpGJvRamTQ9SM43ylpj+F7hR2xA ZfRMjQ+tpuNkVymV4KsuRbSpU1rPWZNDGjp0PBGGvxhbukITWalJASGkUSvyCWPEQKJI xE2CDGkkgXiNJnd7zbazMoGPB43laG5r6tWKaFrYOkLItUn//PThwVwHnB0qRhNVP/rC SMcCaSwR3wdPVS/lKfRJBhwMqXUnOukpOTisCiRJLknUXT0kmy9JQtOotFGH0QnMZNA3 iRXugsylAjarQcS6FfdXC1FVjcxtlsKAXqAT9VYs1LfF+cSLOS0Ykk41iJqvcpViX74f OmLw== X-Gm-Message-State: APt69E3AAs4B0XrUHS8sHiybYU/fUF6m7Q/Oa6pRO8bOixJu/EGwpd6L /B6VtTtFf8DCgVfISVupaFgBUQ== X-Google-Smtp-Source: AAOMgpdvMGhvI4cd5Xirrv0/aOZFMvP9Rgd8ZFa1XDoc4o/h6Q6S889SpW4N3rWSKyD1aPdntytTrg== X-Received: by 2002:adf:9f0f:: with SMTP id l15-v6mr4653674wrf.206.1530795917786; Thu, 05 Jul 2018 06:05:17 -0700 (PDT) Received: from mms-0440.qualcomm.mm-sol.com ([37.157.136.206]) by smtp.gmail.com with ESMTPSA id 11-v6sm2109102wrw.67.2018.07.05.06.05.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 05 Jul 2018 06:05:17 -0700 (PDT) From: Stanimir Varbanov To: Mauro Carvalho Chehab , Hans Verkuil Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Vikash Garodia , Tomasz Figa , Alexandre Courbot , Stanimir Varbanov Subject: [PATCH v5 10/27] venus: hfi_venus: add suspend functionality for Venus 4xx Date: Thu, 5 Jul 2018 16:03:44 +0300 Message-Id: <20180705130401.24315-11-stanimir.varbanov@linaro.org> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180705130401.24315-1-stanimir.varbanov@linaro.org> References: <20180705130401.24315-1-stanimir.varbanov@linaro.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This adds suspend (power collapse) functionality by reusing the suspend function for Venus 3xx and also enables idle indicator property for Venus 4xx (where it is disabled by default). Signed-off-by: Stanimir Varbanov Reviewed-by: Tomasz Figa --- drivers/media/platform/qcom/venus/hfi_venus.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c index 7a83e967a8ea..124085556b94 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus.c +++ b/drivers/media/platform/qcom/venus/hfi_venus.c @@ -879,6 +879,14 @@ static int venus_sys_set_default_properties(struct venus_hfi_device *hdev) if (ret) dev_warn(dev, "setting fw debug msg ON failed (%d)\n", ret); + /* + * Idle indicator is disabled by default on some 4xx firmware versions, + * enable it explicitly in order to make suspend functional by checking + * WFI (wait-for-interrupt) bit. + */ + if (IS_V4(hdev->core)) + venus_sys_idle_indicator = true; + ret = venus_sys_set_idle_message(hdev, venus_sys_idle_indicator); if (ret) dev_warn(dev, "setting idle response ON failed (%d)\n", ret); @@ -1533,7 +1541,7 @@ static int venus_suspend_3xx(struct venus_core *core) static int venus_suspend(struct venus_core *core) { - if (core->res->hfi_version == HFI_VERSION_3XX) + if (IS_V3(core) || IS_V4(core)) return venus_suspend_3xx(core); return venus_suspend_1xx(core);