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 |
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>
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 --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;
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