
Add the latest linux available from https://github.com/armbian/build commit de58ac1faac92724c6449db12c22affaeb003875, tag: sunxi-5.3, alongside all the patches that it comes with. Signed-off-by: Vicentiu Galanopulo <vicentiu@balena.io>
66 lines
2.5 KiB
Diff
66 lines
2.5 KiB
Diff
From af6d185a66b416cb714fb3f1602e8e3f5ca46632 Mon Sep 17 00:00:00 2001
|
|
From: Chen-Yu Tsai <wens@csie.org>
|
|
Date: Fri, 7 Sep 2018 12:19:43 +0800
|
|
Subject: [PATCH 087/146] drm/sun4i: tcon: Pass drm_encoder * into
|
|
sun4i_tcon0_mode_set_cpu
|
|
|
|
sun4i_tcon0_mode_set_cpu() currently accepts struct mipi_dsi_device *
|
|
as its second parameter. This is derived from drm_encoder.
|
|
|
|
The DSI encoder is tied to the CPU interface mode of the TCON as a
|
|
special case. In theory, if hardware were available, we could also
|
|
support normal CPU interface modes. It is better to pass the generic
|
|
encoder instead of the specialized mipi_dsi_device, and handle the
|
|
differences inside the function.
|
|
|
|
Passing the encoder would also enable the function to pass it, or any
|
|
other data structures related to it, to other functions expecting it.
|
|
One such example would be dithering support that will be added in a
|
|
later patch, which looks at properties tied to the connector to
|
|
determine whether dithering should be enabled or not.
|
|
|
|
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
|
|
---
|
|
drivers/gpu/drm/sun4i/sun4i_tcon.c | 15 ++++++---------
|
|
1 file changed, 6 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
|
|
index 3fb084f802e2..52e1150612ba 100644
|
|
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
|
|
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
|
|
@@ -276,9 +276,12 @@ static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon,
|
|
}
|
|
|
|
static void sun4i_tcon0_mode_set_cpu(struct sun4i_tcon *tcon,
|
|
- struct mipi_dsi_device *device,
|
|
+ const struct drm_encoder *encoder,
|
|
const struct drm_display_mode *mode)
|
|
{
|
|
+ /* TODO support normal CPU interface modes */
|
|
+ struct sun6i_dsi *dsi = encoder_to_sun6i_dsi(encoder);
|
|
+ struct mipi_dsi_device *device = dsi->device;
|
|
u8 bpp = mipi_dsi_pixel_format_to_bpp(device->format);
|
|
u8 lanes = device->lanes;
|
|
u32 block_space, start_delay;
|
|
@@ -581,16 +584,10 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon,
|
|
const struct drm_encoder *encoder,
|
|
const struct drm_display_mode *mode)
|
|
{
|
|
- struct sun6i_dsi *dsi;
|
|
-
|
|
switch (encoder->encoder_type) {
|
|
case DRM_MODE_ENCODER_DSI:
|
|
- /*
|
|
- * This is not really elegant, but it's the "cleaner"
|
|
- * way I could think of...
|
|
- */
|
|
- dsi = encoder_to_sun6i_dsi(encoder);
|
|
- sun4i_tcon0_mode_set_cpu(tcon, dsi->device, mode);
|
|
+ /* DSI is tied to special case of CPU interface */
|
|
+ sun4i_tcon0_mode_set_cpu(tcon, encoder, mode);
|
|
break;
|
|
case DRM_MODE_ENCODER_LVDS:
|
|
sun4i_tcon0_mode_set_lvds(tcon, encoder, mode);
|
|
--
|
|
2.17.1
|
|
|