drm/panel: simple: Add Ampire am800480b3tmqw
Subsystems (3)
PATCH 1/1 drm/panel: simple: Add Ampire am800480b3tmqw
This adds support for the Ampire am800480b3tmqw display, a 7" 24-bit RGB panel wtih 800x480 resolution.
drivers/gpu/drm/panel/panel-simple.c +28 -0
@@ -436,6 +436,31 @@ static const struct panel_desc ampire_am800480r3tmqwa1h = { .bus_format = MEDIA_BUS_FMT_RGB666_1X18, }; +static const struct drm_display_mode ampire_am800480b3tmqw_mode = { + .clock =30000 , + .hdisplay =800 , + .hsync_start =800 +210 , + .hsync_end =800 +210 +46 , + .htotal =800 +210 +46 +0 , + .vdisplay =480 , + .vsync_start =480 +22 , + .vsync_end =480 +22 +23 , + .vtotal =480 +22 +23 +0 , + .vrefresh =60 , + .flags =DRM_MODE_FLAG_PHSYNC |DRM_MODE_FLAG_PVSYNC , +}; + +static const struct panel_desc ampire_am800480b3tmqw = { + .modes = &ire_am800480b3tmqw_mode, + .num_modes =1 , + .bpc =6 , + .size = { + .width =152 , + .height =91 , + }, + .bus_format =MEDIA_BUS_FMT_RBG888_1X24 , +}; +static const struct drm_display_mode auo_b101aw03_mode = { .clock =51450 , .hdisplay =1024 ,
@@ -2330,6 +2355,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "ampire,am800480r3tmqwa1h", .data = &ire_am800480r3tmqwa1h, + }, { + .compatible = "ampire,am800480b3tmqw", + .data = &ire_am800480b3tmqw, }, { .compatible = "auo,b101aw03", .data = &auo_b101aw03,
Signature · 1 line
2.17.1
Hi Adam
Quoted 16 lines · Adam Ford
This adds support for the Ampire am800480b3tmqw display, a 7" 24-bit RGB panel wtih 800x480 resolution.
Signed-off-by Adam Ford <[email protected]>drivers/gpu/drm/panel/panel-simple.c +3
-0@@ -436,6 +436,31 @@ static const struct panel_desc ampire_am800480r3tmqwa1h = { .bus_format = MEDIA_BUS_FMT_RGB666_1X18, }; +static const struct drm_display_mode ampire_am800480b3tmqw_mode = { + .clock =30000 , + .hdisplay =800 ,
drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc ampire_am800480r3tmqwa1h = { · line 451
Quoted 10 lines
drivers/gpu/drm/panel/panel-simple.c +10
-0+ .hsync_start = 800 + 210, + .hsync_end = 800 + 210 + 46, + .htotal = 800 + 210 + 46 + 0, + .vdisplay = 480, + .vsync_start = 480 + 22, + .vsync_end = 480 + 22 + 23, + .vtotal = 480 + 22 + 23 + 0, + .vrefresh = 60, + .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC, +};
+1 to see .flags specified
drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc ampire_am800480r3tmqwa1h = { · line 462
Quoted 11 lines
drivers/gpu/drm/panel/panel-simple.c +11
-0+ +static const struct panel_desc ampire_am800480b3tmqw = { + .modes = &ire_am800480b3tmqw_mode, + .num_modes =1 , + .bpc =6 , + .size = { + .width =152 , + .height =91 , + }, + .bus_format =MEDIA_BUS_FMT_RBG888_1X24 , +};
Likewise good to see .bus_format specified.
But .bus_flags are not specified.
Quoted 1 line
From the header file:
<<<<<<<<<<<<<<<<<<<<
#define DRM_BUS_FLAG_DE_LOW (1<<0)
#define DRM_BUS_FLAG_DE_HIGH (1<<1)
/* drive data on pos. edge */
#define DRM_BUS_FLAG_PIXDATA_POSEDGE (1<<2)
/* drive data on neg. edge */
#define DRM_BUS_FLAG_PIXDATA_NEGEDGE (1<<3)
/* data is transmitted MSB to LSB on the bus */
#define DRM_BUS_FLAG_DATA_MSB_TO_LSB (1<<4)
/* data is transmitted LSB to MSB on the bus */
#define DRM_BUS_FLAG_DATA_LSB_TO_MSB (1<<5)
/* drive sync on pos. edge */
#define DRM_BUS_FLAG_SYNC_POSEDGE (1<<6)
/* drive sync on neg. edge */
#define DRM_BUS_FLAG_SYNC_NEGEDGE (1<<7)
/**
* @bus_flags: Additional information (like pixel signal polarity) for
* the pixel data on the bus, using DRM_BUS_FLAGS\_ defines.
*/
u32 bus_flags;Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
<
Many panels leave out .bus_flags - and I wonder if this is because default is OK or because most other panels does so.
I had problems with my display that the text looked blurred when bus_flags was no specified (using defaults). This was one issue I had when migrating from 4.4 kernel to a recent kernel.
So therefore it would good to have .bus_flags specified too if for nothing else then for documentation purposes.
Sam