From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 15/17] sunxi: Ippo_q8h defconfigs: Enable the LCD panel found on these tablets.
Date: Thu, 1 Jan 2015 22:03:55 +0200 [thread overview]
Message-ID: <20150101220355.407e6185@i7> (raw)
In-Reply-To: <54A3DC69.5040509@redhat.com>
On Wed, 31 Dec 2014 12:22:17 +0100
Hans de Goede <hdegoede@redhat.com> wrote:
> On 30-12-14 13:17, Siarhei Siamashka wrote:
> > On Tue, 30 Dec 2014 11:26:51 +0100
> > Hans de Goede <hdegoede@redhat.com> wrote:
> >
> >> Currently basically only lcd_if = 0 and lcd_frm = 1 are supported, it
> >> should be possible to add support for other lcd_frm = x values easily,
> >> so if you encounter those let me know, lcd_if != 0 is going to be much
> >> harder to support and currently is not on my schedule.
> >
> > It's all in the orange part of the table at the bottom. The lcd_frm = 0
> > seems to be relatively common. The links to FEX files for each device
> > are also there in the table and can be used to confirm the details.
> >
> > The http://linux-sunxi.org/Wexler_TAB_7200 tablet with its fex file
> > https://github.com/linux-sunxi/sunxi-boards/blob/master/sys_config/a20/wexler_tab_7200.fex
> > is one of the examples.
>
> Ok, so I've looked this up in the linux-sunxi code again to freshen my
> memory, and grepping that code gives this:
>
> drivers/video/sunxi/disp/ebios_lcdc_tve.h
> 51: LCDC_FRM_RGB888 = 0,
> 52: LCDC_FRM_RGB666 = 1,
> 53: LCDC_FRM_RGB656 = 2,
>
> All 3 of which are already supported (but other then LCDC_FRM_RGB666
> untested) in the u-boot lcd code :
>
> LCDC_FRM_RGB888 -> depth:24
> LCDC_FRM_RGB666 -> depth:18
> LCDC_FRM_RGB656 -> depth:17
>
> So this results in the following translation:
>
> lcd_frm = 0 -> depth:24
> lcd_frm = 1 -> depth:18
> lcd_frm = 2 -> depth:17
In fact the 'lcd_frm' FEX option only controls dithering. The color
depth is controlled by the 'lcd_cpu_if' FEX option. These color
depth settings end up in the TCON0_CPU_IF_REG register, and your
LCD patches currently unconditionally set it to 18-bit depth
anyway.
There is also a wiki page, describing FEX settings with a lot of
useful information there:
http://linux-sunxi.org/Fex_Guide#lcd.5B0.2F1.5D_configuration
As for the dithering settings, you can try to compare the results of
having "depth:0" vs. "depth:18" in CONFIG_VIDEO_LCD_MODE and using
the following simple test program.
With "depth:0", the picture looks correct, but blocky (6 bits per
color component is not great for gradients without dithering).
With "depth:18", the picture looks smooth.
/******** Display a gradient picture ************/
#include <stdint.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
int main()
{
int fd, x, y;
uint32_t *fb;
struct fb_fix_screeninfo finfo;
struct fb_var_screeninfo vinfo;
if ((fd = open("/dev/fb0", O_RDWR)) == -1) {
printf("Can't open /dev/fb0\n");
return 1;
}
if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
printf("FBIOGET_FSCREENINFO failed\n");
return 1;
}
if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {
printf("FBIOGET_VSCREENINFO failed\n");
return 1;
}
if (vinfo.bits_per_pixel != 32) {
printf("Only 32bpp framebuffer is supported\n");
return 1;
}
fb = mmap(0, finfo.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (fb == (void *)-1) {
printf("mmap failed\n");
return 1;
}
for (y = 0; y < vinfo.yres; y++)
for (x = 0; x < vinfo.xres; x++)
fb[y * vinfo.xres + x] = (255 * x / vinfo.xres) * 0x000100 +
(255 * y / vinfo.yres) * 0x010001;
return 0;
}
/************************************************/
So "lcd_frm = 0" is not expected to cause any problems and is
already supported. But naming and meaning of the options in the
CONFIG_VIDEO_LCD_MODE string could be improved.
I just wonder why there are so many FEX files with lcd_frm = 0. It
does not seem to be a great idea, unless there is some good reason.
--
Best regards,
Siarhei Siamashka
next prev parent reply other threads:[~2015-01-01 20:03 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-24 19:06 [U-Boot] sunxi: video: Add LCD output and A13-Olinuxino VGA output support Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 01/17] videomodes: Add support for refresh and pclk_khz to video_get_params() Hans de Goede
2014-12-28 9:27 ` Ian Campbell
2015-01-08 17:23 ` Anatolij Gustschin
2014-12-24 19:06 ` [U-Boot] [PATCH 02/17] sunxi: gpio: Properly sort mux defines by port number Hans de Goede
2014-12-28 9:28 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 03/17] sunxi: gpio: Add support for gpio pins on the AXP209 pmic Hans de Goede
2014-12-28 9:34 ` Ian Campbell
2014-12-28 10:35 ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 04/17] sunxi: video: Drop disabling of backend / lcdc / hdmi encoder on modeset Hans de Goede
2014-12-28 9:34 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 05/17] sunxi: video: Improve monitor video-mode option handling Hans de Goede
2014-12-28 9:40 ` Ian Campbell
2014-12-28 10:55 ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 06/17] sunxi: video: Prepare for lcd support Hans de Goede
2014-12-28 9:41 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 07/17] sunxi: video: Modify sunxi_lcdc_pll_set to work with both tcon0 and tcon1 Hans de Goede
2014-12-29 13:36 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 08/17] sunxi: video: Move sunxi_drc_init Hans de Goede
2014-12-25 9:08 ` Chen-Yu Tsai
2014-12-25 10:22 ` Hans de Goede
2014-12-29 13:37 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 09/17] sunxi: video: Add lcd output support Hans de Goede
2014-12-29 13:43 ` Ian Campbell
2014-12-31 11:59 ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 10/17] sunxi: video: Add suppport SoCs without HDMI, e.g. the A13 and A23 Hans de Goede
2014-12-29 13:50 ` Ian Campbell
2014-12-31 12:07 ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 11/17] sunxi: video: Add support for VGA via external DACs connected to the LCD pins Hans de Goede
2014-12-29 13:51 ` Ian Campbell
2014-12-29 19:25 ` Hans de Goede
2014-12-30 2:21 ` Chen-Yu Tsai
2014-12-30 10:21 ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 12/17] sunxi: sunxi-common.h: Reduce bootm_size to take the framebuffer into account Hans de Goede
2014-12-29 13:52 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 13/17] sunxi: A13-OLinuXino defconfigs: Enable VGA output, add lcd-mode for 7" LCD Hans de Goede
2014-12-29 13:53 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 14/17] sunxi: Add 2 defconfigs for using the Olimex 7" lcd with olinuxino boards Hans de Goede
2014-12-29 13:55 ` Ian Campbell
2014-12-29 19:27 ` Hans de Goede
2014-12-30 7:25 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 15/17] sunxi: Ippo_q8h defconfigs: Enable the LCD panel found on these tablets Hans de Goede
2014-12-25 10:00 ` Chen-Yu Tsai
2014-12-25 10:59 ` Hans de Goede
2014-12-26 6:44 ` Chen-Yu Tsai
2014-12-26 10:48 ` Hans de Goede
2014-12-29 13:57 ` Ian Campbell
2014-12-29 15:56 ` Chen-Yu Tsai
2014-12-29 19:31 ` Hans de Goede
2014-12-30 10:18 ` Siarhei Siamashka
2014-12-30 10:26 ` Hans de Goede
2014-12-30 10:36 ` Hans de Goede
2014-12-30 11:25 ` Siarhei Siamashka
2014-12-31 11:22 ` Hans de Goede
2014-12-30 12:17 ` Siarhei Siamashka
2014-12-31 11:22 ` Hans de Goede
2015-01-01 2:35 ` Chen-Yu Tsai
2015-01-01 12:36 ` Hans de Goede
2015-01-02 11:02 ` Siarhei Siamashka
2015-01-04 20:22 ` Hans de Goede
2015-01-01 20:03 ` Siarhei Siamashka [this message]
2015-01-01 20:15 ` Hans de Goede
2015-01-01 21:05 ` Siarhei Siamashka
2014-12-24 19:06 ` [U-Boot] [PATCH 16/17] sunxi: video: Remove sunxi_display.enabled variable Hans de Goede
2014-12-29 13:57 ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 17/17] sunxi: video: Use sunxi_lcdc_get_clk_delay to calculate tcon1 delay Hans de Goede
2014-12-29 13:58 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150101220355.407e6185@i7 \
--to=siarhei.siamashka@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox