* [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
* [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
* [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
* 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 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 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
* 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
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