From: Jeffy Chen <jeffy.chen@rock-chips.com> To: linux-kernel@vger.kernel.org Cc: briannorris@chromium.org, dianders@chromium.org, tfiga@chromium.org, seanpaul@chromium.org, zyw@rock-chips.com, mark.yao@rock-chips.com, Jeffy Chen <jeffy.chen@rock-chips.com>, Heiko Stuebner <heiko@sntech.de>, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, David Airlie <airlied@linux.ie>, linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 06/12] drm/rockchip: cdn-dp: Don't unregister audio dev when unbinding Date: Thu, 6 Apr 2017 20:31:19 +0800 [thread overview] Message-ID: <1491481885-13775-7-git-send-email-jeffy.chen@rock-chips.com> (raw) In-Reply-To: <1491481885-13775-1-git-send-email-jeffy.chen@rock-chips.com> After snd_soc_unregister_codec, the dai link would remain bound to the invalid codec. That would cause crashes after unbind dp driver. Let's unregister audio codec when removing dp driver to prevent that. Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> --- Changes in v5: None Changes in v4: None Changes in v3: Update commit message. Changes in v2: None drivers/gpu/drm/rockchip/cdn-dp-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index ee4195d..a2169dd 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -1092,8 +1092,6 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) goto err_free_connector; } - cdn_dp_audio_codec_init(dp, dev); - for (i = 0; i < dp->ports; i++) { port = dp->port[i]; @@ -1128,7 +1126,6 @@ static void cdn_dp_unbind(struct device *dev, struct device *master, void *data) struct drm_connector *connector = &dp->connector; cancel_work_sync(&dp->event_work); - platform_device_unregister(dp->audio_pdev); cdn_dp_encoder_disable(encoder); encoder->funcs->destroy(encoder); connector->funcs->destroy(connector); @@ -1221,6 +1218,8 @@ static int cdn_dp_probe(struct platform_device *pdev) mutex_init(&dp->lock); dev_set_drvdata(dev, dp); + cdn_dp_audio_codec_init(dp, dev); + return component_add(dev, &cdn_dp_component_ops); } @@ -1228,6 +1227,7 @@ static int cdn_dp_remove(struct platform_device *pdev) { struct cdn_dp_device *dp = platform_get_drvdata(pdev); + platform_device_unregister(dp->audio_pdev); cdn_dp_suspend(dp->dev); component_del(&pdev->dev, &cdn_dp_component_ops); -- 2.1.4
WARNING: multiple messages have this Message-ID (diff)
From: jeffy.chen@rock-chips.com (Jeffy Chen) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 06/12] drm/rockchip: cdn-dp: Don't unregister audio dev when unbinding Date: Thu, 6 Apr 2017 20:31:19 +0800 [thread overview] Message-ID: <1491481885-13775-7-git-send-email-jeffy.chen@rock-chips.com> (raw) In-Reply-To: <1491481885-13775-1-git-send-email-jeffy.chen@rock-chips.com> After snd_soc_unregister_codec, the dai link would remain bound to the invalid codec. That would cause crashes after unbind dp driver. Let's unregister audio codec when removing dp driver to prevent that. Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> --- Changes in v5: None Changes in v4: None Changes in v3: Update commit message. Changes in v2: None drivers/gpu/drm/rockchip/cdn-dp-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index ee4195d..a2169dd 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -1092,8 +1092,6 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) goto err_free_connector; } - cdn_dp_audio_codec_init(dp, dev); - for (i = 0; i < dp->ports; i++) { port = dp->port[i]; @@ -1128,7 +1126,6 @@ static void cdn_dp_unbind(struct device *dev, struct device *master, void *data) struct drm_connector *connector = &dp->connector; cancel_work_sync(&dp->event_work); - platform_device_unregister(dp->audio_pdev); cdn_dp_encoder_disable(encoder); encoder->funcs->destroy(encoder); connector->funcs->destroy(connector); @@ -1221,6 +1218,8 @@ static int cdn_dp_probe(struct platform_device *pdev) mutex_init(&dp->lock); dev_set_drvdata(dev, dp); + cdn_dp_audio_codec_init(dp, dev); + return component_add(dev, &cdn_dp_component_ops); } @@ -1228,6 +1227,7 @@ static int cdn_dp_remove(struct platform_device *pdev) { struct cdn_dp_device *dp = platform_get_drvdata(pdev); + platform_device_unregister(dp->audio_pdev); cdn_dp_suspend(dp->dev); component_del(&pdev->dev, &cdn_dp_component_ops); -- 2.1.4
next prev parent reply other threads:[~2017-04-06 12:33 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-06 12:31 [PATCH v5 00/12] drm: rockchip: Fix rockchip drm unbind crash error Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 01/12] drm: bridge: analogix: Detach panel when unbinding analogix dp Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 02/12] drm: bridge: analogix: Unregister dp aux when unbinding Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 03/12] drm: bridge: analogix: Disable clock " Jeffy Chen 2017-04-07 11:32 ` Andrzej Hajda 2017-04-07 11:32 ` Andrzej Hajda 2017-04-06 12:31 ` [PATCH v5 04/12] drm: bridge: analogix: Destroy connector & encoder " Jeffy Chen 2017-04-07 12:01 ` Andrzej Hajda 2017-04-07 12:01 ` Andrzej Hajda 2017-04-06 12:31 ` [PATCH v5 05/12] drm/rockchip: cdn-dp: Don't try to release firmware when not loaded Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen [this message] 2017-04-06 12:31 ` [PATCH v5 06/12] drm/rockchip: cdn-dp: Don't unregister audio dev when unbinding Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 07/12] drm/rockchip: vop: Enable pm domain before vop_initial Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 08/12] drm/rockchip: vop: Unprepare clocks when unbinding Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 09/12] drm/rockchip: analogix_dp: Disable clock " Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 10/12] drm/rockchip: Reoder drm bind/unbind sequence Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 11/12] drm/rockchip: Shutdown all crtcs when unbinding drm Jeffy Chen 2017-04-06 12:31 ` Jeffy Chen 2017-04-06 12:31 ` [PATCH v5 12/12] drm/drm_ioctl.c: Break ioctl when drm device not registered Jeffy Chen 2017-04-07 7:16 ` Daniel Vetter 2017-04-07 7:16 ` Daniel Vetter 2017-04-07 9:24 ` jeffy 2017-04-07 18:34 ` Daniel Vetter 2017-04-07 18:34 ` Daniel Vetter 2017-04-07 17:36 ` [PATCH v5 00/12] drm: rockchip: Fix rockchip drm unbind crash error Sean Paul 2017-04-07 17:36 ` Sean Paul 2017-04-07 17:36 ` Sean Paul
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1491481885-13775-7-git-send-email-jeffy.chen@rock-chips.com \ --to=jeffy.chen@rock-chips.com \ --cc=airlied@linux.ie \ --cc=briannorris@chromium.org \ --cc=dianders@chromium.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=heiko@sntech.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=mark.yao@rock-chips.com \ --cc=seanpaul@chromium.org \ --cc=tfiga@chromium.org \ --cc=zyw@rock-chips.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.