Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp1318538pxb; Fri, 10 Sep 2021 03:15:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfG5HVjQSyaCyJcSW+63oA5mteRg/+arOIVMdEhTohneZowMAZDEHsTPvJ4/Mmzpkfx1dm X-Received: by 2002:a05:6638:103b:: with SMTP id n27mr3796186jan.48.1631268950111; Fri, 10 Sep 2021 03:15:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631268950; cv=none; d=google.com; s=arc-20160816; b=r2QSgkdRRfJTgRzIliH4RrGjRCX2PtRhV0bjULdEobt8hfzpD1/IUhZ4YFwTnWpRxX 2nRsx8oYtMcqoYgJcMook9Ouof/4K7VViCflDNvZWcX3m/t7RhqC+h5iNujL8tZZSZSp KTb+6uuLcbQ93oqVNjQjyWoxwACQ8q5DO6BaVSKglbP06yRrk7a2JazIvmsvRtSnfntc JjSlgLh8HEP75BeT0PFcSxU5fMZ5dQr3FV4ZXgnoQI8U3hBVt+ANLSSUJg5y4R9YFGdF cV/YY+O51aVy+cOGFzuN+b2E+Noutr+DbjLOngGNox0jXzIJYxanHD57wcS604FBFLsd Wqwg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=6oSOGrV3c51E2vx3kAJOM4HAYluSnWowEHh3mzTFbPI=; b=i0uKh+WT0IcvFXYwbDrd6OAo4Iu1KJa+k+8aXvxx9Rq4d5gIe1iH0gOguwJKfjjhl2 ZrX0CZfOr2bqvjZ0KkvyfHy6x2wZIKNotQv3cp4bnqHkPL8z6rbqAU97Ir4z3iALHXa5 fc/e6XJ9hvNXOkwfyfVB1Ourg/TcaPxD57mPO2tqoXPJA2D7zO/GTfLsqiH9MgQzl3Z1 O2C1A54oSwXjA+FXKivhQPUmxQbIXrOkq6SS5VlvPLiki033kwO2rHJu0dJK2ShoCOJp KNdu6LAuA2hNxi+3WMmyuMPIej/R8Pp4+6miaBPlHA9LASmPjch6jQPXPa7+6IhcSpCI uaBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=nkONDs10; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=QW6oPdy0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n7si4387497jas.103.2021.09.10.03.15.39; Fri, 10 Sep 2021 03:15:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=nkONDs10; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=QW6oPdy0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232598AbhIJKPf (ORCPT + 99 others); Fri, 10 Sep 2021 06:15:35 -0400 Received: from wnew4-smtp.messagingengine.com ([64.147.123.18]:60885 "EHLO wnew4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232473AbhIJKPY (ORCPT ); Fri, 10 Sep 2021 06:15:24 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailnew.west.internal (Postfix) with ESMTP id CAE6C2B013EB; Fri, 10 Sep 2021 06:14:11 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Fri, 10 Sep 2021 06:14:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=6oSOGrV3c51E2 vx3kAJOM4HAYluSnWowEHh3mzTFbPI=; b=nkONDs10kcf4P2uJCO3xoPwIjQ/1W CJvIljhSC5JqaSIUTiAvqMhFnm61F6l0YwyvQhZCciUf1DHQwEhEkiOuSnQcPRF0 DC5Mgeq/+YJekbmCflecCq4+SL7JARUF5+QB2taUcpc7NZX8I0q5WNIwxazZBicc +EmkrDn5nkuXKeqsm0jtMKYDyQzCOcSuoIJy7RlbXBLfdJnwnmy8HGE0JZNwF7cx Uohb+DlryhaxwwEZkXOw787JQoDH3SrlHmnKPSXMACoiUZSSfWIz/sUk1w7Zgv6D AKcjeZEANFgf6FFU8QEDKdw2hI2gS1zCPJPQShXXY/zPxqsgSFahOiJmA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=6oSOGrV3c51E2vx3kAJOM4HAYluSnWowEHh3mzTFbPI=; b=QW6oPdy0 +fngzonTtpe0TwIh1RZaktq4NtEZ44teKFkQ4z5yr90Hs0OuV6PD/cqIqcfq72zv w/Wn26V9AfvwkdEgvnr8HSfIpmNfVK3r6oNAFU2wtdj/wGSrWletdRRVBCB8cyVi 74kKOFMWuWp1Wf6yOio6ptkgymBLHag43jMHyeqHeh8DpF3u1LiH3YRn75KXPQxI ltdW5dr69RBSijT3i/bKgq4WDdxjJRAL0GhIwUx/M/sybZK7XSQxaccbtbok3cXp Li4gSqukEfKQKmvYMEw0WUHET2Ktf/CQsssEQ/Ae6suNw6olGPaqrZeYkjQstnwO pCZ0S0zs5fegdw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrudeguddgvdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeforgigihhm vgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrfgrth htvghrnhepvdekleevfeffkeejhfffueelteelfeduieefheduudfggffhhfffheevveeh hedvnecuvehluhhsthgvrhfuihiivgepgeenucfrrghrrghmpehmrghilhhfrhhomhepmh grgihimhgvsegtvghrnhhordhtvggthh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 10 Sep 2021 06:14:09 -0400 (EDT) From: Maxime Ripard To: Andrzej Hajda , Sam Ravnborg , Daniel Vetter , David Airlie , Jonas Karlman , Laurent Pinchart , Thierry Reding , Maarten Lankhorst , Thomas Zimmermann , Maxime Ripard , Neil Armstrong , Robert Foss , Jernej Skrabec Cc: Sean Paul , freedreno@lists.freedesktop.org, Kyungmin Park , linux-kernel@vger.kernel.org, Xinliang Liu , Seung-Woo Kim , Tian Tao , Inki Dae , linux-samsung-soc@vger.kernel.org, linux-arm-msm@vger.kernel.org, Rob Clark , dri-devel@lists.freedesktop.org, John Stultz , Chen Feng , Xinwei Kong , Joonyoung Shim Subject: [PATCH v4 19/24] drm/bridge: sn65dsi86: Switch to devm MIPI-DSI helpers Date: Fri, 10 Sep 2021 12:12:13 +0200 Message-Id: <20210910101218.1632297-20-maxime@cerno.tech> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210910101218.1632297-1-maxime@cerno.tech> References: <20210910101218.1632297-1-maxime@cerno.tech> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. This also avoids leaking the device when we detach the bridge. Signed-off-by: Maxime Ripard --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index 41d48a393e7f..b5662269ff95 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -674,6 +674,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge, struct ti_sn65dsi86 *pdata = bridge_to_ti_sn65dsi86(bridge); struct mipi_dsi_host *host; struct mipi_dsi_device *dsi; + struct device *dev = pdata->dev; const struct mipi_dsi_device_info info = { .type = "ti_sn_bridge", .channel = 0, .node = NULL, @@ -713,7 +714,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge, goto err_dsi_host; } - dsi = mipi_dsi_device_register_full(host, &info); + dsi = devm_mipi_dsi_device_register_full(dev, host, &info); if (IS_ERR(dsi)) { DRM_ERROR("failed to create dsi device\n"); ret = PTR_ERR(dsi); @@ -726,16 +727,16 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge, dsi->mode_flags = MIPI_DSI_MODE_VIDEO; /* check if continuous dsi clock is required or not */ - pm_runtime_get_sync(pdata->dev); + pm_runtime_get_sync(dev); regmap_read(pdata->regmap, SN_DPPLL_SRC_REG, &val); - pm_runtime_put_autosuspend(pdata->dev); + pm_runtime_put_autosuspend(dev); if (!(val & DPPLL_CLK_SRC_DSICLK)) dsi->mode_flags |= MIPI_DSI_CLOCK_NON_CONTINUOUS; - ret = mipi_dsi_attach(dsi); + ret = devm_mipi_dsi_attach(dev, dsi); if (ret < 0) { DRM_ERROR("failed to attach dsi to host\n"); - goto err_dsi_attach; + goto err_dsi_host; } pdata->dsi = dsi; @@ -746,14 +747,10 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge, ret = drm_bridge_attach(bridge->encoder, pdata->next_bridge, &pdata->bridge, flags); if (ret < 0) - goto err_dsi_detach; + goto err_dsi_host; return 0; -err_dsi_detach: - mipi_dsi_detach(dsi); -err_dsi_attach: - mipi_dsi_device_unregister(dsi); err_dsi_host: drm_connector_cleanup(&pdata->connector); err_conn_init: @@ -1236,11 +1233,6 @@ static void ti_sn_bridge_remove(struct auxiliary_device *adev) if (!pdata) return; - if (pdata->dsi) { - mipi_dsi_detach(pdata->dsi); - mipi_dsi_device_unregister(pdata->dsi); - } - drm_bridge_remove(&pdata->bridge); of_node_put(pdata->host_node); -- 2.31.1