From: Mateusz Kwiatkowski <kfyatek@gmail.com>
To: Maxime Ripard <maxime@cerno.tech>,
Karol Herbst <kherbst@redhat.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
David Airlie <airlied@linux.ie>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Lyude Paul <lyude@redhat.com>, Maxime Ripard <mripard@kernel.org>,
Emma Anholt <emma@anholt.net>, Chen-Yu Tsai <wens@csie.org>,
Samuel Holland <samuel@sholland.org>,
Ben Skeggs <bskeggs@redhat.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: "Dom Cobley" <dom@raspberrypi.com>,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
"Phil Elwell" <phil@raspberrypi.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Noralf Trønnes" <noralf@tronnes.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
linux-sunxi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
Subject: Re: [Intel-gfx] [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property
Date: Sun, 16 Oct 2022 20:52:26 +0200 [thread overview]
Message-ID: <c1949248-fb40-682c-492e-bafbd915cee3@gmail.com> (raw)
In-Reply-To: <20220728-rpi-analog-tv-properties-v5-20-d841cc64fe4b@cerno.tech>
Hi Maxime,
> static int vc4_vec_connector_get_modes(struct drm_connector *connector)
> {
> - struct drm_connector_state *state = connector->state;
> struct drm_display_mode *mode;
>
> - mode = drm_mode_duplicate(connector->dev,
> - vc4_vec_tv_modes[state->tv.legacy_mode].mode);
> + mode = drm_mode_analog_ntsc_480i(connector->dev);
> if (!mode) {
> DRM_ERROR("Failed to create a new display mode\n");
> return -ENOMEM;
> }
>
> + mode->type |= DRM_MODE_TYPE_PREFERRED;
> drm_mode_probed_add(connector, mode);
>
> - return 1;
> + mode = drm_mode_analog_pal_576i(connector->dev);
> + if (!mode) {
> + DRM_ERROR("Failed to create a new display mode\n");
> + return -ENOMEM;
> + }
> +
> + drm_mode_probed_add(connector, mode);
> +
> + return 2;
> +}
Referencing those previous discussions:
- https://lore.kernel.org/dri-devel/0255f7c6-0484-6456-350d-cf24f3fee5d6@tronnes.org/
- https://lore.kernel.org/dri-devel/c8f8015a-75da-afa8-ca7f-b2b134cacd16@gmail.com/
Unconditionally setting the 480i mode as DRM_MODE_TYPE_PREFERRED causes Xorg
(at least on current Raspberry Pi OS) to display garbage when
video=Composite1:PAL is specified on the command line, so I'm afraid this won't
do.
As I see it, there are three viable solutions for this issue:
a) Somehow query the video= command line option from this function, and set
DRM_MODE_TYPE_PREFERRED appropriately. This would break the abstraction
provided by global DRM code, but should work fine.
b) Modify drm_helper_probe_add_cmdline_mode() so that it sets
DRM_MODE_TYPE_PREFERRED in addition to DRM_MODE_TYPE_USERDEF. This seems
pretty robust, but affects the entire DRM subsystem, which may break
userspace in different ways.
- Maybe this could be mitigated by adding some additional conditions, e.g.
setting the PREFERRED flag only if no modes are already flagged as such
and/or only if the cmdline mode is a named one (~= analog TV mode)
c) Forcing userspace (Xorg / Raspberry Pi OS) to get fixed and honor the USERDEF
flag.
Either way, hardcoding 480i as PREFERRED does not seem right.
Note: this also applies to the sun4i version (patch 22/22).
> @@ -366,13 +472,16 @@ static void vc4_vec_encoder_enable(struct drm_encoder *encoder,
> struct drm_connector *connector = &vec->connector;
> struct drm_connector_state *conn_state =
> drm_atomic_get_new_connector_state(state, connector);
> - const struct vc4_vec_tv_mode *tv_mode =
> - &vc4_vec_tv_modes[conn_state->tv.legacy_mode];
> + const struct vc4_vec_tv_mode *tv_mode;
> int idx, ret;
>
> if (!drm_dev_enter(drm, &idx))
> return;
>
> + tv_mode = vc4_vec_tv_mode_lookup(conn_state->tv.mode);
> + if (!tv_mode)
> + goto err_dev_exit;
> +
> ret = pm_runtime_get_sync(&vec->pdev->dev);
> if (ret < 0) {
> DRM_ERROR("Failed to retain power domain: %d\n", ret);
If this (!tv_mode) condition is somehow triggered, the power management goes
somewhat crazy. vc4_vec_encoder_enable() cannot return an error, so when
vc4_vec_encoder_disable() is eventually called after a failed enable, it hangs
in pm_runtime_put() for quite a bit.
At least I think that's what's happening. Anyway, to solve this, I'd propose
this thing below:
Best regards,
Mateusz Kwiatkowski
WARNING: multiple messages have this Message-ID (diff)
From: Mateusz Kwiatkowski <kfyatek@gmail.com>
To: Maxime Ripard <maxime@cerno.tech>,
Karol Herbst <kherbst@redhat.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
David Airlie <airlied@linux.ie>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Lyude Paul <lyude@redhat.com>, Maxime Ripard <mripard@kernel.org>,
Emma Anholt <emma@anholt.net>, Chen-Yu Tsai <wens@csie.org>,
Samuel Holland <samuel@sholland.org>,
Ben Skeggs <bskeggs@redhat.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: "Dom Cobley" <dom@raspberrypi.com>,
linux-sunxi@lists.linux.dev,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
"Noralf Trønnes" <noralf@tronnes.org>,
intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org,
nouveau@lists.freedesktop.org,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
linux-arm-kernel@lists.infradead.org,
dri-devel@lists.freedesktop.org,
"Hans de Goede" <hdegoede@redhat.com>,
"Phil Elwell" <phil@raspberrypi.com>
Subject: Re: [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property
Date: Sun, 16 Oct 2022 20:52:26 +0200 [thread overview]
Message-ID: <c1949248-fb40-682c-492e-bafbd915cee3@gmail.com> (raw)
In-Reply-To: <20220728-rpi-analog-tv-properties-v5-20-d841cc64fe4b@cerno.tech>
Hi Maxime,
> static int vc4_vec_connector_get_modes(struct drm_connector *connector)
> {
> - struct drm_connector_state *state = connector->state;
> struct drm_display_mode *mode;
>
> - mode = drm_mode_duplicate(connector->dev,
> - vc4_vec_tv_modes[state->tv.legacy_mode].mode);
> + mode = drm_mode_analog_ntsc_480i(connector->dev);
> if (!mode) {
> DRM_ERROR("Failed to create a new display mode\n");
> return -ENOMEM;
> }
>
> + mode->type |= DRM_MODE_TYPE_PREFERRED;
> drm_mode_probed_add(connector, mode);
>
> - return 1;
> + mode = drm_mode_analog_pal_576i(connector->dev);
> + if (!mode) {
> + DRM_ERROR("Failed to create a new display mode\n");
> + return -ENOMEM;
> + }
> +
> + drm_mode_probed_add(connector, mode);
> +
> + return 2;
> +}
Referencing those previous discussions:
- https://lore.kernel.org/dri-devel/0255f7c6-0484-6456-350d-cf24f3fee5d6@tronnes.org/
- https://lore.kernel.org/dri-devel/c8f8015a-75da-afa8-ca7f-b2b134cacd16@gmail.com/
Unconditionally setting the 480i mode as DRM_MODE_TYPE_PREFERRED causes Xorg
(at least on current Raspberry Pi OS) to display garbage when
video=Composite1:PAL is specified on the command line, so I'm afraid this won't
do.
As I see it, there are three viable solutions for this issue:
a) Somehow query the video= command line option from this function, and set
DRM_MODE_TYPE_PREFERRED appropriately. This would break the abstraction
provided by global DRM code, but should work fine.
b) Modify drm_helper_probe_add_cmdline_mode() so that it sets
DRM_MODE_TYPE_PREFERRED in addition to DRM_MODE_TYPE_USERDEF. This seems
pretty robust, but affects the entire DRM subsystem, which may break
userspace in different ways.
- Maybe this could be mitigated by adding some additional conditions, e.g.
setting the PREFERRED flag only if no modes are already flagged as such
and/or only if the cmdline mode is a named one (~= analog TV mode)
c) Forcing userspace (Xorg / Raspberry Pi OS) to get fixed and honor the USERDEF
flag.
Either way, hardcoding 480i as PREFERRED does not seem right.
Note: this also applies to the sun4i version (patch 22/22).
> @@ -366,13 +472,16 @@ static void vc4_vec_encoder_enable(struct drm_encoder *encoder,
> struct drm_connector *connector = &vec->connector;
> struct drm_connector_state *conn_state =
> drm_atomic_get_new_connector_state(state, connector);
> - const struct vc4_vec_tv_mode *tv_mode =
> - &vc4_vec_tv_modes[conn_state->tv.legacy_mode];
> + const struct vc4_vec_tv_mode *tv_mode;
> int idx, ret;
>
> if (!drm_dev_enter(drm, &idx))
> return;
>
> + tv_mode = vc4_vec_tv_mode_lookup(conn_state->tv.mode);
> + if (!tv_mode)
> + goto err_dev_exit;
> +
> ret = pm_runtime_get_sync(&vec->pdev->dev);
> if (ret < 0) {
> DRM_ERROR("Failed to retain power domain: %d\n", ret);
If this (!tv_mode) condition is somehow triggered, the power management goes
somewhat crazy. vc4_vec_encoder_enable() cannot return an error, so when
vc4_vec_encoder_disable() is eventually called after a failed enable, it hangs
in pm_runtime_put() for quite a bit.
At least I think that's what's happening. Anyway, to solve this, I'd propose
this thing below:
Best regards,
Mateusz Kwiatkowski
WARNING: multiple messages have this Message-ID (diff)
From: Mateusz Kwiatkowski <kfyatek@gmail.com>
To: Maxime Ripard <maxime@cerno.tech>,
Karol Herbst <kherbst@redhat.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
David Airlie <airlied@linux.ie>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Lyude Paul <lyude@redhat.com>, Maxime Ripard <mripard@kernel.org>,
Emma Anholt <emma@anholt.net>, Chen-Yu Tsai <wens@csie.org>,
Samuel Holland <samuel@sholland.org>,
Ben Skeggs <bskeggs@redhat.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: "Dom Cobley" <dom@raspberrypi.com>,
nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
"Phil Elwell" <phil@raspberrypi.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Noralf Trønnes" <noralf@tronnes.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
linux-sunxi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
Subject: Re: [Nouveau] [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property
Date: Sun, 16 Oct 2022 20:52:26 +0200 [thread overview]
Message-ID: <c1949248-fb40-682c-492e-bafbd915cee3@gmail.com> (raw)
In-Reply-To: <20220728-rpi-analog-tv-properties-v5-20-d841cc64fe4b@cerno.tech>
Hi Maxime,
> static int vc4_vec_connector_get_modes(struct drm_connector *connector)
> {
> - struct drm_connector_state *state = connector->state;
> struct drm_display_mode *mode;
>
> - mode = drm_mode_duplicate(connector->dev,
> - vc4_vec_tv_modes[state->tv.legacy_mode].mode);
> + mode = drm_mode_analog_ntsc_480i(connector->dev);
> if (!mode) {
> DRM_ERROR("Failed to create a new display mode\n");
> return -ENOMEM;
> }
>
> + mode->type |= DRM_MODE_TYPE_PREFERRED;
> drm_mode_probed_add(connector, mode);
>
> - return 1;
> + mode = drm_mode_analog_pal_576i(connector->dev);
> + if (!mode) {
> + DRM_ERROR("Failed to create a new display mode\n");
> + return -ENOMEM;
> + }
> +
> + drm_mode_probed_add(connector, mode);
> +
> + return 2;
> +}
Referencing those previous discussions:
- https://lore.kernel.org/dri-devel/0255f7c6-0484-6456-350d-cf24f3fee5d6@tronnes.org/
- https://lore.kernel.org/dri-devel/c8f8015a-75da-afa8-ca7f-b2b134cacd16@gmail.com/
Unconditionally setting the 480i mode as DRM_MODE_TYPE_PREFERRED causes Xorg
(at least on current Raspberry Pi OS) to display garbage when
video=Composite1:PAL is specified on the command line, so I'm afraid this won't
do.
As I see it, there are three viable solutions for this issue:
a) Somehow query the video= command line option from this function, and set
DRM_MODE_TYPE_PREFERRED appropriately. This would break the abstraction
provided by global DRM code, but should work fine.
b) Modify drm_helper_probe_add_cmdline_mode() so that it sets
DRM_MODE_TYPE_PREFERRED in addition to DRM_MODE_TYPE_USERDEF. This seems
pretty robust, but affects the entire DRM subsystem, which may break
userspace in different ways.
- Maybe this could be mitigated by adding some additional conditions, e.g.
setting the PREFERRED flag only if no modes are already flagged as such
and/or only if the cmdline mode is a named one (~= analog TV mode)
c) Forcing userspace (Xorg / Raspberry Pi OS) to get fixed and honor the USERDEF
flag.
Either way, hardcoding 480i as PREFERRED does not seem right.
Note: this also applies to the sun4i version (patch 22/22).
> @@ -366,13 +472,16 @@ static void vc4_vec_encoder_enable(struct drm_encoder *encoder,
> struct drm_connector *connector = &vec->connector;
> struct drm_connector_state *conn_state =
> drm_atomic_get_new_connector_state(state, connector);
> - const struct vc4_vec_tv_mode *tv_mode =
> - &vc4_vec_tv_modes[conn_state->tv.legacy_mode];
> + const struct vc4_vec_tv_mode *tv_mode;
> int idx, ret;
>
> if (!drm_dev_enter(drm, &idx))
> return;
>
> + tv_mode = vc4_vec_tv_mode_lookup(conn_state->tv.mode);
> + if (!tv_mode)
> + goto err_dev_exit;
> +
> ret = pm_runtime_get_sync(&vec->pdev->dev);
> if (ret < 0) {
> DRM_ERROR("Failed to retain power domain: %d\n", ret);
If this (!tv_mode) condition is somehow triggered, the power management goes
somewhat crazy. vc4_vec_encoder_enable() cannot return an error, so when
vc4_vec_encoder_disable() is eventually called after a failed enable, it hangs
in pm_runtime_put() for quite a bit.
At least I think that's what's happening. Anyway, to solve this, I'd propose
this thing below:
Best regards,
Mateusz Kwiatkowski
WARNING: multiple messages have this Message-ID (diff)
From: Mateusz Kwiatkowski <kfyatek@gmail.com>
To: Maxime Ripard <maxime@cerno.tech>,
Karol Herbst <kherbst@redhat.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
David Airlie <airlied@linux.ie>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Lyude Paul <lyude@redhat.com>, Maxime Ripard <mripard@kernel.org>,
Emma Anholt <emma@anholt.net>, Chen-Yu Tsai <wens@csie.org>,
Samuel Holland <samuel@sholland.org>,
Ben Skeggs <bskeggs@redhat.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: "Dom Cobley" <dom@raspberrypi.com>,
linux-sunxi@lists.linux.dev,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
"Noralf Trønnes" <noralf@tronnes.org>,
intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org,
nouveau@lists.freedesktop.org,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
linux-arm-kernel@lists.infradead.org,
dri-devel@lists.freedesktop.org,
"Hans de Goede" <hdegoede@redhat.com>,
"Phil Elwell" <phil@raspberrypi.com>
Subject: Re: [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property
Date: Sun, 16 Oct 2022 20:52:26 +0200 [thread overview]
Message-ID: <c1949248-fb40-682c-492e-bafbd915cee3@gmail.com> (raw)
In-Reply-To: <20220728-rpi-analog-tv-properties-v5-20-d841cc64fe4b@cerno.tech>
Hi Maxime,
> static int vc4_vec_connector_get_modes(struct drm_connector *connector)
> {
> - struct drm_connector_state *state = connector->state;
> struct drm_display_mode *mode;
>
> - mode = drm_mode_duplicate(connector->dev,
> - vc4_vec_tv_modes[state->tv.legacy_mode].mode);
> + mode = drm_mode_analog_ntsc_480i(connector->dev);
> if (!mode) {
> DRM_ERROR("Failed to create a new display mode\n");
> return -ENOMEM;
> }
>
> + mode->type |= DRM_MODE_TYPE_PREFERRED;
> drm_mode_probed_add(connector, mode);
>
> - return 1;
> + mode = drm_mode_analog_pal_576i(connector->dev);
> + if (!mode) {
> + DRM_ERROR("Failed to create a new display mode\n");
> + return -ENOMEM;
> + }
> +
> + drm_mode_probed_add(connector, mode);
> +
> + return 2;
> +}
Referencing those previous discussions:
- https://lore.kernel.org/dri-devel/0255f7c6-0484-6456-350d-cf24f3fee5d6@tronnes.org/
- https://lore.kernel.org/dri-devel/c8f8015a-75da-afa8-ca7f-b2b134cacd16@gmail.com/
Unconditionally setting the 480i mode as DRM_MODE_TYPE_PREFERRED causes Xorg
(at least on current Raspberry Pi OS) to display garbage when
video=Composite1:PAL is specified on the command line, so I'm afraid this won't
do.
As I see it, there are three viable solutions for this issue:
a) Somehow query the video= command line option from this function, and set
DRM_MODE_TYPE_PREFERRED appropriately. This would break the abstraction
provided by global DRM code, but should work fine.
b) Modify drm_helper_probe_add_cmdline_mode() so that it sets
DRM_MODE_TYPE_PREFERRED in addition to DRM_MODE_TYPE_USERDEF. This seems
pretty robust, but affects the entire DRM subsystem, which may break
userspace in different ways.
- Maybe this could be mitigated by adding some additional conditions, e.g.
setting the PREFERRED flag only if no modes are already flagged as such
and/or only if the cmdline mode is a named one (~= analog TV mode)
c) Forcing userspace (Xorg / Raspberry Pi OS) to get fixed and honor the USERDEF
flag.
Either way, hardcoding 480i as PREFERRED does not seem right.
Note: this also applies to the sun4i version (patch 22/22).
> @@ -366,13 +472,16 @@ static void vc4_vec_encoder_enable(struct drm_encoder *encoder,
> struct drm_connector *connector = &vec->connector;
> struct drm_connector_state *conn_state =
> drm_atomic_get_new_connector_state(state, connector);
> - const struct vc4_vec_tv_mode *tv_mode =
> - &vc4_vec_tv_modes[conn_state->tv.legacy_mode];
> + const struct vc4_vec_tv_mode *tv_mode;
> int idx, ret;
>
> if (!drm_dev_enter(drm, &idx))
> return;
>
> + tv_mode = vc4_vec_tv_mode_lookup(conn_state->tv.mode);
> + if (!tv_mode)
> + goto err_dev_exit;
> +
> ret = pm_runtime_get_sync(&vec->pdev->dev);
> if (ret < 0) {
> DRM_ERROR("Failed to retain power domain: %d\n", ret);
If this (!tv_mode) condition is somehow triggered, the power management goes
somewhat crazy. vc4_vec_encoder_enable() cannot return an error, so when
vc4_vec_encoder_disable() is eventually called after a failed enable, it hangs
in pm_runtime_put() for quite a bit.
At least I think that's what's happening. Anyway, to solve this, I'd propose
this thing below:
Best regards,
Mateusz Kwiatkowski
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Mateusz Kwiatkowski <kfyatek@gmail.com>
To: Maxime Ripard <maxime@cerno.tech>,
Karol Herbst <kherbst@redhat.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
David Airlie <airlied@linux.ie>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Lyude Paul <lyude@redhat.com>, Maxime Ripard <mripard@kernel.org>,
Emma Anholt <emma@anholt.net>, Chen-Yu Tsai <wens@csie.org>,
Samuel Holland <samuel@sholland.org>,
Ben Skeggs <bskeggs@redhat.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: "Dom Cobley" <dom@raspberrypi.com>,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
"Phil Elwell" <phil@raspberrypi.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Noralf Trønnes" <noralf@tronnes.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
linux-sunxi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property
Date: Sun, 16 Oct 2022 20:52:26 +0200 [thread overview]
Message-ID: <c1949248-fb40-682c-492e-bafbd915cee3@gmail.com> (raw)
In-Reply-To: <20220728-rpi-analog-tv-properties-v5-20-d841cc64fe4b@cerno.tech>
Hi Maxime,
> static int vc4_vec_connector_get_modes(struct drm_connector *connector)
> {
> - struct drm_connector_state *state = connector->state;
> struct drm_display_mode *mode;
>
> - mode = drm_mode_duplicate(connector->dev,
> - vc4_vec_tv_modes[state->tv.legacy_mode].mode);
> + mode = drm_mode_analog_ntsc_480i(connector->dev);
> if (!mode) {
> DRM_ERROR("Failed to create a new display mode\n");
> return -ENOMEM;
> }
>
> + mode->type |= DRM_MODE_TYPE_PREFERRED;
> drm_mode_probed_add(connector, mode);
>
> - return 1;
> + mode = drm_mode_analog_pal_576i(connector->dev);
> + if (!mode) {
> + DRM_ERROR("Failed to create a new display mode\n");
> + return -ENOMEM;
> + }
> +
> + drm_mode_probed_add(connector, mode);
> +
> + return 2;
> +}
Referencing those previous discussions:
- https://lore.kernel.org/dri-devel/0255f7c6-0484-6456-350d-cf24f3fee5d6@tronnes.org/
- https://lore.kernel.org/dri-devel/c8f8015a-75da-afa8-ca7f-b2b134cacd16@gmail.com/
Unconditionally setting the 480i mode as DRM_MODE_TYPE_PREFERRED causes Xorg
(at least on current Raspberry Pi OS) to display garbage when
video=Composite1:PAL is specified on the command line, so I'm afraid this won't
do.
As I see it, there are three viable solutions for this issue:
a) Somehow query the video= command line option from this function, and set
DRM_MODE_TYPE_PREFERRED appropriately. This would break the abstraction
provided by global DRM code, but should work fine.
b) Modify drm_helper_probe_add_cmdline_mode() so that it sets
DRM_MODE_TYPE_PREFERRED in addition to DRM_MODE_TYPE_USERDEF. This seems
pretty robust, but affects the entire DRM subsystem, which may break
userspace in different ways.
- Maybe this could be mitigated by adding some additional conditions, e.g.
setting the PREFERRED flag only if no modes are already flagged as such
and/or only if the cmdline mode is a named one (~= analog TV mode)
c) Forcing userspace (Xorg / Raspberry Pi OS) to get fixed and honor the USERDEF
flag.
Either way, hardcoding 480i as PREFERRED does not seem right.
Note: this also applies to the sun4i version (patch 22/22).
> @@ -366,13 +472,16 @@ static void vc4_vec_encoder_enable(struct drm_encoder *encoder,
> struct drm_connector *connector = &vec->connector;
> struct drm_connector_state *conn_state =
> drm_atomic_get_new_connector_state(state, connector);
> - const struct vc4_vec_tv_mode *tv_mode =
> - &vc4_vec_tv_modes[conn_state->tv.legacy_mode];
> + const struct vc4_vec_tv_mode *tv_mode;
> int idx, ret;
>
> if (!drm_dev_enter(drm, &idx))
> return;
>
> + tv_mode = vc4_vec_tv_mode_lookup(conn_state->tv.mode);
> + if (!tv_mode)
> + goto err_dev_exit;
> +
> ret = pm_runtime_get_sync(&vec->pdev->dev);
> if (ret < 0) {
> DRM_ERROR("Failed to retain power domain: %d\n", ret);
If this (!tv_mode) condition is somehow triggered, the power management goes
somewhat crazy. vc4_vec_encoder_enable() cannot return an error, so when
vc4_vec_encoder_disable() is eventually called after a failed enable, it hangs
in pm_runtime_put() for quite a bit.
At least I think that's what's happening. Anyway, to solve this, I'd propose
this thing below:
Best regards,
Mateusz Kwiatkowski
next prev parent reply other threads:[~2022-10-17 19:56 UTC|newest]
Thread overview: 284+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-13 13:18 [Intel-gfx] [PATCH v5 00/22] drm: Analog TV Improvements Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 01/22] drm/tests: Add Kunit Helpers Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-15 15:06 ` [Intel-gfx] " Noralf Trønnes
2022-10-15 15:06 ` Noralf Trønnes
2022-10-15 15:06 ` Noralf Trønnes
2022-10-15 15:06 ` [Nouveau] " Noralf Trønnes
2022-10-15 15:06 ` Noralf Trønnes
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 02/22] drm/connector: Rename legacy TV property Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 03/22] drm/connector: Only register TV mode property if present Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 04/22] drm/connector: Rename drm_mode_create_tv_properties Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 05/22] drm/connector: Add TV standard property Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 06/22] drm/modes: Add a function to generate analog display modes Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-16 17:34 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-16 17:34 ` Mateusz Kwiatkowski
2022-10-16 17:34 ` Mateusz Kwiatkowski
2022-10-16 17:34 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 17:34 ` Mateusz Kwiatkowski
2022-10-18 8:08 ` [Intel-gfx] " Maxime Ripard
2022-10-18 8:08 ` Maxime Ripard
2022-10-18 8:08 ` Maxime Ripard
2022-10-18 8:08 ` [Nouveau] " Maxime Ripard
2022-10-18 8:08 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 07/22] drm/client: Add some tests for drm_connector_pick_cmdline_mode() Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-15 16:58 ` [Intel-gfx] " Noralf Trønnes
2022-10-15 16:58 ` Noralf Trønnes
2022-10-15 16:58 ` Noralf Trønnes
2022-10-15 16:58 ` [Nouveau] " Noralf Trønnes
2022-10-15 16:58 ` Noralf Trønnes
2022-10-20 7:55 ` [Intel-gfx] " Michał Winiarski
2022-10-20 7:55 ` Michał Winiarski
2022-10-20 7:55 ` Michał Winiarski
2022-10-20 7:55 ` Michał Winiarski
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 08/22] drm/modes: Move named modes parsing to a separate function Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-16 16:11 ` [Intel-gfx] " Noralf Trønnes
2022-10-16 16:11 ` Noralf Trønnes
2022-10-16 16:11 ` Noralf Trønnes
2022-10-16 16:11 ` [Nouveau] " Noralf Trønnes
2022-10-16 16:11 ` Noralf Trønnes
2022-10-18 7:57 ` [Intel-gfx] " Maxime Ripard
2022-10-18 7:57 ` Maxime Ripard
2022-10-18 7:57 ` Maxime Ripard
2022-10-18 7:57 ` [Nouveau] " Maxime Ripard
2022-10-18 7:57 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 09/22] drm/modes: Switch to named mode descriptors Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 10/22] drm/modes: Fill drm_cmdline mode from named modes Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 11/22] drm/connector: Add pixel clock to cmdline mode Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 12/22] drm/connector: Add a function to lookup a TV mode by its name Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-17 10:44 ` [Intel-gfx] " Noralf Trønnes
2022-10-17 10:44 ` Noralf Trønnes
2022-10-17 10:44 ` Noralf Trønnes
2022-10-17 10:44 ` [Nouveau] " Noralf Trønnes
2022-10-17 10:44 ` Noralf Trønnes
2022-10-18 9:33 ` [Intel-gfx] " Maxime Ripard
2022-10-18 9:33 ` Maxime Ripard
2022-10-18 9:33 ` Maxime Ripard
2022-10-18 9:33 ` [Nouveau] " Maxime Ripard
2022-10-18 9:33 ` Maxime Ripard
2022-10-18 12:29 ` [Intel-gfx] " Noralf Trønnes
2022-10-18 12:29 ` Noralf Trønnes
2022-10-18 12:29 ` Noralf Trønnes
2022-10-18 12:29 ` [Nouveau] " Noralf Trønnes
2022-10-18 12:29 ` Noralf Trønnes
2022-10-19 8:48 ` [Intel-gfx] " Maxime Ripard
2022-10-19 8:48 ` Maxime Ripard
2022-10-19 8:48 ` Maxime Ripard
2022-10-19 8:48 ` [Nouveau] " Maxime Ripard
2022-10-19 8:48 ` Maxime Ripard
2022-10-19 10:43 ` [Intel-gfx] " Noralf Trønnes
2022-10-19 10:43 ` Noralf Trønnes
2022-10-19 10:43 ` Noralf Trønnes
2022-10-19 10:43 ` [Nouveau] " Noralf Trønnes
2022-10-19 10:43 ` Noralf Trønnes
2022-10-20 11:29 ` [Intel-gfx] " maxime
2022-10-20 11:29 ` maxime
2022-10-20 11:29 ` maxime
2022-10-20 11:29 ` [Nouveau] " maxime
2022-10-20 11:29 ` maxime
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 13/22] drm/modes: Introduce the tv_mode property as a command-line option Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-16 17:51 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-16 17:51 ` Mateusz Kwiatkowski
2022-10-16 17:51 ` Mateusz Kwiatkowski
2022-10-16 17:51 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 17:51 ` Mateusz Kwiatkowski
2022-10-17 10:21 ` [Intel-gfx] " Noralf Trønnes
2022-10-17 10:21 ` Noralf Trønnes
2022-10-17 10:21 ` Noralf Trønnes
2022-10-17 10:21 ` [Nouveau] " Noralf Trønnes
2022-10-17 10:21 ` Noralf Trønnes
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 14/22] drm/modes: Properly generate a drm_display_mode from a named mode Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Intel-gfx] [PATCH v5 15/22] drm/modes: Introduce more named modes Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:18 ` [Nouveau] " Maxime Ripard
2022-10-13 13:18 ` Maxime Ripard
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 16/22] drm/atomic-helper: Add a TV properties reset helper Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-17 10:36 ` [Intel-gfx] " Noralf Trønnes
2022-10-17 10:36 ` Noralf Trønnes
2022-10-17 10:36 ` Noralf Trønnes
2022-10-17 10:36 ` [Nouveau] " Noralf Trønnes
2022-10-17 10:36 ` Noralf Trønnes
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 17/22] drm/atomic-helper: Add an analog TV atomic_check implementation Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 18/22] drm/vc4: vec: Use TV Reset implementation Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 19/22] drm/vc4: vec: Check for VEC output constraints Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-16 18:12 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-16 18:12 ` Mateusz Kwiatkowski
2022-10-16 18:12 ` Mateusz Kwiatkowski
2022-10-16 18:12 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 18:12 ` Mateusz Kwiatkowski
2022-10-16 18:16 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-16 18:16 ` Mateusz Kwiatkowski
2022-10-16 18:16 ` Mateusz Kwiatkowski
2022-10-16 18:16 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 18:16 ` Mateusz Kwiatkowski
2022-10-18 8:27 ` [Intel-gfx] " Maxime Ripard
2022-10-18 8:27 ` Maxime Ripard
2022-10-18 8:27 ` Maxime Ripard
2022-10-18 8:27 ` [Nouveau] " Maxime Ripard
2022-10-18 8:27 ` Maxime Ripard
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-16 18:52 ` Mateusz Kwiatkowski [this message]
2022-10-16 18:52 ` Mateusz Kwiatkowski
2022-10-16 18:52 ` Mateusz Kwiatkowski
2022-10-16 18:52 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 18:52 ` Mateusz Kwiatkowski
2022-10-16 18:56 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-16 18:56 ` Mateusz Kwiatkowski
2022-10-16 18:56 ` Mateusz Kwiatkowski
2022-10-16 18:56 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 18:56 ` Mateusz Kwiatkowski
2022-10-17 10:31 ` [Intel-gfx] " Noralf Trønnes
2022-10-17 10:31 ` Noralf Trønnes
2022-10-17 10:31 ` Noralf Trønnes
2022-10-17 10:31 ` [Nouveau] " Noralf Trønnes
2022-10-17 10:31 ` Noralf Trønnes
2022-10-18 10:00 ` [Intel-gfx] " Maxime Ripard
2022-10-18 10:00 ` Maxime Ripard
2022-10-18 10:00 ` Maxime Ripard
2022-10-18 10:00 ` [Nouveau] " Maxime Ripard
2022-10-18 10:00 ` Maxime Ripard
2022-10-18 21:28 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-18 21:28 ` Mateusz Kwiatkowski
2022-10-18 21:28 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-20 11:58 ` [Intel-gfx] " maxime
2022-10-20 11:58 ` maxime
2022-10-20 11:58 ` maxime
2022-10-20 11:58 ` [Nouveau] " maxime
2022-10-20 11:58 ` maxime
2022-10-17 11:39 ` [Intel-gfx] " Noralf Trønnes
2022-10-17 11:39 ` Noralf Trønnes
2022-10-17 11:39 ` Noralf Trønnes
2022-10-17 11:39 ` [Nouveau] " Noralf Trønnes
2022-10-17 11:39 ` Noralf Trønnes
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 21/22] drm/vc4: vec: Add support for more analog TV standards Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-16 19:02 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-16 19:02 ` Mateusz Kwiatkowski
2022-10-16 19:02 ` Mateusz Kwiatkowski
2022-10-16 19:02 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 19:02 ` Mateusz Kwiatkowski
2022-10-16 19:46 ` [Intel-gfx] [PATCH] drm/vc4: vec: Add support for PAL-60 Mateusz Kwiatkowski
2022-10-16 19:46 ` Mateusz Kwiatkowski
2022-10-16 19:46 ` Mateusz Kwiatkowski
2022-10-16 19:46 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-16 19:46 ` Mateusz Kwiatkowski
2022-10-18 8:31 ` [Intel-gfx] " Maxime Ripard
2022-10-18 8:31 ` Maxime Ripard
2022-10-18 8:31 ` Maxime Ripard
2022-10-18 8:31 ` [Nouveau] " Maxime Ripard
2022-10-18 8:31 ` Maxime Ripard
2022-10-18 20:57 ` [Intel-gfx] " Mateusz Kwiatkowski
2022-10-18 20:57 ` Mateusz Kwiatkowski
2022-10-18 20:57 ` Mateusz Kwiatkowski
2022-10-18 20:57 ` [Nouveau] " Mateusz Kwiatkowski
2022-10-18 20:57 ` Mateusz Kwiatkowski
2022-10-20 15:34 ` [Intel-gfx] " maxime
2022-10-20 15:34 ` maxime
2022-10-20 15:34 ` maxime
2022-10-20 15:34 ` [Nouveau] " maxime
2022-10-20 15:34 ` maxime
2022-10-13 13:19 ` [Intel-gfx] [PATCH v5 22/22] drm/sun4i: tv: Convert to the new TV mode property Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 13:19 ` [Nouveau] " Maxime Ripard
2022-10-13 13:19 ` Maxime Ripard
2022-10-13 18:23 ` [Intel-gfx] " Jernej Škrabec
2022-10-13 18:23 ` Jernej Škrabec
2022-10-13 18:23 ` Jernej Škrabec
2022-10-13 18:23 ` [Nouveau] " Jernej Škrabec
2022-10-13 18:23 ` Jernej Škrabec
2022-10-14 7:38 ` [Intel-gfx] " Maxime Ripard
2022-10-14 7:38 ` Maxime Ripard
2022-10-14 7:38 ` Maxime Ripard
2022-10-14 7:38 ` [Nouveau] " Maxime Ripard
2022-10-14 7:38 ` Maxime Ripard
2022-10-15 8:59 ` [Intel-gfx] " Jernej Škrabec
2022-10-15 8:59 ` Jernej Škrabec
2022-10-15 8:59 ` Jernej Škrabec
2022-10-15 8:59 ` [Nouveau] " Jernej Škrabec
2022-10-15 8:59 ` Jernej Škrabec
2022-10-13 14:32 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm: Analog TV Improvements (rev4) Patchwork
2022-10-17 22:01 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm: Analog TV Improvements (rev5) Patchwork
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=c1949248-fb40-682c-492e-bafbd915cee3@gmail.com \
--to=kfyatek@gmail.com \
--cc=airlied@linux.ie \
--cc=bskeggs@redhat.com \
--cc=daniel@ffwll.ch \
--cc=dave.stevenson@raspberrypi.com \
--cc=dom@raspberrypi.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=emma@anholt.net \
--cc=geert@linux-m68k.org \
--cc=hdegoede@redhat.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=jernej.skrabec@gmail.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kfyatek+publicgit@gmail.com \
--cc=kherbst@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=lyude@redhat.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=maxime@cerno.tech \
--cc=mripard@kernel.org \
--cc=noralf@tronnes.org \
--cc=nouveau@lists.freedesktop.org \
--cc=phil@raspberrypi.com \
--cc=rodrigo.vivi@intel.com \
--cc=samuel@sholland.org \
--cc=tvrtko.ursulin@linux.intel.com \
--cc=tzimmermann@suse.de \
--cc=wens@csie.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.