From patchwork Fri Aug 22 07:52:21 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 4761661 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 9035AC033A for ; Fri, 22 Aug 2014 07:53:50 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CCEB0201BA for ; Fri, 22 Aug 2014 07:53:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 0CC6E201B4 for ; Fri, 22 Aug 2014 07:53:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 46CCB6E36B; Fri, 22 Aug 2014 00:53:48 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout4.w1.samsung.com (mailout4.w1.samsung.com [210.118.77.14]) by gabe.freedesktop.org (Postfix) with ESMTP id 992CA6E34B for ; Fri, 22 Aug 2014 00:53:44 -0700 (PDT) Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NAP0006X7E9CB40@mailout4.w1.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 22 Aug 2014 08:56:33 +0100 (BST) X-AuditID: cbfec7f4-b7f156d0000063c7-54-53f6f7072f09 Received: from eusync3.samsung.com ( [203.254.199.213]) by eucpsbgm1.samsung.com (EUCPMTA) with SMTP id 99.5F.25543.707F6F35; Fri, 22 Aug 2014 08:53:43 +0100 (BST) Received: from AMDC1061.digital.local ([106.116.147.88]) by eusync3.samsung.com (Oracle Communications Messaging Server 7u4-23.01 (7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPA id <0NAP003ZW77U1T20@eusync3.samsung.com>; Fri, 22 Aug 2014 08:53:43 +0100 (BST) From: Andrzej Hajda To: Inki Dae Subject: [PATCH 10/15] drm/exynos/ipp: stop hardware before freeing memory Date: Fri, 22 Aug 2014 09:52:21 +0200 Message-id: <1408693946-15456-11-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1408693946-15456-1-git-send-email-a.hajda@samsung.com> References: <1408693946-15456-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOJMWRmVeSWpSXmKPExsVy+t/xq7rs378FG7xbxmtxa905VosrX9+z WUy6P4HF4sW9iywWZ5vesFtc3jWHzWLG+X1MFmuP3GW3mDH5JZsDp8f97uNMHn1bVjF6fN4k F8AcxWWTkpqTWZZapG+XwJWxec8CxoLjXBW7bsxibWC8ydHFyMkhIWAi8en/ZiYIW0ziwr31 bF2MXBxCAksZJa79bGGEcPqYJG68+QlWxSagKfF38002EFtEQFli1b52dpAiZoGPTBJXlr5h BkkIC3hJnLhzkBHEZhFQlXjwsxMszivgIvF34xFGiHVyEiePTWYFsTmB4hcOTgOrERJwlui6 PY1pAiPvAkaGVYyiqaXJBcVJ6bmGesWJucWleel6yfm5mxghgfVlB+PiY1aHGAU4GJV4eBN/ fw0WYk0sK67MPcQowcGsJMK7ad63YCHelMTKqtSi/Pii0pzU4kOMTBycUg2MC5l31Qh+l3Vd tLEg4PfGgGNMC7g3+67JuN5hv3B9YbPQ8oXzJOr7PE+5Lzxn65Tfz6TEO4nl/PJZ7jtDv7+Y VvQ018PqkHBPs3jF/KZN/cu/T5T5PPeJbc2tvMhyl7iXGw+q6H48d2filmWFCqdKhFWs+Ms5 49heRqf3bbe8qcqQy+72clW+EktxRqKhFnNRcSIAbtekPAoCAAA= Cc: "moderated list:ARM/S5P EXYNOS AR..." , Seung-Woo Kim , open list , dri-devel@lists.freedesktop.org, Andrzej Hajda , Kyungmin Park , Marek Szyprowski X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Memory shouldn't be freed when hardware is still running. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/exynos/exynos_drm_ipp.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c index c72d8d1..6de75aa 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c @@ -1283,12 +1283,15 @@ static int ipp_stop_property(struct drm_device *drm_dev, struct drm_exynos_ipp_cmd_node *c_node) { struct drm_exynos_ipp_property *property = &c_node->property; - int ret = 0, i; + int i; DRM_DEBUG_KMS("prop_id[%d]\n", property->prop_id); /* put event */ ipp_put_event(c_node, NULL); + /* stop operations */ + if (ippdrv->stop) + ippdrv->stop(ippdrv->dev, property->cmd); /* check command */ switch (property->cmd) { @@ -1304,16 +1307,10 @@ static int ipp_stop_property(struct drm_device *drm_dev, break; default: DRM_ERROR("invalid operations.\n"); - ret = -EINVAL; - goto err_clear; + return -EINVAL; } -err_clear: - /* stop operations */ - if (ippdrv->stop) - ippdrv->stop(ippdrv->dev, property->cmd); - - return ret; + return 0; } void ipp_sched_cmd(struct work_struct *work)