Hi, At 2025-01-23 20:27:50, "Jani Nikula" <jani.nik...@linux.intel.com> wrote: >On Wed, 22 Jan 2025, Damon Ding <damon.d...@rock-chips.com> wrote: >> Hi Andy, >> >> On 2025/1/9 14:28, Andy Yan wrote: >>> >>> Hi Damon, >>> >>> At 2025-01-09 11:27:10, "Damon Ding" <damon.d...@rock-chips.com> wrote: >>>> According to the comments in include/drm/drm_print.h, the DRM_...() >>>> functions are deprecated in favor of drm_...() or dev_...() functions. >>>> >>>> Use drm_err()/drm_dbg_core()/drm_dbg_kms() instead of >>>> DRM_DEV_ERROR()/DRM_ERROR()/DRM_DEV_DEBUG()/DRM_DEBUG_KMS() after >>>> rockchip_dp_bind() is called, and replace DRM_DEV_ERROR() with dev_err() >>>> before calling it. >>>> >>>> Signed-off-by: Damon Ding <damon.d...@rock-chips.com> >>>> --- >>>> .../gpu/drm/rockchip/analogix_dp-rockchip.c | 29 ++++++++++--------- >>>> 1 file changed, 15 insertions(+), 14 deletions(-) >>>> >>>> diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c >>>> b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c >>>> index 546d13f19f9b..8114c3238609 100644 >>>> --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c >>>> +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c >>>> @@ -100,13 +100,13 @@ static int rockchip_dp_poweron(struct >>>> analogix_dp_plat_data *plat_data) >>>> >>>> ret = clk_prepare_enable(dp->pclk); >>>> if (ret < 0) { >>>> - DRM_DEV_ERROR(dp->dev, "failed to enable pclk %d\n", ret); >>>> + drm_err(dp->drm_dev, "failed to enable pclk %d\n", ret); >>> >>> You just need to pass dp here: >>> drm_err(dp, "failed to enable pclk %d\n", ret); >>> >> >> I see. It is really better to pass dp instead of dp->drm_dev. I will >> update all relevant logs in the next version. > >No, this was bad review feedback. You're absolutely expected to pass >struct drm_device to drm_err() and friends.
No, I didn't see how the drm_err macro and friends restrict/expect the passing of only the drm_device pointer. As for the platform device driver itself, we hope that when an error occurs, the log clearly indicates the specific device that the log corresponds to, rather than a generic drm_device. The original code of this driver used the macro related to DRM_DEV_ERROR to do just that. And similar patches have been merged before Please also refer to the discussion here.[0] [0]https://lore.kernel.org/linux-rockchip/20250109032725.1102465-1-damon.d...@rock-chips.com/T/#m54bd842be660031773834cedea6c73a5033ca973 > >BR, >Jani. > > >> >>>> return ret; >>>> } >>>> >>>> ret = rockchip_dp_pre_init(dp); >>>> if (ret < 0) { >>>> - DRM_DEV_ERROR(dp->dev, "failed to dp pre init %d\n", ret); >>>> + drm_err(dp->drm_dev, "failed to dp pre init %d\n", ret); >>>> clk_disable_unprepare(dp->pclk); >>>> return ret; >>>> } >>>> @@ -126,12 +126,13 @@ static int rockchip_dp_powerdown(struct >>>> analogix_dp_plat_data *plat_data) >>>> static int rockchip_dp_get_modes(struct analogix_dp_plat_data *plat_data, >>>> struct drm_connector *connector) >>>> { >>>> + struct rockchip_dp_device *dp = pdata_encoder_to_dp(plat_data); >>>> struct drm_display_info *di = &connector->display_info; >>>> /* VOP couldn't output YUV video format for eDP rightly */ >>>> u32 mask = DRM_COLOR_FORMAT_YCBCR444 | DRM_COLOR_FORMAT_YCBCR422; >>>> >>>> if ((di->color_formats & mask)) { >>>> - DRM_DEBUG_KMS("Swapping display color format from YUV to >>>> RGB\n"); >>>> + drm_dbg_kms(dp->drm_dev, "Swapping display color format from >>>> YUV to RGB\n"); >>>> di->color_formats &= ~mask; >>>> di->color_formats |= DRM_COLOR_FORMAT_RGB444; >>>> di->bpc = 8; >>>> @@ -201,17 +202,17 @@ static void rockchip_dp_drm_encoder_enable(struct >>>> drm_encoder *encoder, >>>> else >>>> val = dp->data->lcdsel_big; >>>> >>>> - DRM_DEV_DEBUG(dp->dev, "vop %s output to dp\n", (ret) ? "LIT" : "BIG"); >>>> + drm_dbg_core(dp->drm_dev, "vop %s output to dp\n", (ret) ? "LIT" : >>>> "BIG"); >>>> >>>> ret = clk_prepare_enable(dp->grfclk); >>>> if (ret < 0) { >>>> - DRM_DEV_ERROR(dp->dev, "failed to enable grfclk %d\n", ret); >>>> + drm_err(dp->drm_dev, "failed to enable grfclk %d\n", ret); >>>> return; >>>> } >>>> >>>> ret = regmap_write(dp->grf, dp->data->lcdsel_grf_reg, val); >>>> if (ret != 0) >>>> - DRM_DEV_ERROR(dp->dev, "Could not write to GRF: %d\n", ret); >>>> + drm_err(dp->drm_dev, "Could not write to GRF: %d\n", ret); >>>> >>>> clk_disable_unprepare(dp->grfclk); >>>> } >>>> @@ -236,7 +237,7 @@ static void rockchip_dp_drm_encoder_disable(struct >>>> drm_encoder *encoder, >>>> >>>> ret = rockchip_drm_wait_vact_end(crtc, PSR_WAIT_LINE_FLAG_TIMEOUT_MS); >>>> if (ret) >>>> - DRM_DEV_ERROR(dp->dev, "line flag irq timed out\n"); >>>> + drm_err(dp->drm_dev, "line flag irq timed out\n"); >>>> } >>>> >>>> static int >>>> @@ -277,7 +278,7 @@ static int rockchip_dp_of_probe(struct >>>> rockchip_dp_device *dp) >>>> >>>> dp->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); >>>> if (IS_ERR(dp->grf)) { >>>> - DRM_DEV_ERROR(dev, "failed to get rockchip,grf property\n"); >>>> + dev_err(dev, "failed to get rockchip,grf property\n"); >>>> return PTR_ERR(dp->grf); >>>> } >>>> >>>> @@ -287,19 +288,19 @@ static int rockchip_dp_of_probe(struct >>>> rockchip_dp_device *dp) >>>> } else if (PTR_ERR(dp->grfclk) == -EPROBE_DEFER) { >>>> return -EPROBE_DEFER; >>>> } else if (IS_ERR(dp->grfclk)) { >>>> - DRM_DEV_ERROR(dev, "failed to get grf clock\n"); >>>> + dev_err(dev, "failed to get grf clock\n"); >>>> return PTR_ERR(dp->grfclk); >>>> } >>>> >>>> dp->pclk = devm_clk_get(dev, "pclk"); >>>> if (IS_ERR(dp->pclk)) { >>>> - DRM_DEV_ERROR(dev, "failed to get pclk property\n"); >>>> + dev_err(dev, "failed to get pclk property\n"); >>>> return PTR_ERR(dp->pclk); >>>> } >>>> >>>> dp->rst = devm_reset_control_get(dev, "dp"); >>>> if (IS_ERR(dp->rst)) { >>>> - DRM_DEV_ERROR(dev, "failed to get dp reset control\n"); >>>> + dev_err(dev, "failed to get dp reset control\n"); >>>> return PTR_ERR(dp->rst); >>>> } >>>> >>>> @@ -315,12 +316,12 @@ static int rockchip_dp_drm_create_encoder(struct >>>> rockchip_dp_device *dp) >>>> >>>> encoder->possible_crtcs = drm_of_find_possible_crtcs(drm_dev, >>>> dev->of_node); >>>> - DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); >>>> + drm_dbg_kms(drm_dev, "possible_crtcs = 0x%x\n", >>>> encoder->possible_crtcs); >>>> >>>> ret = drm_simple_encoder_init(drm_dev, encoder, >>>> DRM_MODE_ENCODER_TMDS); >>>> if (ret) { >>>> - DRM_ERROR("failed to initialize encoder with drm\n"); >>>> + drm_err(drm_dev, "failed to initialize encoder with drm\n"); >>>> return ret; >>>> } >>>> >>>> @@ -340,7 +341,7 @@ static int rockchip_dp_bind(struct device *dev, struct >>>> device *master, >>>> >>>> ret = rockchip_dp_drm_create_encoder(dp); >>>> if (ret) { >>>> - DRM_ERROR("failed to create drm encoder\n"); >>>> + drm_err(drm_dev, "failed to create drm encoder\n"); >>>> return ret; >>>> } >>>> >>>> -- >>>> 2.34.1 >>>> >> >> Best regards, >> Damon > >-- >Jani Nikula, Intel