| From 30b6987c571fc838077d39c036a4fe8ce57cde5b Mon Sep 17 00:00:00 2001 | 
| From: Jeffy Chen <jeffy.chen@rock-chips.com> | 
| Date: Mon, 19 Apr 2021 09:40:10 +0800 | 
| Subject: [PATCH 46/74] HACK: gl-renderer: Fix random hang during hotplug | 
|   | 
| Try to bind to a valid output before attaching buffers for mali. | 
|   | 
| Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> | 
| --- | 
|  libweston/renderer-gl/gl-renderer.c | 5 +++++ | 
|  1 file changed, 5 insertions(+) | 
|   | 
| diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c | 
| index 0947efd..15b2292 100644 | 
| --- a/libweston/renderer-gl/gl-renderer.c | 
| +++ b/libweston/renderer-gl/gl-renderer.c | 
| @@ -1913,6 +1913,7 @@ gl_renderer_flush_damage(struct weston_surface *surface) | 
|      const struct weston_testsuite_quirks *quirks = | 
|          &surface->compositor->test_data.test_quirks; | 
|      struct gl_surface_state *gs = get_surface_state(surface); | 
| +    struct gl_renderer *gr = get_renderer(surface->compositor); | 
|      struct weston_buffer *buffer = gs->buffer_ref.buffer; | 
|      struct weston_view *view; | 
|      bool texture_used; | 
| @@ -1934,6 +1935,10 @@ gl_renderer_flush_damage(struct weston_surface *surface) | 
|      texture_used = false; | 
|      wl_list_for_each(view, &surface->views, surface_link) { | 
|          if (view->plane == &surface->compositor->primary_plane) { | 
| +            /* HACK: Mali needs a valid context for uploading */ | 
| +            if (gr->is_mali_egl && view->output) | 
| +                use_output(view->output); | 
| + | 
|              texture_used = true; | 
|              break; | 
|          } | 
| --  | 
| 2.20.1 |