From patchwork Mon Sep 7 08:22:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 11760157 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 6D229746 for ; Mon, 7 Sep 2020 08:24:02 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2953E208C7 for ; Mon, 7 Sep 2020 08:24:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jHNixpXB"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="JB8epBma" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2953E208C7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=BbvOnqR5o35pyJiwbl0880WnDwYXt8DlJlNfX/WTOy8=; b=jHNixpXBsd64mjH3C7QyIxlCm MzqKf1zyRA86k/QS+kh6VWZIQmRnYVRbztyBMzSzad87DFonhxkzxstjmjgspbOz/CPNnyexEUcV3 xRoyyZ1NJe7FsIHqjj0ns5v/cg5sWpncJKEEvR2Is+ui91u2LCHGHmpXU9gpWn/8w4k0N4yKcZvD8 WUNqFb9UKQWRlsLrvlwPUZ94p2SHc7ERwElEAA46YQchI4yRMQqPrZSM/WcAhLLwI/geu8XXTx//W obdtyucJEoSfZrWXHhcVwJN3c+8m/bN2L4J0y7iNpZ6my3S9dNwVjQK7tOwEsQcn6G+Kuvdh3TnGQ hyYQA270w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFCQ7-0001hZ-3u; Mon, 07 Sep 2020 08:22:35 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFCQ4-0001h1-5M for linux-arm-kernel@lists.infradead.org; Mon, 07 Sep 2020 08:22:32 +0000 Received: by mail-wm1-x343.google.com with SMTP id e11so11807146wme.0 for ; Mon, 07 Sep 2020 01:22:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SnCJ3txJAmDAOljhzlhO5vFVgCQu8nNKgbG5tKbImjg=; b=JB8epBmaVCCSPzG3T1CnpHQ569r7kuMhPxDKKime2nZMYzudZ5nFb6dG95tvPcVHZ2 JkNqi8u9NPTYVy2yJ+2NWPHvTXjeRYyeXr2ZA56G9w8b6TQOqx0eniqdUZO6dLqgoBNl yvcSLgi65NSi7BjUcYDdCmTZ7KtXWQMnvITLE= 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:mime-version:content-transfer-encoding; bh=SnCJ3txJAmDAOljhzlhO5vFVgCQu8nNKgbG5tKbImjg=; b=MVfUrLmuCSEtzjslJXTsBiKUcKQvV5QUtRgnXYtG0/rFzqguFtEjY5yKRibtVigC8J Lg0oPcl8TlpaTCExeKdB8MolHMQpkzkNqKrC2Zyi8g3GR3FER8Z+HZPhz0U0gmCWQiKH 1bUyyGECqEJ52oj8Vu5Hv2YadD5rah1QqDcjha920DSn/H83AW37rYDIY9HZmn3XjUAi zx1/eMs0+hD+XFMFYkeAkC0Li96kXyES8Py4uuz5NVlBMhaOOGF3h1mFv0ScZmnP6StV bJ5SGfsyI2i4xO0x4ljkB4DWopHXgILRDOemQcaVI4ls5Fv6mvPSWcsLBbxL42Z8M918 O15g== X-Gm-Message-State: AOAM531EKr+RzteXj9h1+fSQQCJIjP7x3JfY+Nvi9nDP8taQi2JM884b 7QcxvtEAT5PiddYRwkIm0jpS0Pzd55gs+Gwv X-Google-Smtp-Source: ABdhPJziwAbrAyGtz2st6BdSyI/BpBzEAohmthAPuja2nuLTmf1IvW6Qmq8DmmH75kRYPyT8Kt0puw== X-Received: by 2002:a1c:1f41:: with SMTP id f62mr20374345wmf.51.1599466951031; Mon, 07 Sep 2020 01:22:31 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id 11sm24954061wmi.14.2020.09.07.01.22.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Sep 2020 01:22:30 -0700 (PDT) From: Daniel Vetter To: Intel Graphics Development , DRI Development Subject: [PATCH] drm/xlnx: Use devm_drm_dev_alloc Date: Mon, 7 Sep 2020 10:22:25 +0200 Message-Id: <20200907082225.150837-1-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200904143941.110665-7-daniel.vetter@ffwll.ch> References: <20200904143941.110665-7-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200907_042232_213567_79E98C97 X-CRM114-Status: GOOD ( 20.95 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:343 listed in] [list.dnswl.org] 0.0 SPF_NONE SPF: sender does not publish an SPF Record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hyun Kwon , Daniel Vetter , Michal Simek , Laurent Pinchart , Daniel Vetter , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Gets rid of drmm_add_final_kfree, which I want to unexport so that it stops confusion people about this transitional state of rolling drm managed memory out. This also fixes the missing drm_dev_put in the error path of the probe code. v2: Drop the misplaced drm_dev_put from zynqmp_dpsub_drm_init (all other paths leaked on error, this should have been in zynqmp_dpsub_probe), now that subsumed by the auto-cleanup of devm_drm_dev_alloc. Signed-off-by: Daniel Vetter Cc: Hyun Kwon Cc: Laurent Pinchart Cc: Michal Simek Cc: linux-arm-kernel@lists.infradead.org Reviewed-by: Hyun Kwon --- drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c index 26328c76305b..8e69303aad3f 100644 --- a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c +++ b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c @@ -111,7 +111,7 @@ static int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub) /* Initialize mode config, vblank and the KMS poll helper. */ ret = drmm_mode_config_init(drm); if (ret < 0) - goto err_dev_put; + return ret; drm->mode_config.funcs = &zynqmp_dpsub_mode_config_funcs; drm->mode_config.min_width = 0; @@ -121,7 +121,7 @@ static int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub) ret = drm_vblank_init(drm, 1); if (ret) - goto err_dev_put; + return ret; drm->irq_enabled = 1; @@ -154,8 +154,6 @@ static int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub) err_poll_fini: drm_kms_helper_poll_fini(drm); -err_dev_put: - drm_dev_put(drm); return ret; } @@ -208,27 +206,16 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev) int ret; /* Allocate private data. */ - dpsub = kzalloc(sizeof(*dpsub), GFP_KERNEL); - if (!dpsub) - return -ENOMEM; + dpsub = devm_drm_dev_alloc(&pdev->dev, &zynqmp_dpsub_drm_driver, + struct zynqmp_dpsub, drm); + if (IS_ERR(dpsub)) + return PTR_ERR(dpsub); dpsub->dev = &pdev->dev; platform_set_drvdata(pdev, dpsub); dma_set_mask(dpsub->dev, DMA_BIT_MASK(ZYNQMP_DISP_MAX_DMA_BIT)); - /* - * Initialize the DRM device early, as the DRM core mandates usage of - * the managed memory helpers tied to the DRM device. - */ - ret = drm_dev_init(&dpsub->drm, &zynqmp_dpsub_drm_driver, &pdev->dev); - if (ret < 0) { - kfree(dpsub); - return ret; - } - - drmm_add_final_kfree(&dpsub->drm, dpsub); - /* Try the reserved memory. Proceed if there's none. */ of_reserved_mem_device_init(&pdev->dev); @@ -286,8 +273,6 @@ static int zynqmp_dpsub_remove(struct platform_device *pdev) clk_disable_unprepare(dpsub->apb_clk); of_reserved_mem_device_release(&pdev->dev); - drm_dev_put(drm); - return 0; }