* [PATCH 0/3] A few fixes for 4.7
@ 2016-05-09 2:32 Xinliang Liu
2016-05-09 2:32 ` [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all Xinliang Liu
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Xinliang Liu @ 2016-05-09 2:32 UTC (permalink / raw)
To: dri-devel; +Cc: daniel.vetter, juha_efku, daniel.vetter
These fixes are found and fixed recently when hisilicon pull request
for 4.7 is merged into drm-next.
Thanks to Daniel Vetter and Juha Leppänen, who point out the things to
be fixed.
Xinliang Liu (3):
drm/hisilicon: Use drm_connector_register_all
drm/hisilicon: Make kirin_drm_unbind sufficient
drm/hisilicon: Fix no DRM_INFO is printed issue
drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 3 +-
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 38 +++++--------------------
2 files changed, 9 insertions(+), 32 deletions(-)
--
2.8.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all 2016-05-09 2:32 [PATCH 0/3] A few fixes for 4.7 Xinliang Liu @ 2016-05-09 2:32 ` Xinliang Liu 2016-05-09 6:43 ` Daniel Vetter 2016-05-09 2:32 ` [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient Xinliang Liu 2016-05-09 2:32 ` [PATCH 3/3] drm/hisilicon: Fix no DRM_INFO is printed issue Xinliang Liu 2 siblings, 1 reply; 8+ messages in thread From: Xinliang Liu @ 2016-05-09 2:32 UTC (permalink / raw) To: dri-devel; +Cc: daniel.vetter, juha_efku, daniel.vetter Use drm_connector_register_all helper to register connectors. Thanks to Daniel Vetter, this patch is raised by him. Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 31 +------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c index e102c9e1e7b2..bc410ee584b7 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c @@ -201,35 +201,6 @@ static int compare_of(struct device *dev, void *data) return dev->of_node == data; } -static int kirin_drm_connectors_register(struct drm_device *dev) -{ - struct drm_connector *connector; - struct drm_connector *failed_connector; - int ret; - - mutex_lock(&dev->mode_config.mutex); - drm_for_each_connector(connector, dev) { - ret = drm_connector_register(connector); - if (ret) { - failed_connector = connector; - goto err; - } - } - mutex_unlock(&dev->mode_config.mutex); - - return 0; - -err: - drm_for_each_connector(connector, dev) { - if (failed_connector == connector) - break; - drm_connector_unregister(connector); - } - mutex_unlock(&dev->mode_config.mutex); - - return ret; -} - static int kirin_drm_bind(struct device *dev) { struct drm_driver *driver = &kirin_drm_driver; @@ -251,7 +222,7 @@ static int kirin_drm_bind(struct device *dev) goto err_kms_cleanup; /* connectors should be registered after drm device register */ - ret = kirin_drm_connectors_register(drm_dev); + ret = drm_connector_register_all(drm_dev); if (ret) goto err_drm_dev_unregister; -- 2.8.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all 2016-05-09 2:32 ` [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all Xinliang Liu @ 2016-05-09 6:43 ` Daniel Vetter 2016-05-09 13:54 ` Xinliang Liu 0 siblings, 1 reply; 8+ messages in thread From: Daniel Vetter @ 2016-05-09 6:43 UTC (permalink / raw) To: Xinliang Liu; +Cc: daniel.vetter, juha_efku, dri-devel, daniel.vetter On Mon, May 09, 2016 at 10:32:06AM +0800, Xinliang Liu wrote: > Use drm_connector_register_all helper to register connectors. > Thanks to Daniel Vetter, this patch is raised by him. > > Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Seems like exactly my patch, except you've taken over authorship. Please merge mine instead (except when there's a bug). -Daniel > --- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 31 +------------------------ > 1 file changed, 1 insertion(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index e102c9e1e7b2..bc410ee584b7 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -201,35 +201,6 @@ static int compare_of(struct device *dev, void *data) > return dev->of_node == data; > } > > -static int kirin_drm_connectors_register(struct drm_device *dev) > -{ > - struct drm_connector *connector; > - struct drm_connector *failed_connector; > - int ret; > - > - mutex_lock(&dev->mode_config.mutex); > - drm_for_each_connector(connector, dev) { > - ret = drm_connector_register(connector); > - if (ret) { > - failed_connector = connector; > - goto err; > - } > - } > - mutex_unlock(&dev->mode_config.mutex); > - > - return 0; > - > -err: > - drm_for_each_connector(connector, dev) { > - if (failed_connector == connector) > - break; > - drm_connector_unregister(connector); > - } > - mutex_unlock(&dev->mode_config.mutex); > - > - return ret; > -} > - > static int kirin_drm_bind(struct device *dev) > { > struct drm_driver *driver = &kirin_drm_driver; > @@ -251,7 +222,7 @@ static int kirin_drm_bind(struct device *dev) > goto err_kms_cleanup; > > /* connectors should be registered after drm device register */ > - ret = kirin_drm_connectors_register(drm_dev); > + ret = drm_connector_register_all(drm_dev); > if (ret) > goto err_drm_dev_unregister; > > -- > 2.8.2 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all 2016-05-09 6:43 ` Daniel Vetter @ 2016-05-09 13:54 ` Xinliang Liu 0 siblings, 0 replies; 8+ messages in thread From: Xinliang Liu @ 2016-05-09 13:54 UTC (permalink / raw) To: Daniel Vetter; +Cc: Daniel Vetter, Juha Leppänen, dri-devel, Daniel Vetter On 9 May 2016 at 14:43, Daniel Vetter <daniel@ffwll.ch> wrote: > On Mon, May 09, 2016 at 10:32:06AM +0800, Xinliang Liu wrote: >> Use drm_connector_register_all helper to register connectors. >> Thanks to Daniel Vetter, this patch is raised by him. >> >> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> >> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > > Seems like exactly my patch, except you've taken over authorship. Please > merge mine instead (except when there's a bug). OK, I will merge yours instead. Thanks, -xinliang > -Daniel > >> --- >> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 31 +------------------------ >> 1 file changed, 1 insertion(+), 30 deletions(-) >> >> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> index e102c9e1e7b2..bc410ee584b7 100644 >> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> @@ -201,35 +201,6 @@ static int compare_of(struct device *dev, void *data) >> return dev->of_node == data; >> } >> >> -static int kirin_drm_connectors_register(struct drm_device *dev) >> -{ >> - struct drm_connector *connector; >> - struct drm_connector *failed_connector; >> - int ret; >> - >> - mutex_lock(&dev->mode_config.mutex); >> - drm_for_each_connector(connector, dev) { >> - ret = drm_connector_register(connector); >> - if (ret) { >> - failed_connector = connector; >> - goto err; >> - } >> - } >> - mutex_unlock(&dev->mode_config.mutex); >> - >> - return 0; >> - >> -err: >> - drm_for_each_connector(connector, dev) { >> - if (failed_connector == connector) >> - break; >> - drm_connector_unregister(connector); >> - } >> - mutex_unlock(&dev->mode_config.mutex); >> - >> - return ret; >> -} >> - >> static int kirin_drm_bind(struct device *dev) >> { >> struct drm_driver *driver = &kirin_drm_driver; >> @@ -251,7 +222,7 @@ static int kirin_drm_bind(struct device *dev) >> goto err_kms_cleanup; >> >> /* connectors should be registered after drm device register */ >> - ret = kirin_drm_connectors_register(drm_dev); >> + ret = drm_connector_register_all(drm_dev); >> if (ret) >> goto err_drm_dev_unregister; >> >> -- >> 2.8.2 >> > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient 2016-05-09 2:32 [PATCH 0/3] A few fixes for 4.7 Xinliang Liu 2016-05-09 2:32 ` [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all Xinliang Liu @ 2016-05-09 2:32 ` Xinliang Liu 2016-05-09 6:44 ` Daniel Vetter 2016-05-09 2:32 ` [PATCH 3/3] drm/hisilicon: Fix no DRM_INFO is printed issue Xinliang Liu 2 siblings, 1 reply; 8+ messages in thread From: Xinliang Liu @ 2016-05-09 2:32 UTC (permalink / raw) To: dri-devel; +Cc: daniel.vetter, juha_efku, daniel.vetter Remove deprecated drm_put_dev. Clean up everything needed in unbind. Thanks to Daniel Vetter, this issue is reported by him. Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> Reported-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c index bc410ee584b7..3f94785fbcca 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c @@ -244,7 +244,12 @@ err_drm_dev_unref: static void kirin_drm_unbind(struct device *dev) { - drm_put_dev(dev_get_drvdata(dev)); + struct drm_device *drm_dev = dev_get_drvdata(dev); + + drm_connector_unregister_all(drm_dev); + drm_dev_unregister(drm_dev); + kirin_drm_kms_cleanup(drm_dev); + drm_dev_unref(drm_dev); } static const struct component_master_ops kirin_drm_ops = { -- 2.8.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient 2016-05-09 2:32 ` [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient Xinliang Liu @ 2016-05-09 6:44 ` Daniel Vetter 2016-05-10 2:24 ` Xinliang Liu 0 siblings, 1 reply; 8+ messages in thread From: Daniel Vetter @ 2016-05-09 6:44 UTC (permalink / raw) To: Xinliang Liu; +Cc: daniel.vetter, juha_efku, dri-devel, daniel.vetter On Mon, May 09, 2016 at 10:32:07AM +0800, Xinliang Liu wrote: > Remove deprecated drm_put_dev. > Clean up everything needed in unbind. > Thanks to Daniel Vetter, this issue is reported by him. > > Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> > Reported-by: Daniel Vetter <daniel.vetter@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index bc410ee584b7..3f94785fbcca 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -244,7 +244,12 @@ err_drm_dev_unref: > > static void kirin_drm_unbind(struct device *dev) > { > - drm_put_dev(dev_get_drvdata(dev)); > + struct drm_device *drm_dev = dev_get_drvdata(dev); > + > + drm_connector_unregister_all(drm_dev); > + drm_dev_unregister(drm_dev); > + kirin_drm_kms_cleanup(drm_dev); > + drm_dev_unref(drm_dev); > } > > static const struct component_master_ops kirin_drm_ops = { > -- > 2.8.2 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient 2016-05-09 6:44 ` Daniel Vetter @ 2016-05-10 2:24 ` Xinliang Liu 0 siblings, 0 replies; 8+ messages in thread From: Xinliang Liu @ 2016-05-10 2:24 UTC (permalink / raw) To: Daniel Vetter; +Cc: Daniel Vetter, Juha Leppänen, dri-devel, Daniel Vetter On 9 May 2016 at 14:44, Daniel Vetter <daniel@ffwll.ch> wrote: > On Mon, May 09, 2016 at 10:32:07AM +0800, Xinliang Liu wrote: >> Remove deprecated drm_put_dev. >> Clean up everything needed in unbind. >> Thanks to Daniel Vetter, this issue is reported by him. >> >> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> >> Reported-by: Daniel Vetter <daniel.vetter@intel.com> > > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Thanks, Daniel. -xinliang >> --- >> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> index bc410ee584b7..3f94785fbcca 100644 >> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> @@ -244,7 +244,12 @@ err_drm_dev_unref: >> >> static void kirin_drm_unbind(struct device *dev) >> { >> - drm_put_dev(dev_get_drvdata(dev)); >> + struct drm_device *drm_dev = dev_get_drvdata(dev); >> + >> + drm_connector_unregister_all(drm_dev); >> + drm_dev_unregister(drm_dev); >> + kirin_drm_kms_cleanup(drm_dev); >> + drm_dev_unref(drm_dev); >> } >> >> static const struct component_master_ops kirin_drm_ops = { >> -- >> 2.8.2 >> > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] drm/hisilicon: Fix no DRM_INFO is printed issue 2016-05-09 2:32 [PATCH 0/3] A few fixes for 4.7 Xinliang Liu 2016-05-09 2:32 ` [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all Xinliang Liu 2016-05-09 2:32 ` [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient Xinliang Liu @ 2016-05-09 2:32 ` Xinliang Liu 2 siblings, 0 replies; 8+ messages in thread From: Xinliang Liu @ 2016-05-09 2:32 UTC (permalink / raw) To: dri-devel; +Cc: daniel.vetter, juha_efku, daniel.vetter This patch fixed the bellow no DRM_INFO is printed issue: if (!delay_count) DRM_INFO("phylock and phystopstateclklane is not ready.\n"); The above info will not printed, under certain circumstances: If ((BIT(0) | BIT(2)) & val) is never true, break will not happen and delay_count will be max u32 value (?), and no DRM_INFO is printed. Also if ((BIT(0) | BIT(2)) & val) is true at the last possible loop round, break happens, but now delay_count is already zero ( because of earlier delay_count-- ) and DRM_INFO is erroneously printed. Thanks to Juha Leppänen, he reports to me this issue. Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> Reported-by: Juha Leppänen <juha_efku@dnainternet.net> --- drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c b/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c index bfbc2159250d..998452ad0fcb 100644 --- a/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c +++ b/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c @@ -430,12 +430,13 @@ static void dsi_set_mipi_phy(void __iomem *base, * wait for phy's clock ready */ delay_count = 100; - while (delay_count--) { + while (delay_count) { val = readl(base + PHY_STATUS); if ((BIT(0) | BIT(2)) & val) break; udelay(1); + delay_count--; } if (!delay_count) -- 2.8.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-05-10 2:25 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-05-09 2:32 [PATCH 0/3] A few fixes for 4.7 Xinliang Liu 2016-05-09 2:32 ` [PATCH 1/3] drm/hisilicon: Use drm_connector_register_all Xinliang Liu 2016-05-09 6:43 ` Daniel Vetter 2016-05-09 13:54 ` Xinliang Liu 2016-05-09 2:32 ` [PATCH 2/3] drm/hisilicon: Make kirin_drm_unbind sufficient Xinliang Liu 2016-05-09 6:44 ` Daniel Vetter 2016-05-10 2:24 ` Xinliang Liu 2016-05-09 2:32 ` [PATCH 3/3] drm/hisilicon: Fix no DRM_INFO is printed issue Xinliang Liu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox