Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1550772 > unrolled thread
| Started by | Ville Syrjälä <ville.syrjala@linux.intel.com> |
|---|---|
| First post | 2017-01-04 14:30 +0100 |
| Last post | 2017-01-04 14:50 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane Ville Syrjälä <ville.syrjala@linux.intel.com> - 2017-01-04 14:30 +0100
Re: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane Neil Armstrong <narmstrong@baylibre.com> - 2017-01-04 14:50 +0100
| From | Ville Syrjälä <ville.syrjala@linux.intel.com> |
|---|---|
| Date | 2017-01-04 14:30 +0100 |
| Subject | Re: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane |
| Message-ID | <sVTNE-5e8-13@gated-at.bofh.it> |
On Tue, Jan 03, 2017 at 10:20:54AM +0100, Neil Armstrong wrote:
> When no CRTC is associated with the plane, the meson_plane_atomic_check()
> call breaks the kernel with an Oops.
>
> Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller")
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> drivers/gpu/drm/meson/meson_plane.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
> index 4942ca0..7890e30 100644
> --- a/drivers/gpu/drm/meson/meson_plane.c
> +++ b/drivers/gpu/drm/meson/meson_plane.c
> @@ -51,6 +51,9 @@ static int meson_plane_atomic_check(struct drm_plane *plane,
> struct drm_crtc_state *crtc_state;
> struct drm_rect clip = { 0, };
>
> + if (!state->crtc)
> + return 0;
> +
Since you're not going to call drm_plane_helper_check_state() you will
fail to update plane_state->visible.
What i915 does in this case is look for state->crtc first, and if that's
NULL it'll pick the crtc from the old state (plane->state->crtc). It
looks a bit ugly, but maybe we should hide it in a small helper function
that could be used by all drivers?
> crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc);
> if (IS_ERR(crtc_state))
> return PTR_ERR(crtc_state);
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Ville Syrjälä
Intel OTC
[toc] | [next] | [standalone]
| From | Neil Armstrong <narmstrong@baylibre.com> |
|---|---|
| Date | 2017-01-04 14:50 +0100 |
| Message-ID | <sVU6Z-5lr-17@gated-at.bofh.it> |
| In reply to | #1550772 |
On 01/04/2017 02:27 PM, Ville Syrjälä wrote:
> On Tue, Jan 03, 2017 at 10:20:54AM +0100, Neil Armstrong wrote:
>> When no CRTC is associated with the plane, the meson_plane_atomic_check()
>> call breaks the kernel with an Oops.
>>
>> Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller")
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>> drivers/gpu/drm/meson/meson_plane.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
>> index 4942ca0..7890e30 100644
>> --- a/drivers/gpu/drm/meson/meson_plane.c
>> +++ b/drivers/gpu/drm/meson/meson_plane.c
>> @@ -51,6 +51,9 @@ static int meson_plane_atomic_check(struct drm_plane *plane,
>> struct drm_crtc_state *crtc_state;
>> struct drm_rect clip = { 0, };
>>
>> + if (!state->crtc)
>> + return 0;
>> +
>
> Since you're not going to call drm_plane_helper_check_state() you will
> fail to update plane_state->visible.
Indeed I forgot about that, but i's not necessary yet since visibility is not yet handled.
>
> What i915 does in this case is look for state->crtc first, and if that's
> NULL it'll pick the crtc from the old state (plane->state->crtc). It
> looks a bit ugly, but maybe we should hide it in a small helper function
> that could be used by all drivers?
Yes, an helper would be helpful.
>
>> crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc);
>> if (IS_ERR(crtc_state))
>> return PTR_ERR(crtc_state);
>> --
>> 1.9.1
Thanks,
Neil
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web