Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

HDMI timing incorrect #9

Open
jadonk opened this Issue · 12 comments

4 participants

@jadonk
Owner

I'm currently getting timings that my display doesn't support, despite EDID read reporting success.

@jadonk
Owner

Is it possible to assign these issues to individual branches? This issue is on the 3.7 branch.

@koenkooi

I get "no signal" on my monitor with the current code.

@joelagnel joelagnel was assigned
@koenkooi

root@bonelt:~# dmesg | grep -i hdmi
[ 0.532761] capebus bone:0: Slot #1 id='NXP HDMI on CapeBus,00A1,Beagleboardtoys,Override Part#'
[ 0.623097] bonegeneric bone-0:1: NXP HDMI on CapeBus: V=00A1 'bone-generic-cape'
[ 0.646773] hdmitx(tda19989) 1.3.0 compiled: Nov 30 2012 11:44:35 -ioctl (2009-10-15)
[ 0.876056] HDMI TX SW Version:5.3 compatibility:0
[ 1.901595] hdmi EDID received
[ 1.901621] tmdlHdmiTxGetEdidSourceAddress 3813

root@bonelt:~# fbset

mode "720x480-75"
# D: 33.751 MHz, H: 39.475 kHz, V: 75.333 Hz
geometry 720 480 720 480 16
timings 29629 59 15 30 9 61 5
rgba 5/11,6/5,5/0,0/0
endmode

root@bonelt:~# uname -a
Linux bonelt 3.7.0-rc7 #320 SMP Fri Nov 30 11:44:41 CET 2012 armv7l GNU/Linux

@koenkooi

Still nothing with this one:

[koen@Angstrom-F16-vm-rpm kernel]$ git show |
commit 28f96c1bb4771247627e5fd0d0e4e1c5c9f39c3b
Author: Joel A Fernandes joelagnel@ti.com
Date: Fri Nov 30 10:29:29 2012 -0600

da8xx-fb: hack to fix pixclk

Signed-off-by: Joel A Fernandes <joelagnel@ti.com>

diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 91061e6..39977b3 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -771,7 +771,7 @@ static void lcd_calc_clk_divider(struct da8xx_fb_par *par)
unsigned int lcd_clk, div;

    lcd_clk = clk_get_rate(par->lcdc_clk);
  • div = lcd_clk / par->pxl_clk;
  • div = 5;

root@bonelt:~# fbset

mode "720x480-75"
# D: 33.751 MHz, H: 39.475 kHz, V: 75.333 Hz
geometry 720 480 720 480 16
timings 29629 59 15 30 9 61 5
rgba 5/11,6/5,5/0,0/0
endmode

root@bonelt:~# uname -a
Linux bonelt 3.7.0-rc7 #321 SMP Fri Nov 30 17:47:33 CET 2012 armv7l GNU/Linux
root@bonelt:~# dmesg | grep -i hdmi
[ 0.536468] capebus bone:0: Slot #1 id='NXP HDMI on CapeBus,00A1,Beagleboardtoys,Override Part#'
[ 0.626797] bonegeneric bone-0:1: NXP HDMI on CapeBus: V=00A1 'bone-generic-cape'
[ 0.650437] hdmitx(tda19989) 1.3.0 compiled: Nov 30 2012 11:44:35 -ioctl (2009-10-15)
[ 0.879745] HDMI TX SW Version:5.3 compatibility:0
[ 1.905685] hdmi EDID received
[ 1.905715] tmdlHdmiTxGetEdidSourceAddress 3813
root@bonelt:~# dmesg | grep -i tx

[ 0.424911] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 0.425781] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 0.650437] hdmitx(tda19989) 1.3.0 compiled: Nov 30 2012 11:44:35 -ioctl (2009-10-15)
[ 0.824088] Setting E_REG_P12_TX3_RW
[ 0.879745] HDMI TX SW Version:5.3 compatibility:0
[ 1.028087] Setting E_REG_P12_TX3_RW
[ 1.905715] tmdlHdmiTxGetEdidSourceAddress 3813
[ 1.905729] Invalid state for function returned in eventCallbackTx line 912
root@bonelt:~#

@joelagnel
Collaborator
@RobertCNelson
Collaborator

jadonk: the easiest i've found, just create a "3.7" milestone and just tag the bug report with that milestone...

@koenkooi

With the latest patches I still can't get it to work. In the DT:

                    disp-pll = <371000000>;
                    panel-type = "nxp-1280x720@60";

In drivers/video/da8xx-fb.c:

            .name = "nxp-1280x720@60",
            .width = 1280,
            .height = 720,
            .hfp = 109, // 20
            .hbp = 219, // 54
            .hsw = 39,
            .vfp = 5,
            .vbp = 19,
            .vsw = 5,
            .pxl_clk = 74250000,

In drivers/video/nxp/tda998x.c:

static struct omap_video_timings video_1280x720at60Hz_panel_timings = {
.x_res = 1280,
.y_res = 720,
.pixel_clock = 74250,
#ifdef ZOOMII_PATCH
.hfp = 70,
.hbp = 260,
#else
.hfp = 110,
.hbp = 220,
#endif
.hsw = 40,
.vfp = 5,
.vbp = 20,
.vsw = 5,
};

So both the fb and the hdmi driver want a 74.25MHz pixclock, but the DT asks for a 37.1MHz clock. I compared it to the 1024x768 dvi cape DT:

                    disp-pll = <560000000>;
                    panel-type = "1024x768@60";

And hooked that up to a scope. It shows a 56MHz pixclock. So I changed the hdmi DT to have:

                    disp-pll = <742500000>;

And I get a nice 74.25MHz pixclock on the scope, fbset reports 720p60, but still the 'no signal' error on my monitor.

To rule out testing difference: are you using the image that Jason told people to use in the shipment email? If not, could you please try that and replace /boot/uImage with on built from https://github.com/beagleboard/kernel/tree/3.7 using configs/beaglebone as .config?

@koenkooi

I redid the steps to update it to 74.25MHz and I don't get a nice 74.25MHz signal on my scope. I'm not sure what it is but looks awful :)

@koenkooi

Also, why are most of the timings off-by-one between da8xx and tda998x?

@joelagnel
Collaborator
@joelagnel
Collaborator
@koenkooi

Revision A1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.