lkml.org 
[lkml]   [2022]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 14/41] drm/modes: Move named modes parsing to a separate function
Hi,

On Tue, Aug 30, 2022 at 01:43:07PM +0300, Jani Nikula wrote:
> On Tue, 30 Aug 2022, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Mon, Aug 29, 2022 at 3:13 PM Maxime Ripard <maxime@cerno.tech> wrote:
> >> +#define STR_STRICT_EQ(str, len, cmp) \
> >> + ((strlen(cmp) == len) && !strncmp(str, cmp, len))
> >
> > This is not part of the move, but newly added.
>
> The same construct is also duplicated elsewhere in the series, and I
> kept being confused by it.

I'm not sure what is confusing, but I can add a comment if needed.

> The above is precisely the same as:
>
> str_has_prefix(str, cmp) == len

Here, it's used to make sure we don't have a named mode starting with
either e, d, or D.

If I understood str_has_prefix() right, str_has_prefix("DUMB-MODE", "D")
== strlen("DUMB-MODE") would return true, while it's actually what we
want to avoid.

It's also used indeed in drm_get_tv_mode_from_name(), where we try to
match a list of names with one passed as argument.

With drm_get_tv_mode_from_name("NSTC", strlen("NTSC")), we would end up
calling str_has_prefix("NTSC-J", "NTSC") == strlen("NTSC-J") which would
work. However, we end up calling prefix not a prefix, but an entire
string we want to match against, which is very confusing to me too.

Maxime

\
 
 \ /
  Last update: 2022-08-30 14:11    [W:0.572 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site