[v2,3/4] drm/modes: Add a function to clear preferred modes
Commit Message
Add a function to clear the preferred bit of a connector's existing modes.
This is useful for edp panel to unset the preferred modes read from edid
if the panel has hard-coded modes.
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
---
v1->v2:
- fix doc string (reported by kernel test robot).
- split mode and panel patches.
---
drivers/gpu/drm/drm_modes.c | 16 ++++++++++++++++
include/drm/drm_modes.h | 1 +
2 files changed, 17 insertions(+)
Comments
Hi,
On Thu, Nov 2, 2023 at 3:13 PM Hsin-Yi Wang <hsinyi@chromium.org> wrote:
>
> Add a function to clear the preferred bit of a connector's existing modes.
> This is useful for edp panel to unset the preferred modes read from edid
> if the panel has hard-coded modes.
>
> Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
> ---
> v1->v2:
> - fix doc string (reported by kernel test robot).
> - split mode and panel patches.
> ---
> drivers/gpu/drm/drm_modes.c | 16 ++++++++++++++++
> include/drm/drm_modes.h | 1 +
> 2 files changed, 17 insertions(+)
This seems fine to me.
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Since it introduces a new API to the core and Hsin-Yi and I work
directly together, I'd probably give this ~2 weeks on the list before
landing so there is adequate time for people to comment. That'll be
right in the middle of Plumbers, though, so it might be more like 3
weeks. If someone non-ChromeOS wants to review and/or apply sooner, I
certainly wouldn't object.
On Fri, Nov 03, 2023 at 09:02:33AM -0700, Doug Anderson wrote:
> Hi,
>
> On Thu, Nov 2, 2023 at 3:13 PM Hsin-Yi Wang <hsinyi@chromium.org> wrote:
> >
> > Add a function to clear the preferred bit of a connector's existing modes.
> > This is useful for edp panel to unset the preferred modes read from edid
> > if the panel has hard-coded modes.
> >
> > Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
> > ---
> > v1->v2:
> > - fix doc string (reported by kernel test robot).
> > - split mode and panel patches.
> > ---
> > drivers/gpu/drm/drm_modes.c | 16 ++++++++++++++++
> > include/drm/drm_modes.h | 1 +
> > 2 files changed, 17 insertions(+)
>
> This seems fine to me.
>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
>
> Since it introduces a new API to the core and Hsin-Yi and I work
> directly together, I'd probably give this ~2 weeks on the list before
> landing so there is adequate time for people to comment. That'll be
> right in the middle of Plumbers, though, so it might be more like 3
> weeks. If someone non-ChromeOS wants to review and/or apply sooner, I
> certainly wouldn't object.
FTR, I just made some review on v1 that still applies to that version.
Maxime
@@ -1933,6 +1933,22 @@ void drm_connector_list_update(struct drm_connector *connector)
}
EXPORT_SYMBOL(drm_connector_list_update);
+/**
+ * drm_mode_unset_preferred_modes - clear the preferred bit on existing modes.
+ * @connector: the connector to update
+ *
+ * Walk the mode list for connector, clearing the preferred status on existing
+ * modes.
+ */
+void drm_mode_unset_preferred_modes(struct drm_connector *connector)
+{
+ struct drm_display_mode *cur_mode;
+
+ list_for_each_entry(cur_mode, &connector->probed_modes, head)
+ cur_mode->type &= ~DRM_MODE_TYPE_PREFERRED;
+}
+EXPORT_SYMBOL_GPL(drm_mode_unset_preferred_modes);
+
static int drm_mode_parse_cmdline_bpp(const char *str, char **end_ptr,
struct drm_cmdline_mode *mode)
{
@@ -560,6 +560,7 @@ void drm_mode_prune_invalid(struct drm_device *dev,
struct list_head *mode_list, bool verbose);
void drm_mode_sort(struct list_head *mode_list);
void drm_connector_list_update(struct drm_connector *connector);
+void drm_mode_unset_preferred_modes(struct drm_connector *connector);
/* parsing cmdline modes */
bool