drm: panel-orientation-quirks: Add quirk for Aya Neo Next

Hans de Goede hdegoede at redhat.com
Sat Jun 18 20:57:03 UTC 2022


Hi Maya,

On 6/11/22 12:39, Maccraft123 wrote:
> From: Maya Matuszczyk <maccraft123mc at gmail.com>
> 
> The device is identified by "NEXT" in board name, however there are
> different versions of it, "Next Advance" and "Next Pro", that have
> different DMI board names.
> Due to a production error a batch or two have their board names prefixed
> by "AYANEO" and that's how we ended up with 6 different entries for
> what's basically one device with different hardware specifications.
> 
> Signed-off-by: Maya Matuszczyk <maccraft123mc at gmail.com>
> ---
>  .../gpu/drm/drm_panel_orientation_quirks.c    | 36 +++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c
> index 4e853acfd1e8..62fc7eb69341 100644
> --- a/drivers/gpu/drm/drm_panel_orientation_quirks.c
> +++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c
> @@ -152,6 +152,42 @@ static const struct dmi_system_id orientation_data[] = {
>  		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"),
>  		},
>  		.driver_data = (void *)&lcd800x1280_rightside_up,
> +	}, {	/* AYA NEO NEXT */
> +		.matches = {
> +		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
> +		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "NEXT"),
> +		},
> +		.driver_data = (void *)&lcd800x1280_rightside_up,
> +	},

If you change:

		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "NEXT"),

to:

		  DMI_MATCH(DMI_BOARD_NAME, "NEXT"),

Then the matching code will do a substring search for "NEXT"
in DMI_BOARD_NAME. IOW it will do a strstr using DMI_BOARD_NAME
as the haystack and "NEXT" as the needle.

And since all 6 board-names contain "NEXT", this single entry
will then match all 6 variants.

So please respin this patch using just a single entry with:

		  DMI_MATCH(DMI_BOARD_NAME, "NEXT"),

Thanks & Regards,

Hans



 {	/* AYA NEO NEXT Advance */
> +		.matches = {
> +		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
> +		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "NEXT Advance"),
> +		},
> +		.driver_data = (void *)&lcd800x1280_rightside_up,
> +	}, {	/* AYA NEO NEXT Pro */
> +		.matches = {
> +		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
> +		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "NEXT Pro"),
> +		},
> +		.driver_data = (void *)&lcd800x1280_rightside_up,
> +	}, {	/* AYA NEO NEXT (Batch with different board name) */
> +		.matches = {
> +		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
> +		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "AYANEO NEXT"),
> +		},
> +		.driver_data = (void *)&lcd800x1280_rightside_up,
> +	}, {	/* AYA NEO NEXT Advance (Batch with different board name) */
> +		.matches = {
> +		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
> +		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "AYANEO NEXT Advance"),
> +		},
> +		.driver_data = (void *)&lcd800x1280_rightside_up,
> +	}, {	/* AYA NEO NEXT Pro (Batch with different board name) */
> +		.matches = {
> +		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
> +		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "AYANEO NEXT Pro"),
> +		},
> +		.driver_data = (void *)&lcd800x1280_rightside_up,
>  	}, {	/* Chuwi HiBook (CWI514) */
>  		.matches = {
>  			DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"),



More information about the dri-devel mailing list