diff mbox series

[v2,3/3] pwm: pwm-mediatek: Beautify error messages text

Message ID 20220214140339.112500-3-angelogioacchino.delregno@collabora.com
State Accepted
Headers show
Series [v2,1/3] pwm: pwm-mediatek: Simplify error handling with dev_err_probe() | expand

Commit Message

AngeloGioacchino Del Regno Feb. 14, 2022, 2:03 p.m. UTC
As a cherry-on-top cleanup, make error messages clearer to read
by changing instances of "clock: XXXX failed" to a more readable
"Failed to get XXXX clock". Also add "of" to unsupported period
error.

This is purely a cosmetic change; no "real" functional changes.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/pwm/pwm-mediatek.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Macpaul Lin Feb. 15, 2022, 6:47 a.m. UTC | #1
On 2/14/22 10:03 PM, AngeloGioacchino Del Regno wrote:
> As a cherry-on-top cleanup, make error messages clearer to read
> by changing instances of "clock: XXXX failed" to a more readable
> "Failed to get XXXX clock". Also add "of" to unsupported period
> error.
> 
> This is purely a cosmetic change; no "real" functional changes.
> 
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
>   drivers/pwm/pwm-mediatek.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/pwm/pwm-mediatek.c b/drivers/pwm/pwm-mediatek.c
> index 6b39f3d69e41..568b13a48717 100644
> --- a/drivers/pwm/pwm-mediatek.c
> +++ b/drivers/pwm/pwm-mediatek.c
> @@ -146,7 +146,7 @@ static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
>   
>   	if (clkdiv > PWM_CLK_DIV_MAX) {
>   		pwm_mediatek_clk_disable(chip, pwm);
> -		dev_err(chip->dev, "period %d not supported\n", period_ns);
> +		dev_err(chip->dev, "period of %d ns not supported\n", period_ns);
>   		return -EINVAL;
>   	}
>   
> @@ -229,12 +229,12 @@ static int pwm_mediatek_probe(struct platform_device *pdev)
>   	pc->clk_top = devm_clk_get(&pdev->dev, "top");
>   	if (IS_ERR(pc->clk_top))
>   		return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_top),
> -				     "clock: top failed\n");
> +				     "Failed to get top clock\n");
>   
>   	pc->clk_main = devm_clk_get(&pdev->dev, "main");
>   	if (IS_ERR(pc->clk_main))
>   		return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_main),
> -				     "clock: main failed\n");
> +				     "Failed to get main clock\n");
>   
>   	for (i = 0; i < pc->soc->num_pwms; i++) {
>   		char name[8];
> @@ -244,7 +244,7 @@ static int pwm_mediatek_probe(struct platform_device *pdev)
>   		pc->clk_pwms[i] = devm_clk_get(&pdev->dev, name);
>   		if (IS_ERR(pc->clk_pwms[i]))
>   			return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_pwms[i]),
> -					     "clock: %s failed\n", name);
> +					     "Failed to get %s clock\n", name);
>   	}
>   
>   	pc->chip.dev = &pdev->dev;
> 

The format of these debug messages "clock: top" or "clock: main" is  
meant to keep both human and machine's readability at the same time.
This kind of format is much more easier to parse by scripts, which the  
driver's category and sub nodes are separated by delimiters . If a fail  
log has been provided, the script could indicated where the issue might  
exists probably. Device vender, field application engineer, and driver  
maintainer could be able to write and use the error log parser before  
debugging.

I'm not sure if this kind of format will be better. Like, "Failed to get  
clock: %s".

If most people like this kind of solution ("Failed to get clock: %s\n"),  
then you can have the reviewed-by tag.
Thanks!

Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>

Regards, :)
Macpaul Lin
Thierry Reding Feb. 24, 2022, 1:56 p.m. UTC | #2
On Tue, Feb 15, 2022 at 02:47:33PM +0800, Macpaul Lin wrote:
> On 2/14/22 10:03 PM, AngeloGioacchino Del Regno wrote:
> > As a cherry-on-top cleanup, make error messages clearer to read
> > by changing instances of "clock: XXXX failed" to a more readable
> > "Failed to get XXXX clock". Also add "of" to unsupported period
> > error.
> > 
> > This is purely a cosmetic change; no "real" functional changes.
> > 
> > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> > ---
> >   drivers/pwm/pwm-mediatek.c | 8 ++++----
> >   1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/pwm/pwm-mediatek.c b/drivers/pwm/pwm-mediatek.c
> > index 6b39f3d69e41..568b13a48717 100644
> > --- a/drivers/pwm/pwm-mediatek.c
> > +++ b/drivers/pwm/pwm-mediatek.c
> > @@ -146,7 +146,7 @@ static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
> >   	if (clkdiv > PWM_CLK_DIV_MAX) {
> >   		pwm_mediatek_clk_disable(chip, pwm);
> > -		dev_err(chip->dev, "period %d not supported\n", period_ns);
> > +		dev_err(chip->dev, "period of %d ns not supported\n", period_ns);
> >   		return -EINVAL;
> >   	}
> > @@ -229,12 +229,12 @@ static int pwm_mediatek_probe(struct platform_device *pdev)
> >   	pc->clk_top = devm_clk_get(&pdev->dev, "top");
> >   	if (IS_ERR(pc->clk_top))
> >   		return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_top),
> > -				     "clock: top failed\n");
> > +				     "Failed to get top clock\n");
> >   	pc->clk_main = devm_clk_get(&pdev->dev, "main");
> >   	if (IS_ERR(pc->clk_main))
> >   		return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_main),
> > -				     "clock: main failed\n");
> > +				     "Failed to get main clock\n");
> >   	for (i = 0; i < pc->soc->num_pwms; i++) {
> >   		char name[8];
> > @@ -244,7 +244,7 @@ static int pwm_mediatek_probe(struct platform_device *pdev)
> >   		pc->clk_pwms[i] = devm_clk_get(&pdev->dev, name);
> >   		if (IS_ERR(pc->clk_pwms[i]))
> >   			return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_pwms[i]),
> > -					     "clock: %s failed\n", name);
> > +					     "Failed to get %s clock\n", name);
> >   	}
> >   	pc->chip.dev = &pdev->dev;
> > 
> 
> The format of these debug messages "clock: top" or "clock: main" is meant to
> keep both human and machine's readability at the same time.
> This kind of format is much more easier to parse by scripts, which the
> driver's category and sub nodes are separated by delimiters . If a fail log
> has been provided, the script could indicated where the issue might exists
> probably. Device vender, field application engineer, and driver maintainer
> could be able to write and use the error log parser before debugging.

Does such a script truly exist? Given that most error messages don't
follow this format, I would expect it to be only very marginally useful.
Typically the prefix that the dev_printk() variants add is enough
information to deduct where the error happens, at which point it's back
to good old grep to find the matching string to localize exactly.

> I'm not sure if this kind of format will be better. Like, "Failed to get
> clock: %s".
> 
> If most people like this kind of solution ("Failed to get clock: %s\n"),
> then you can have the reviewed-by tag.
> Thanks!
> 
> Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>

I'm going to assume that the scriptability is a theoretical argument, so
I'll take this. Let me know if you do rely on the exact format and I can
drop this again.

Thierry
diff mbox series

Patch

diff --git a/drivers/pwm/pwm-mediatek.c b/drivers/pwm/pwm-mediatek.c
index 6b39f3d69e41..568b13a48717 100644
--- a/drivers/pwm/pwm-mediatek.c
+++ b/drivers/pwm/pwm-mediatek.c
@@ -146,7 +146,7 @@  static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	if (clkdiv > PWM_CLK_DIV_MAX) {
 		pwm_mediatek_clk_disable(chip, pwm);
-		dev_err(chip->dev, "period %d not supported\n", period_ns);
+		dev_err(chip->dev, "period of %d ns not supported\n", period_ns);
 		return -EINVAL;
 	}
 
@@ -229,12 +229,12 @@  static int pwm_mediatek_probe(struct platform_device *pdev)
 	pc->clk_top = devm_clk_get(&pdev->dev, "top");
 	if (IS_ERR(pc->clk_top))
 		return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_top),
-				     "clock: top failed\n");
+				     "Failed to get top clock\n");
 
 	pc->clk_main = devm_clk_get(&pdev->dev, "main");
 	if (IS_ERR(pc->clk_main))
 		return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_main),
-				     "clock: main failed\n");
+				     "Failed to get main clock\n");
 
 	for (i = 0; i < pc->soc->num_pwms; i++) {
 		char name[8];
@@ -244,7 +244,7 @@  static int pwm_mediatek_probe(struct platform_device *pdev)
 		pc->clk_pwms[i] = devm_clk_get(&pdev->dev, name);
 		if (IS_ERR(pc->clk_pwms[i]))
 			return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_pwms[i]),
-					     "clock: %s failed\n", name);
+					     "Failed to get %s clock\n", name);
 	}
 
 	pc->chip.dev = &pdev->dev;