From patchwork Thu Jun 4 07:26:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xia Jiang X-Patchwork-Id: 11587131 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B7DB614E3 for ; Thu, 4 Jun 2020 07:30:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9F7E92075B for ; Thu, 4 Jun 2020 07:30:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Sm4x5YXr" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728070AbgFDH33 (ORCPT ); Thu, 4 Jun 2020 03:29:29 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:15107 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728061AbgFDH33 (ORCPT ); Thu, 4 Jun 2020 03:29:29 -0400 X-UUID: e8eeac1351eb4b0c9231d7b289c30470-20200604 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=ZTXG1swxMq+6u0sp84wMTHDYveVRdbBvoRAsf7UsS68=; b=Sm4x5YXrlQbiEIsi6vDqn27KOZpz91o1tHw658+1YjRjYgsRavKK2fax8vaTtot6UsogWHuF651v1LzZXoqhVZtf626l8iGSWTuW7Pp7Oj2MDkxv1rVVu3hN59pnlIDRrnuO6ZjApV3Rgcp2cYEw0Xq9u5IgzP+2yVORqzPkbTs=; X-UUID: e8eeac1351eb4b0c9231d7b289c30470-20200604 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1167496728; Thu, 04 Jun 2020 15:29:24 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n1.mediatek.inc (172.21.101.15) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 4 Jun 2020 15:29:22 +0800 Received: from localhost.localdomain (10.17.3.153) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 4 Jun 2020 15:29:20 +0800 From: Xia Jiang To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Rick Chang CC: , , , , , Marek Szyprowski , Tomasz Figa , , , , , , , Xia Jiang Subject: [PATCH v9 07/18] media: platform: Improve the implementation of the system PM ops Date: Thu, 4 Jun 2020 15:26:57 +0800 Message-ID: <20200604072708.9468-8-xia.jiang@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200604072708.9468-1-xia.jiang@mediatek.com> References: <20200604072708.9468-1-xia.jiang@mediatek.com> MIME-Version: 1.0 X-MTK: N Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Add v4l2_m2m_suspend() function call in mtk_jpeg_suspend() to make sure that the current frame is processed completely before suspend. Add v4l2_m2m_resume() function call in mtk_jpeg_resume() to unblock the driver from scheduling next frame. Signed-off-by: Xia Jiang --- v9: use v4l2_m2m_suspend() and v4l2_m2m_resume() to improve the implemention of the system PM ops --- drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c index 7f74597262fc..49bdbf1c435f 100644 --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c @@ -1208,10 +1208,13 @@ static __maybe_unused int mtk_jpeg_pm_resume(struct device *dev) static __maybe_unused int mtk_jpeg_suspend(struct device *dev) { int ret; + struct mtk_jpeg_dev *jpeg = dev_get_drvdata(dev); if (pm_runtime_suspended(dev)) return 0; + v4l2_m2m_suspend(jpeg->m2m_dev); + ret = mtk_jpeg_pm_suspend(dev); return ret; } @@ -1219,12 +1222,15 @@ static __maybe_unused int mtk_jpeg_suspend(struct device *dev) static __maybe_unused int mtk_jpeg_resume(struct device *dev) { int ret; + struct mtk_jpeg_dev *jpeg = dev_get_drvdata(dev); if (pm_runtime_suspended(dev)) return 0; ret = mtk_jpeg_pm_resume(dev); + v4l2_m2m_resume(jpeg->m2m_dev); + return ret; }