[v9,1/8] Revert "drm: mipi-dsi: Convert logging to drm_* functions."

Message ID bff523677c65a4a6b1c06152b154cf5651f51d68.1686047727.git.code@siddh.me
State New
Headers
Series drm: Remove usage of deprecated DRM_* macros |

Commit Message

Siddh Raman Pant June 6, 2023, 10:45 a.m. UTC
  This reverts commit 1040e424353f5f4d39f6f3aa8723eb3bd6ea6446.

It used an incorrect way to use drm_* functions. Only drm_device ptrs
should be passed, but the mentioned commit passed mipi_dsi_host ptr.
It worked by accident due to macro magic.

Reported-by: Jani Nikula <jani.nikula@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Siddh Raman Pant <code@siddh.me>
---
 drivers/gpu/drm/drm_mipi_dsi.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
  

Comments

Laurent Pinchart June 6, 2023, 12:55 p.m. UTC | #1
Hi Siddh,

Thank you for the patch.

On Tue, Jun 06, 2023 at 04:15:15PM +0530, Siddh Raman Pant wrote:
> This reverts commit 1040e424353f5f4d39f6f3aa8723eb3bd6ea6446.
> 
> It used an incorrect way to use drm_* functions. Only drm_device ptrs
> should be passed, but the mentioned commit passed mipi_dsi_host ptr.
> It worked by accident due to macro magic.
> 
> Reported-by: Jani Nikula <jani.nikula@linux.intel.com>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Siddh Raman Pant <code@siddh.me>

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Any chance we could prevent this from happening by turning the macros
into inline functions ?

> ---
>  drivers/gpu/drm/drm_mipi_dsi.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
> index 3fd6c733ff4e..a37af4edf394 100644
> --- a/drivers/gpu/drm/drm_mipi_dsi.c
> +++ b/drivers/gpu/drm/drm_mipi_dsi.c
> @@ -33,7 +33,6 @@
>  
>  #include <drm/display/drm_dsc.h>
>  #include <drm/drm_mipi_dsi.h>
> -#include <drm/drm_print.h>
>  
>  #include <video/mipi_display.h>
>  
> @@ -156,18 +155,19 @@ static int mipi_dsi_device_add(struct mipi_dsi_device *dsi)
>  static struct mipi_dsi_device *
>  of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node)
>  {
> +	struct device *dev = host->dev;
>  	struct mipi_dsi_device_info info = { };
>  	int ret;
>  	u32 reg;
>  
>  	if (of_alias_from_compatible(node, info.type, sizeof(info.type)) < 0) {
> -		drm_err(host, "modalias failure on %pOF\n", node);
> +		dev_err(dev, "modalias failure on %pOF\n", node);
>  		return ERR_PTR(-EINVAL);
>  	}
>  
>  	ret = of_property_read_u32(node, "reg", &reg);
>  	if (ret) {
> -		drm_err(host, "device node %pOF has no valid reg property: %d\n",
> +		dev_err(dev, "device node %pOF has no valid reg property: %d\n",
>  			node, ret);
>  		return ERR_PTR(-EINVAL);
>  	}
> @@ -202,21 +202,22 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
>  			      const struct mipi_dsi_device_info *info)
>  {
>  	struct mipi_dsi_device *dsi;
> +	struct device *dev = host->dev;
>  	int ret;
>  
>  	if (!info) {
> -		drm_err(host, "invalid mipi_dsi_device_info pointer\n");
> +		dev_err(dev, "invalid mipi_dsi_device_info pointer\n");
>  		return ERR_PTR(-EINVAL);
>  	}
>  
>  	if (info->channel > 3) {
> -		drm_err(host, "invalid virtual channel: %u\n", info->channel);
> +		dev_err(dev, "invalid virtual channel: %u\n", info->channel);
>  		return ERR_PTR(-EINVAL);
>  	}
>  
>  	dsi = mipi_dsi_device_alloc(host);
>  	if (IS_ERR(dsi)) {
> -		drm_err(host, "failed to allocate DSI device %ld\n",
> +		dev_err(dev, "failed to allocate DSI device %ld\n",
>  			PTR_ERR(dsi));
>  		return dsi;
>  	}
> @@ -227,7 +228,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
>  
>  	ret = mipi_dsi_device_add(dsi);
>  	if (ret) {
> -		drm_err(host, "failed to add DSI device %d\n", ret);
> +		dev_err(dev, "failed to add DSI device %d\n", ret);
>  		kfree(dsi);
>  		return ERR_PTR(ret);
>  	}
>
  
Jani Nikula June 6, 2023, 1:07 p.m. UTC | #2
On Tue, 06 Jun 2023, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:
> Hi Siddh,
>
> Thank you for the patch.
>
> On Tue, Jun 06, 2023 at 04:15:15PM +0530, Siddh Raman Pant wrote:
>> This reverts commit 1040e424353f5f4d39f6f3aa8723eb3bd6ea6446.
>> 
>> It used an incorrect way to use drm_* functions. Only drm_device ptrs
>> should be passed, but the mentioned commit passed mipi_dsi_host ptr.
>> It worked by accident due to macro magic.
>> 
>> Reported-by: Jani Nikula <jani.nikula@linux.intel.com>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Siddh Raman Pant <code@siddh.me>
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
>
> Any chance we could prevent this from happening by turning the macros
> into inline functions ?

Patch 2 adds static inline struct device *__drm_dev_ptr(const struct
drm_device *drm) which should tackle this.

BR,
Jani.

>
>> ---
>>  drivers/gpu/drm/drm_mipi_dsi.c | 15 ++++++++-------
>>  1 file changed, 8 insertions(+), 7 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
>> index 3fd6c733ff4e..a37af4edf394 100644
>> --- a/drivers/gpu/drm/drm_mipi_dsi.c
>> +++ b/drivers/gpu/drm/drm_mipi_dsi.c
>> @@ -33,7 +33,6 @@
>>  
>>  #include <drm/display/drm_dsc.h>
>>  #include <drm/drm_mipi_dsi.h>
>> -#include <drm/drm_print.h>
>>  
>>  #include <video/mipi_display.h>
>>  
>> @@ -156,18 +155,19 @@ static int mipi_dsi_device_add(struct mipi_dsi_device *dsi)
>>  static struct mipi_dsi_device *
>>  of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node)
>>  {
>> +	struct device *dev = host->dev;
>>  	struct mipi_dsi_device_info info = { };
>>  	int ret;
>>  	u32 reg;
>>  
>>  	if (of_alias_from_compatible(node, info.type, sizeof(info.type)) < 0) {
>> -		drm_err(host, "modalias failure on %pOF\n", node);
>> +		dev_err(dev, "modalias failure on %pOF\n", node);
>>  		return ERR_PTR(-EINVAL);
>>  	}
>>  
>>  	ret = of_property_read_u32(node, "reg", &reg);
>>  	if (ret) {
>> -		drm_err(host, "device node %pOF has no valid reg property: %d\n",
>> +		dev_err(dev, "device node %pOF has no valid reg property: %d\n",
>>  			node, ret);
>>  		return ERR_PTR(-EINVAL);
>>  	}
>> @@ -202,21 +202,22 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
>>  			      const struct mipi_dsi_device_info *info)
>>  {
>>  	struct mipi_dsi_device *dsi;
>> +	struct device *dev = host->dev;
>>  	int ret;
>>  
>>  	if (!info) {
>> -		drm_err(host, "invalid mipi_dsi_device_info pointer\n");
>> +		dev_err(dev, "invalid mipi_dsi_device_info pointer\n");
>>  		return ERR_PTR(-EINVAL);
>>  	}
>>  
>>  	if (info->channel > 3) {
>> -		drm_err(host, "invalid virtual channel: %u\n", info->channel);
>> +		dev_err(dev, "invalid virtual channel: %u\n", info->channel);
>>  		return ERR_PTR(-EINVAL);
>>  	}
>>  
>>  	dsi = mipi_dsi_device_alloc(host);
>>  	if (IS_ERR(dsi)) {
>> -		drm_err(host, "failed to allocate DSI device %ld\n",
>> +		dev_err(dev, "failed to allocate DSI device %ld\n",
>>  			PTR_ERR(dsi));
>>  		return dsi;
>>  	}
>> @@ -227,7 +228,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
>>  
>>  	ret = mipi_dsi_device_add(dsi);
>>  	if (ret) {
>> -		drm_err(host, "failed to add DSI device %d\n", ret);
>> +		dev_err(dev, "failed to add DSI device %d\n", ret);
>>  		kfree(dsi);
>>  		return ERR_PTR(ret);
>>  	}
>>
  
Siddh Raman Pant June 6, 2023, 1:21 p.m. UTC | #3
On Tue, 06 Jun 2023 18:25:37 +0530, Laurent Pinchart wrote:
> Hi Siddh,
> 
> Thank you for the patch.

Anytime :)

> Any chance we could prevent this from happening by turning the macros
> into inline functions ?

The next patch in the series almost does that, with a function introduced
as Jani mentioned. The macros will call that function, so if the argument
is not drm_device there will be error.

Thanks,
Siddh
  

Patch

diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
index 3fd6c733ff4e..a37af4edf394 100644
--- a/drivers/gpu/drm/drm_mipi_dsi.c
+++ b/drivers/gpu/drm/drm_mipi_dsi.c
@@ -33,7 +33,6 @@ 
 
 #include <drm/display/drm_dsc.h>
 #include <drm/drm_mipi_dsi.h>
-#include <drm/drm_print.h>
 
 #include <video/mipi_display.h>
 
@@ -156,18 +155,19 @@  static int mipi_dsi_device_add(struct mipi_dsi_device *dsi)
 static struct mipi_dsi_device *
 of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node)
 {
+	struct device *dev = host->dev;
 	struct mipi_dsi_device_info info = { };
 	int ret;
 	u32 reg;
 
 	if (of_alias_from_compatible(node, info.type, sizeof(info.type)) < 0) {
-		drm_err(host, "modalias failure on %pOF\n", node);
+		dev_err(dev, "modalias failure on %pOF\n", node);
 		return ERR_PTR(-EINVAL);
 	}
 
 	ret = of_property_read_u32(node, "reg", &reg);
 	if (ret) {
-		drm_err(host, "device node %pOF has no valid reg property: %d\n",
+		dev_err(dev, "device node %pOF has no valid reg property: %d\n",
 			node, ret);
 		return ERR_PTR(-EINVAL);
 	}
@@ -202,21 +202,22 @@  mipi_dsi_device_register_full(struct mipi_dsi_host *host,
 			      const struct mipi_dsi_device_info *info)
 {
 	struct mipi_dsi_device *dsi;
+	struct device *dev = host->dev;
 	int ret;
 
 	if (!info) {
-		drm_err(host, "invalid mipi_dsi_device_info pointer\n");
+		dev_err(dev, "invalid mipi_dsi_device_info pointer\n");
 		return ERR_PTR(-EINVAL);
 	}
 
 	if (info->channel > 3) {
-		drm_err(host, "invalid virtual channel: %u\n", info->channel);
+		dev_err(dev, "invalid virtual channel: %u\n", info->channel);
 		return ERR_PTR(-EINVAL);
 	}
 
 	dsi = mipi_dsi_device_alloc(host);
 	if (IS_ERR(dsi)) {
-		drm_err(host, "failed to allocate DSI device %ld\n",
+		dev_err(dev, "failed to allocate DSI device %ld\n",
 			PTR_ERR(dsi));
 		return dsi;
 	}
@@ -227,7 +228,7 @@  mipi_dsi_device_register_full(struct mipi_dsi_host *host,
 
 	ret = mipi_dsi_device_add(dsi);
 	if (ret) {
-		drm_err(host, "failed to add DSI device %d\n", ret);
+		dev_err(dev, "failed to add DSI device %d\n", ret);
 		kfree(dsi);
 		return ERR_PTR(ret);
 	}