drm/msm/dpu: fix documentation for intf_type
PATCH v4 1/3 drm/msm/dpu: fix documentation for intf_type
Fix intf_type description in msm_disp_info to show that it represents drm encoder mode of the display.
changes in v3:
- introduced in the series
changes in v4:
- none
--- drivers/gpu/drm/msm/msm_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/msm/msm_drv.h +1 -1
@@ -126,7 +126,7 @@ struct msm_display_topology {/** * struct msm_display_info - defines display properties -* @intf_type: DRM_MODE_CONNECTOR_ display type +* @intf_type: DRM_MODE_ENCODER_ type * @capabilities: Bitmask of display flags * @num_of_h_tiles: Number of horizontal tiles in case of split interface * @h_tile_instance: Controller instance used per tile. Number of elements is
Signature · 7 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
A message that is not in the archive (sent off-list or not yet received): 1545086105-7770-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
PATCH v4 2/3 drm/msm/dpu: handle failures while initializing displays
Bail out KMS hw init on display initialization failures with proper error logging.
changes in v3:
- introduced in the series
changes in v4:
- avoid duplicate return on errors (Sean Paul)
- avoid spamming errors on failures (Jordon Crouse)
--- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-)
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +18 -13
@@ -405,35 +405,38 @@ static void dpu_kms_wait_for_commit_done(struct msm_kms *kms, } } -static void _dpu_kms_initialize_dsi (struct drm_device *dev, +static int _dpu_kms_initialize_dsi (struct drm_device *dev,struct msm_drm_private *priv,struct dpu_kms *dpu_kms) {struct drm_encoder *encoder =NULL ; -int i, rc; +int i, rc =0 ; + +if (!(priv->dsi[0 ] || priv->dsi[1 ])) +return rc;/*TODO: Support two independent DSI connectors */ encoder =dpu_encoder_init (dev,DRM_MODE_ENCODER_DSI ); -if (IS_ERR_OR_NULL (encoder)) { +if (IS_ERR (encoder)) {DPU_ERROR ("encoder init failed for dsi display\n" ); -return ; +return PTR_ERR (encoder); } priv->encoders[priv->num_encoders++] = encoder;for (i =0 ; i <ARRAY_SIZE (priv->dsi); i++) { -if (!priv->dsi[i]) { -DPU_DEBUG ("invalid msm_dsi for ctrl %d\n" , i); -return ; - } +if (!priv->dsi[i]) +continue ; rc =msm_dsi_modeset_init (priv->dsi[i], dev, encoder);if (rc) {DPU_ERROR ("modeset_init failed for dsi[%d], rc = %d\n" , i, rc); -continue ; +break ; } } + +return rc; }/**
@@ -444,16 +447,16 @@ static void _dpu_kms_initialize_dsi(struct drm_device *dev,* @dpu_kms: Pointer to dpu kms structure * Returns: Zero on success */ -static void _dpu_kms_setup_displays (struct drm_device *dev, +static int _dpu_kms_setup_displays (struct drm_device *dev,struct msm_drm_private *priv,struct dpu_kms *dpu_kms) { -_dpu_kms_initialize_dsi (dev, priv, dpu_kms); -/** * Extend this function to initialize other * types of displays */ + +return _dpu_kms_initialize_dsi (dev, priv, dpu_kms); }static void _dpu_kms_drm_obj_destroy (struct dpu_kms *dpu_kms)
@@ -516,7 +519,9 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)* Create encoder and query display drivers to create * bridges and connectors */ -_dpu_kms_setup_displays (dev, priv, dpu_kms); + ret =_dpu_kms_setup_displays (dev, priv, dpu_kms); +if (ret) + goto fail; max_crtc_count =min (catalog->mixer_count, priv->num_encoders);
Signature · 7 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
A message that is not in the archive (sent off-list or not yet received): 1545086105-7770-2-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
Re: [PATCH v4 2/3] drm/msm/dpu: handle failures while initializing displays
Quoted 10 lines · Jeykumar Sankaran
Bail out KMS hw init on display initialization failures with proper error logging.
changes in v3:
- introduced in the series
changes in v4:
- avoid duplicate return on errors (Sean Paul)
- avoid spamming errors on failures (Jordon Crouse)Signed-off-by Jeykumar Sankaran <[email protected]>
Pushed this one too, so just the 3/3 patch should go with Chandan's series
Sean
Quoted 91 lines
--- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-)drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +18
-13@@ -405,35 +405,38 @@ static void dpu_kms_wait_for_commit_done(struct msm_kms *kms, } } -static void _dpu_kms_initialize_dsi (struct drm_device *dev, +static int _dpu_kms_initialize_dsi (struct drm_device *dev,struct msm_drm_private *priv,struct dpu_kms *dpu_kms) {struct drm_encoder *encoder =NULL ; -int i, rc; +int i, rc =0 ; + +if (!(priv->dsi[0 ] || priv->dsi[1 ])) +return rc;/*TODO: Support two independent DSI connectors */ encoder =dpu_encoder_init (dev,DRM_MODE_ENCODER_DSI ); -if (IS_ERR_OR_NULL (encoder)) { +if (IS_ERR (encoder)) {DPU_ERROR ("encoder init failed for dsi display\n" ); -return ; +return PTR_ERR (encoder); } priv->encoders[priv->num_encoders++] = encoder;for (i =0 ; i <ARRAY_SIZE (priv->dsi); i++) { -if (!priv->dsi[i]) { -DPU_DEBUG ("invalid msm_dsi for ctrl %d\n" , i); -return ; - } +if (!priv->dsi[i]) +continue ; rc =msm_dsi_modeset_init (priv->dsi[i], dev, encoder);if (rc) {DPU_ERROR ("modeset_init failed for dsi[%d], rc = %d\n" , i, rc); -continue ; +break ; } } + +return rc; }/** @@ -444,16 +447,16 @@ static void _dpu_kms_initialize_dsi(struct drm_device *dev,* @dpu_kms: Pointer to dpu kms structure * Returns: Zero on success */ -static void _dpu_kms_setup_displays (struct drm_device *dev, +static int _dpu_kms_setup_displays (struct drm_device *dev,struct msm_drm_private *priv,struct dpu_kms *dpu_kms) { -_dpu_kms_initialize_dsi (dev, priv, dpu_kms); -/** * Extend this function to initialize other * types of displays */ + +return _dpu_kms_initialize_dsi (dev, priv, dpu_kms); }static void _dpu_kms_drm_obj_destroy (struct dpu_kms *dpu_kms)@@ -516,7 +519,9 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)* Create encoder and query display drivers to create * bridges and connectors */ -_dpu_kms_setup_displays (dev, priv, dpu_kms); + ret =_dpu_kms_setup_displays (dev, priv, dpu_kms); +if (ret) + goto fail; max_crtc_count =min (catalog->mixer_count, priv->num_encoders);Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Signature · 5 lines
Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
PATCH v4 3/3 drm/msm/dpu: add display port support in DPU
In reply to a message not in the archiveAdd display port support in DPU by creating hooks
for DP encoder enumeration and encoder mode
initialization.
This change is based on the SDM845 Display port
driver changes[1].
changes in v2:
- rebase on [2] (Sean Paul)
- remove unwanted error checks and
switch cases (Jordan Crouse)
changes in v3:
- add dp support after fixing
the current code base for error logging (Sean Paul)
changes in v4:
- avoid duplicate returns (Jordan Crouse)
- get rid of duplicate error logs (Jordan Crouse)
[1] https://lwn.net/Articles/768265/
[2] https://lkml.org/lkml/2018/11/17/87
--- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 8 ++-- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 58 +++++++++++++++++++++++++---- 2 files changed, 54 insertions(+), 12 deletions(-)
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +4 -4
@@ -2031,7 +2031,7 @@ static int dpu_encoder_setup_display(struct dpu_encoder_virt *dpu_enc, {int ret =0 ;int i =0 ; -enum dpu_intf_type intf_type; +enum dpu_intf_type intf_type =INTF_NONE ;struct dpu_enc_phys_init_params phys_params;if (!dpu_enc || !dpu_kms) {
@@ -2054,9 +2054,9 @@ static int dpu_encoder_setup_display(struct dpu_encoder_virt *dpu_enc,case DRM_MODE_ENCODER_DSI : intf_type =INTF_DSI ;break ; -default : -DPU_ERROR_ENC (dpu_enc,"unsupported display interface type\n" ); -return -EINVAL ; +case DRM_MODE_ENCODER_TMDS : + intf_type =INTF_DP ; +break ; }WARN_ON (disp_info->num_of_h_tiles <1 );
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +50 -8
81 lines not on this page · raw message
Signature · 7 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
A message that is not in the archive (sent off-list or not yet received): 1545086105-7770-3-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
kbuild test robot
build botRe: [PATCH v4 3/3] drm/msm/dpu: add display port support in DPU
Thank you for the patch! Yet something to improve:
Hi Jeykumar,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on robclark/msm-next]
[also build test ERROR on v4.20-rc7 next-20181218]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Jeykumar-Sankaran/drm-msm-dpu-fix-documentation-for-intf_type/20181218-070519 base: git://people.freedesktop.org/~robclark/linux msm-next config: arm64-allyesconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=arm64
All errors (new ones prefixed by >>):
drivers/gpu//drm/msm/disp/dpu1/dpu_kms.c: In function '_dpu_kms_initialize_displayport':
>> drivers/gpu//drm/msm/disp/dpu1/dpu_kms.c:449:13: error: 'struct msm_drm_private' has no member named 'dp'; did you mean 'edp'?
if (!priv->dp)
^~
edp
>> drivers/gpu//drm/msm/disp/dpu1/dpu_kms.c:458:7: error: implicit declaration of function 'msm_dp_modeset_init'; did you mean 'msm_edp_modeset_init'? [-Werror=implicit-function-declaration]
rc = msm_dp_modeset_init(priv->dp, dev, encoder);
^~~~~~~~~~~~~~~~~~~
msm_edp_modeset_init
drivers/gpu//drm/msm/disp/dpu1/dpu_kms.c:458:33: error: 'struct msm_drm_private' has no member named 'dp'; did you mean 'edp'?
rc = msm_dp_modeset_init(priv->dp, dev, encoder);
^~
edpcc1: some warnings being treated as errors
vim +449 drivers/gpu//drm/msm/disp/dpu1/dpu_kms.c
441
442 static int _dpu_kms_initialize_displayport(struct drm_device *dev,
443 struct msm_drm_private *priv,
444 struct dpu_kms *dpu_kms)
445 {
446 struct drm_encoder *encoder = NULL;
447 int rc;
448
> 449 if (!priv->dp)
450 return 0;
451
452 encoder = dpu_encoder_init(dev, DRM_MODE_ENCODER_TMDS);
453 if (IS_ERR(encoder)) {
454 DPU_ERROR("encoder init failed for dsi display\n");
455 return PTR_ERR(encoder);
456 }
457
> 458 rc = msm_dp_modeset_init(priv->dp, dev, encoder); 459 if (rc) {
460 DPU_ERROR("modeset_init failed for DP, rc = %d\n", rc);
461 drm_encoder_cleanup(encoder);
462 }
463
464 return rc;
465 }
466
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Freedreno mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [PATCH v4 3/3] drm/msm/dpu: add display port support in DPU
In reply to a message not in the archiveQuoted 102 lines · Jeykumar Sankaran
Add display port support in DPU by creating hooks
for DP encoder enumeration and encoder mode
initialization.This change is based on the SDM845 Display port
driver changes[1].changes in v2:
- rebase on [2] (Sean Paul)
- remove unwanted error checks and
switch cases (Jordan Crouse)
changes in v3:
- add dp support after fixing
the current code base for error logging (Sean Paul)
changes in v4:
- avoid duplicate returns (Jordan Crouse)
- get rid of duplicate error logs (Jordan Crouse)[1] https://lwn.net/Articles/768265/
[2] https://lkml.org/lkml/2018/11/17/87Signed-off-by Jeykumar Sankaran <[email protected]>Reviewed-by Jordan Crouse <[email protected]>Reviewed-by Sean Paul <[email protected]>--- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 8 ++-- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 58 +++++++++++++++++++++++++---- 2 files changed, 54 insertions(+), 12 deletions(-)drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +4
-4@@ -2031,7 +2031,7 @@ static int dpu_encoder_setup_display(struct dpu_encoder_virt *dpu_enc, {int ret =0 ;int i =0 ; -enum dpu_intf_type intf_type; +enum dpu_intf_type intf_type =INTF_NONE ;struct dpu_enc_phys_init_params phys_params;if (!dpu_enc || !dpu_kms) {@@ -2054,9 +2054,9 @@ static int dpu_encoder_setup_display(struct dpu_encoder_virt *dpu_enc,case DRM_MODE_ENCODER_DSI : intf_type =INTF_DSI ;break ; -default : -DPU_ERROR_ENC (dpu_enc,"unsupported display interface type\n" ); -return -EINVAL ; +case DRM_MODE_ENCODER_TMDS : + intf_type =INTF_DP ; +break ; }WARN_ON (disp_info->num_of_h_tiles <1 );drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +32
-0@@ -439,6 +439,31 @@ static int _dpu_kms_initialize_dsi(struct drm_device *dev,return rc; } +static int _dpu_kms_initialize_displayport (struct drm_device *dev, +struct msm_drm_private *priv, +struct dpu_kms *dpu_kms) +{ +struct drm_encoder *encoder =NULL ; +int rc; + +if (!priv->dp) +return 0 ; + + encoder =dpu_encoder_init (dev,DRM_MODE_ENCODER_TMDS ); +if (IS_ERR (encoder)) { +DPU_ERROR ("encoder init failed for dsi display\n" ); +return PTR_ERR (encoder); + } + + rc =msm_dp_modeset_init (priv->dp, dev, encoder); +if (rc) { +DPU_ERROR ("modeset_init failed for DP, rc = %d\n" , rc); +drm_encoder_cleanup (encoder); + } + +return rc; +} +/** * _dpu_kms_setup_displays - create encoders, bridges and connectors * for underlying displays @@ -451,12 +476,22 @@ static int _dpu_kms_setup_displays(struct drm_device *dev,struct msm_drm_private *priv, struct dpu_kms *dpu_kms) { + int rc; + + rc =_dpu_kms_initialize_dsi (dev, priv, dpu_kms); +if (rc) + goto fail; + + rc =_dpu_kms_initialize_displayport (dev, priv, dpu_kms);
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c static int _dpu_kms_setup_displays(struct drm_device *dev, · line 493
Quoted 10 lines
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +4
-2+if (rc) + goto fail; +/** * Extend this function to initialize other * types of displays */ - -return _dpu_kms_initialize_dsi (dev, priv, dpu_kms); +fail:
One more thing, remove this label and just return directly above.
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c static int _dpu_kms_setup_displays(struct drm_device *dev, · line 494
Quoted 1 line
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +1
-0+return rc;
Then this becomes return 0
Quoted 38 lines
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +13
-6}static void _dpu_kms_drm_obj_destroy (struct dpu_kms *dpu_kms)@@ -669,13 +704,20 @@ static void _dpu_kms_set_encoder_mode(struct msm_kms *kms, info.capabilities = cmd_mode ?MSM_DISPLAY_CAP_CMD_MODE :MSM_DISPLAY_CAP_VID_MODE ; -/* TODO: No support for DSI swap */ -for (i =0 ; i <ARRAY_SIZE (priv->dsi); i++) { -if (priv->dsi[i]) { - info.h_tile_instance[info.num_of_h_tiles] = i; - info.num_of_h_tiles++; +switch (info.intf_type) { +case DRM_MODE_ENCODER_DSI : +/* TODO: No support for DSI swap */ +for (i =0 ; i <ARRAY_SIZE (priv->dsi); i++) { +if (priv->dsi[i]) { + info.h_tile_instance[info.num_of_h_tiles] = i; + info.num_of_h_tiles++; + } } - } +break ; +case DRM_MODE_ENCODER_TMDS : + info.num_of_h_tiles =1 ; +break ; + }; rc =dpu_encoder_setup (encoder->dev, encoder, &info);if (rc)Signature · 7 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
Signature · 5 lines
Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
Quoted 9 lines · Jeykumar Sankaran
Fix
intf_typedescription inmsm_disp_infoto show that it represents drm encoder mode of the display.changes in v3:
- introduced in the series
changes in v4:
- noneSigned-off-by Jeykumar Sankaran <[email protected]>
Pushed to dpu-staging. For the DP part of this series, it'd be helpful for Chandan to package it up with his set so it all goes in one bundle. That should also hopefully make kbuildbot happy.
Sean
Quoted 25 lines
--- drivers/gpu/drm/msm/msm_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/gpu/drm/msm/msm_drv.h +1
-1@@ -126,7 +126,7 @@ struct msm_display_topology {/** * struct msm_display_info - defines display properties -* @intf_type: DRM_MODE_CONNECTOR_ display type +* @intf_type: DRM_MODE_ENCODER_ type * @capabilities: Bitmask of display flags * @num_of_h_tiles: Number of horizontal tiles in case of split interface * @h_tile_instance: Controller instance used per tile. Number of elements is Signature · 7 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
Signature · 5 lines
Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel