[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <jubbid3i7revhr4dg2dp6mbnja3yvrndwncppfx66ftnryx47d@q645nyfiaav4>
Date: Thu, 6 Feb 2025 05:11:33 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: fnkl.kernel@...il.com
Cc: Hector Martin <marcan@...can.st>, Sven Peter <sven@...npeter.dev>,
Alyssa Rosenzweig <alyssa@...enzweig.io>, Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>,
Neil Armstrong <neil.armstrong@...aro.org>, Jessica Zhang <quic_jesszhan@...cinc.com>, asahi@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, dri-devel@...ts.freedesktop.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, Alyssa Ross <hi@...ssa.is>, Nick Chan <towinchenmi@...il.com>
Subject: Re: [PATCH v5 3/5] drm: panel: Add a panel driver for the Summit
display
On Wed, Feb 05, 2025 at 11:10:52PM +0100, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@...il.com>
>
> This is the display panel used for the touchbar on laptops that have it.
>
> Co-developed-by: Nick Chan <towinchenmi@...il.com>
> Signed-off-by: Nick Chan <towinchenmi@...il.com>
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@...il.com>
> ---
> 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 <dmitry.baryshkov@...aro.org>
> +static const struct drm_panel_funcs summit_panel_funcs = {
> + .get_modes = summit_get_modes,
> +};
> +
--
With best wishes
Dmitry
Powered by blists - more mailing lists