Re: [PATCH v5 3/5] drm: panel: Add a panel driver for the Summit display
From: Dmitry Baryshkov <hidden>
Date: 2025-02-06 03:11:39
Also in:
asahi, dri-devel, linux-devicetree, lkml
On Wed, Feb 05, 2025 at 11:10:52PM +0100, Sasha Finkelstein via B4 Relay wrote:
From: Sasha Finkelstein <redacted>
This is the display panel used for the touchbar on laptops that have it.
Co-developed-by: Nick Chan <redacted>
Signed-off-by: Nick Chan <redacted>
Signed-off-by: Sasha Finkelstein <redacted>
---
drivers/gpu/drm/panel/Kconfig | 9 +++
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-summit.c | 132 +++++++++++++++++++++++++++++++++++
3 files changed, 142 insertions(+)
+
+static int summit_get_modes(struct drm_panel *panel,
+ struct drm_connector *connector)
+{
+ struct drm_display_mode *mode = drm_mode_create(connector->dev);
+
+ connector->display_info.non_desktop = true;
+ drm_object_property_set_value(&connector->base,
+ connector->dev->mode_config.non_desktop_property,
+ connector->display_info.non_desktop);
+
+ mode->vdisplay = 2008;
+ mode->hdisplay = 60;
+ mode->hsync_start = mode->hdisplay + 8;
+ mode->hsync_end = mode->hsync_start + 80;
+ mode->htotal = mode->hsync_end + 40;
+ mode->vsync_start = mode->vdisplay + 1;
+ mode->vsync_end = mode->vsync_start + 15;
+ mode->vtotal = mode->vsync_end + 6;
+ mode->clock = (mode->vtotal * mode->htotal * 60) / 1000;
+ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
+ mode->flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC;
+ drm_mode_set_name(mode);
+ drm_mode_probed_add(connector, mode);
+ return 1;
+}I think most of the drivers store mode in a static var and then use drm_connector_helper_get_modes_fixed(). It's a matter of taste, but I think the latter one is a nice helper. Other than that: Reviewed-by: Dmitry Baryshkov <redacted>
+static const struct drm_panel_funcs summit_panel_funcs = {
+ .get_modes = summit_get_modes,
+};
+-- With best wishes Dmitry