Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Michael Fischer <mf@go-sys.de>
Cc: buildroot@busybox.net
Subject: Re: [Buildroot] [PATCH 1/1] package/sdl2: fix sdl_init() error with kernel 5.15
Date: Mon, 21 Nov 2022 21:07:39 +0100	[thread overview]
Message-ID: <20221121200739.GK2516@scaer> (raw)
In-Reply-To: <20221121124001.24170-1-mf@go-sys.de>

Michael, All,

On 2022-11-21 13:40 +0100, Michael Fischer spake thusly:
> Fixes #6421
> Backport from: da9ba3a2a1536017e4ce1ee0f4276578d1ce6e29
> 
> Signed-off-by: Michael Fischer <mf@go-sys.de>
> ---
>  package/sdl2/0001-fix-CRTC-default-mode.patch | 66 +++++++++++++++++++
>  1 file changed, 66 insertions(+)
>  create mode 100644 package/sdl2/0001-fix-CRTC-default-mode.patch
> 
> diff --git a/package/sdl2/0001-fix-CRTC-default-mode.patch b/package/sdl2/0001-fix-CRTC-default-mode.patch
> new file mode 100644
> index 0000000000..5efc3f55c2
> --- /dev/null
> +++ b/package/sdl2/0001-fix-CRTC-default-mode.patch
> @@ -0,0 +1,66 @@
> +Patch to fix SDL_Init() error with kernel 5.15.x
> +Thanks to Sam Lantinga <slouken@libsdl.org> for his help.
> +Fix: #6421
> +
> +Backported from: da9ba3a2a1536017e4ce1ee0f4276578d1ce6e29

Since SDL2 is hosted as a git repository, we want this to be a
git-formatted patch, epecially since it is a backport.

So I fixed that; please check commit 7928c51bf6.

Applied to master, thanks.

Regards,
Yann E. MORIN.

> +Signed-off-by: Michael Fischer <mf@go-sys.de>
> +
> +
> +diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
> +index eae7214551a9..eeeefef2b2c1 100644
> +--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
> ++++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
> +@@ -666,8 +666,8 @@ KMSDRM_CrtcGetVrr(uint32_t drm_fd, uint32_t crtc_id)
> + /* Gets a DRM connector, builds an SDL_Display with it, and adds it to the
> +    list of SDL Displays in _this->displays[]  */
> + static void
> +-KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resources) {
> +-
> ++KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resources)
> ++{
> +     SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata);
> +     SDL_DisplayData *dispdata = NULL;
> +     SDL_VideoDisplay display = {0};
> +@@ -770,14 +770,37 @@ KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resources) {
> +         drmModeModeInfo *mode = &connector->modes[i];
> +
> +         if (!SDL_memcmp(mode, &crtc->mode, sizeof(crtc->mode))) {
> +-          mode_index = i;
> +-          break;
> ++            mode_index = i;
> ++            break;
> +         }
> +     }
> +
> +     if (mode_index == -1) {
> +-      ret = SDL_SetError("Failed to find index of mode attached to the CRTC.");
> +-      goto cleanup;
> ++        int current_area, largest_area = 0;
> ++
> ++        /* Find the preferred mode or the highest resolution mode */
> ++        for (i = 0; i < connector->count_modes; i++) {
> ++            drmModeModeInfo *mode = &connector->modes[i];
> ++
> ++            if (mode->type & DRM_MODE_TYPE_PREFERRED) {
> ++                mode_index = i;
> ++                break;
> ++            }
> ++
> ++            current_area = mode->hdisplay * mode->vdisplay;
> ++            if (current_area > largest_area) {
> ++                mode_index = i;
> ++                largest_area = current_area;
> ++            }
> ++        }
> ++        if (mode_index != -1) {
> ++            crtc->mode = connector->modes[mode_index];
> ++        }
> ++    }
> ++
> ++    if (mode_index == -1) {
> ++        ret = SDL_SetError("Failed to find index of mode attached to the CRTC.");
> ++        goto cleanup;
> +     }
> +
> +     /*********************************************/
> -- 
> 2.20.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2022-11-21 20:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-21 12:40 [Buildroot] [PATCH 1/1] package/sdl2: fix sdl_init() error with kernel 5.15 Michael Fischer
2022-11-21 20:07 ` Yann E. MORIN [this message]
2022-11-24  9:12 ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221121200739.GK2516@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    --cc=mf@go-sys.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox