[PATCH v5 2/3] drm/panel: Add Samsung S6D7AA0 panel controller driver

Artur Weber aweber.kernel at gmail.com
Tue May 23 21:26:00 UTC 2023


Hi,

On 23/05/2023 20:02, Nathan Chancellor wrote:
> Hi Artur,
> 
> On Fri, May 19, 2023 at 07:03:53PM +0200, Artur Weber wrote:
>> Initial driver for S6D7AA0-controlled panels. Currently, the following
>> panels are supported:
>>
>>  - S6D7AA0-LSL080AL02 (Samsung Galaxy Tab 3 8.0)
>>  - S6D7AA0-LSL080AL03 (Samsung Galaxy Tab A 8.0 2015)
>>  - S6D7AA0-LTL101AT01 (Samsung Galaxy Tab A 9.7 2015)
>>
>> It should be possible to extend this driver to work with other panels
>> using this IC.
>>
>> Tested-by: Nikita Travkin <nikita at trvn.ru> #ltl101at01
>> Signed-off-by: Artur Weber <aweber.kernel at gmail.com>
> 
> <snip>
> 
> This change as commit 6810bb390282 ("drm/panel: Add Samsung S6D7AA0
> panel controller driver") in -next causes the following build errors
> with clang and GCC older than 8.x (the kernel supports back to GCC 5.1).
> 
> 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.
> 
> 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')
> 

I've submitted a patch, "drm/panel: samsung-s6d7aa0: use pointer for
drm_mode in panel desc struct"[1], which should fix this. I tested it
with GCC 13.1.1, GCC 6.4.0 and Clang 16.0.3, but I'd appreciate any
further testing and feedback.

Apologies for the error.

Best regards
Artur

[1] https://lore.kernel.org/all/20230523212050.9970-1-aweber.kernel@gmail.com/T/


More information about the dri-devel mailing list