diff mbox series

[v2] drm/panel: samsung-s6d7aa0: use pointer for drm_mode in panel desc struct

Message ID 20230524084324.11840-1-aweber.kernel@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/panel: samsung-s6d7aa0: use pointer for drm_mode in panel desc struct | expand

Commit Message

Artur Weber May 24, 2023, 8:43 a.m. UTC
Fixes compilation issues with older GCC versions and Clang after
changes introduced in commit 6810bb390282 ("drm/panel: Add Samsung
S6D7AA0 panel controller driver"). Tested with GCC 13.1.1, GCC 6.4.0
and Clang 16.0.3.

Fixes the following errors with Clang:

  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:312:14: error: initializer element is not a compile-time constant
          .drm_mode = s6d7aa0_lsl080al02_mode,
                      ^~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:415:14: error: initializer element is not a compile-time constant
          .drm_mode = s6d7aa0_lsl080al03_mode,
                      ^~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:443:14: error: initializer element is not a compile-time constant
          .drm_mode = s6d7aa0_ltl101at01_mode,
                      ^~~~~~~~~~~~~~~~~~~~~~~
  3 errors generated.

Fixes the following errors with GCC:

  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:312:14: error: initializer element is not constant
    .drm_mode = s6d7aa0_lsl080al02_mode,
                ^~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:312:14: note: (near initialization for 's6d7aa0_lsl080al02_desc.drm_mode')
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:415:14: error: initializer element is not constant
    .drm_mode = s6d7aa0_lsl080al03_mode,
                ^~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:415:14: note: (near initialization for 's6d7aa0_lsl080al03_desc.drm_mode')
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:443:14: error: initializer element is not constant
    .drm_mode = s6d7aa0_ltl101at01_mode,
                ^~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:443:14: note: (near initialization for 's6d7aa0_ltl101at01_desc.drm_mode')

Reported-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/lkml/20230523180212.GA1401867@dev-arch.thelio-3990X
Reported-by: kernelci.org bot <bot@kernelci.org>
Link: https://lore.kernel.org/llvm/646c6def.a70a0220.58c1a.903d@mx.google.com
Fixes: 6810bb390282 ("drm/panel: Add Samsung S6D7AA0 panel controller driver")
Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
---
v2: expanded commit message
---
 drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)


base-commit: 37cee4876a45a5c3da79a83d34ed4f3c68548aef

Comments

Neil Armstrong May 24, 2023, 9:41 a.m. UTC | #1
On 24/05/2023 10:43, Artur Weber wrote:
> Fixes compilation issues with older GCC versions and Clang after
> changes introduced in commit 6810bb390282 ("drm/panel: Add Samsung
> S6D7AA0 panel controller driver"). Tested with GCC 13.1.1, GCC 6.4.0
> and Clang 16.0.3.
> 
> Fixes the following errors with Clang:
> 
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:312:14: error: initializer element is not a compile-time constant
>            .drm_mode = s6d7aa0_lsl080al02_mode,
>                        ^~~~~~~~~~~~~~~~~~~~~~~
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:415:14: error: initializer element is not a compile-time constant
>            .drm_mode = s6d7aa0_lsl080al03_mode,
>                        ^~~~~~~~~~~~~~~~~~~~~~~
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:443:14: error: initializer element is not a compile-time constant
>            .drm_mode = s6d7aa0_ltl101at01_mode,
>                        ^~~~~~~~~~~~~~~~~~~~~~~
>    3 errors generated.
> 
> Fixes the following errors with GCC:
> 
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:312:14: error: initializer element is not constant
>      .drm_mode = s6d7aa0_lsl080al02_mode,
>                  ^~~~~~~~~~~~~~~~~~~~~~~
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:312:14: note: (near initialization for 's6d7aa0_lsl080al02_desc.drm_mode')
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:415:14: error: initializer element is not constant
>      .drm_mode = s6d7aa0_lsl080al03_mode,
>                  ^~~~~~~~~~~~~~~~~~~~~~~
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:415:14: note: (near initialization for 's6d7aa0_lsl080al03_desc.drm_mode')
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:443:14: error: initializer element is not constant
>      .drm_mode = s6d7aa0_ltl101at01_mode,
>                  ^~~~~~~~~~~~~~~~~~~~~~~
>    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:443:14: note: (near initialization for 's6d7aa0_ltl101at01_desc.drm_mode')
> 
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Link: https://lore.kernel.org/lkml/20230523180212.GA1401867@dev-arch.thelio-3990X
> Reported-by: kernelci.org bot <bot@kernelci.org>
> Link: https://lore.kernel.org/llvm/646c6def.a70a0220.58c1a.903d@mx.google.com
> Fixes: 6810bb390282 ("drm/panel: Add Samsung S6D7AA0 panel controller driver")
> Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
> ---
> v2: expanded commit message
> ---
>   drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
> index f532aa018428..102e1fc7ee38 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
> @@ -37,7 +37,7 @@ struct s6d7aa0_panel_desc {
>   	unsigned int panel_type;
>   	int (*init_func)(struct s6d7aa0 *ctx);
>   	int (*off_func)(struct s6d7aa0 *ctx);
> -	const struct drm_display_mode drm_mode;
> +	const struct drm_display_mode *drm_mode;
>   	unsigned long mode_flags;
>   	u32 bus_flags;
>   	bool has_backlight;
> @@ -309,7 +309,7 @@ static const struct s6d7aa0_panel_desc s6d7aa0_lsl080al02_desc = {
>   	.panel_type = S6D7AA0_PANEL_LSL080AL02,
>   	.init_func = s6d7aa0_lsl080al02_init,
>   	.off_func = s6d7aa0_lsl080al02_off,
> -	.drm_mode = s6d7aa0_lsl080al02_mode,
> +	.drm_mode = &s6d7aa0_lsl080al02_mode,
>   	.mode_flags = MIPI_DSI_MODE_VSYNC_FLUSH | MIPI_DSI_MODE_VIDEO_NO_HFP,
>   	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
>   
> @@ -412,7 +412,7 @@ static const struct s6d7aa0_panel_desc s6d7aa0_lsl080al03_desc = {
>   	.panel_type = S6D7AA0_PANEL_LSL080AL03,
>   	.init_func = s6d7aa0_lsl080al03_init,
>   	.off_func = s6d7aa0_lsl080al03_off,
> -	.drm_mode = s6d7aa0_lsl080al03_mode,
> +	.drm_mode = &s6d7aa0_lsl080al03_mode,
>   	.mode_flags = MIPI_DSI_MODE_NO_EOT_PACKET,
>   	.bus_flags = 0,
>   
> @@ -440,7 +440,7 @@ static const struct s6d7aa0_panel_desc s6d7aa0_ltl101at01_desc = {
>   	.panel_type = S6D7AA0_PANEL_LTL101AT01,
>   	.init_func = s6d7aa0_lsl080al03_init, /* Similar init to LSL080AL03 */
>   	.off_func = s6d7aa0_lsl080al03_off,
> -	.drm_mode = s6d7aa0_ltl101at01_mode,
> +	.drm_mode = &s6d7aa0_ltl101at01_mode,
>   	.mode_flags = MIPI_DSI_MODE_NO_EOT_PACKET,
>   	.bus_flags = 0,
>   
> @@ -458,7 +458,7 @@ static int s6d7aa0_get_modes(struct drm_panel *panel,
>   	if (!ctx)
>   		return -EINVAL;
>   
> -	mode = drm_mode_duplicate(connector->dev, &ctx->desc->drm_mode);
> +	mode = drm_mode_duplicate(connector->dev, ctx->desc->drm_mode);
>   	if (!mode)
>   		return -ENOMEM;
>   
> 
> base-commit: 37cee4876a45a5c3da79a83d34ed4f3c68548aef

Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Neil Armstrong May 24, 2023, 9:48 a.m. UTC | #2
Hi,

On Wed, 24 May 2023 10:43:24 +0200, Artur Weber wrote:
> Fixes compilation issues with older GCC versions and Clang after
> changes introduced in commit 6810bb390282 ("drm/panel: Add Samsung
> S6D7AA0 panel controller driver"). Tested with GCC 13.1.1, GCC 6.4.0
> and Clang 16.0.3.
> 
> Fixes the following errors with Clang:
> 
> [...]

Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)

[1/1] drm/panel: samsung-s6d7aa0: use pointer for drm_mode in panel desc struct
      https://cgit.freedesktop.org/drm/drm-misc/commit/?id=6a038f0183dd5d3e289f6c1fe6962de9b31f8fd2
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
index f532aa018428..102e1fc7ee38 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
@@ -37,7 +37,7 @@  struct s6d7aa0_panel_desc {
 	unsigned int panel_type;
 	int (*init_func)(struct s6d7aa0 *ctx);
 	int (*off_func)(struct s6d7aa0 *ctx);
-	const struct drm_display_mode drm_mode;
+	const struct drm_display_mode *drm_mode;
 	unsigned long mode_flags;
 	u32 bus_flags;
 	bool has_backlight;
@@ -309,7 +309,7 @@  static const struct s6d7aa0_panel_desc s6d7aa0_lsl080al02_desc = {
 	.panel_type = S6D7AA0_PANEL_LSL080AL02,
 	.init_func = s6d7aa0_lsl080al02_init,
 	.off_func = s6d7aa0_lsl080al02_off,
-	.drm_mode = s6d7aa0_lsl080al02_mode,
+	.drm_mode = &s6d7aa0_lsl080al02_mode,
 	.mode_flags = MIPI_DSI_MODE_VSYNC_FLUSH | MIPI_DSI_MODE_VIDEO_NO_HFP,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
 
@@ -412,7 +412,7 @@  static const struct s6d7aa0_panel_desc s6d7aa0_lsl080al03_desc = {
 	.panel_type = S6D7AA0_PANEL_LSL080AL03,
 	.init_func = s6d7aa0_lsl080al03_init,
 	.off_func = s6d7aa0_lsl080al03_off,
-	.drm_mode = s6d7aa0_lsl080al03_mode,
+	.drm_mode = &s6d7aa0_lsl080al03_mode,
 	.mode_flags = MIPI_DSI_MODE_NO_EOT_PACKET,
 	.bus_flags = 0,
 
@@ -440,7 +440,7 @@  static const struct s6d7aa0_panel_desc s6d7aa0_ltl101at01_desc = {
 	.panel_type = S6D7AA0_PANEL_LTL101AT01,
 	.init_func = s6d7aa0_lsl080al03_init, /* Similar init to LSL080AL03 */
 	.off_func = s6d7aa0_lsl080al03_off,
-	.drm_mode = s6d7aa0_ltl101at01_mode,
+	.drm_mode = &s6d7aa0_ltl101at01_mode,
 	.mode_flags = MIPI_DSI_MODE_NO_EOT_PACKET,
 	.bus_flags = 0,
 
@@ -458,7 +458,7 @@  static int s6d7aa0_get_modes(struct drm_panel *panel,
 	if (!ctx)
 		return -EINVAL;
 
-	mode = drm_mode_duplicate(connector->dev, &ctx->desc->drm_mode);
+	mode = drm_mode_duplicate(connector->dev, ctx->desc->drm_mode);
 	if (!mode)
 		return -ENOMEM;