Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HDMI timing incorrect #9

Open
jadonk opened this issue Nov 30, 2012 · 12 comments
Open

HDMI timing incorrect #9

jadonk opened this issue Nov 30, 2012 · 12 comments
Assignees
Labels

Comments

@jadonk
Copy link
Member

jadonk commented Nov 30, 2012

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

@jadonk
Copy link
Member Author

jadonk commented Nov 30, 2012

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

@koenkooi
Copy link
Contributor

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

@ghost ghost assigned joelagnel Nov 30, 2012
@koenkooi
Copy link
Contributor

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
Copy link
Contributor

Still nothing with this one:

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

da8xx-fb: hack to fix pixclk

Signed-off-by: Joel A Fernandes <[email protected]>

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
Copy link
Member

I will send a da8xx-fb patch for clocks , which is a hack in a while. if
you could test, would be nice

On Fri, Nov 30, 2012 at 10:13 AM, Koen Kooi [email protected]:

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


Reply to this email directly or view it on GitHubhttps://github.com//issues/9#issuecomment-10894370.

@RobertCNelson
Copy link
Member

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

@koenkooi
Copy link
Contributor

koenkooi commented Dec 7, 2012

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
Copy link
Contributor

koenkooi commented Dec 7, 2012

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
Copy link
Contributor

koenkooi commented Dec 7, 2012

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

@joelagnel
Copy link
Member

Hi Koen,

disp-pll is not the same as pixclk, disp-pll is the input provided to the
LCDC module from the PRCM. It is an internal PLL in the PRCM that is
divided down by LCDC. So disp-pll has to be at that high value and we
divide it down.

These values were carefully calculated so changing them wont help, as the
divded down clock has to be very accurate otherwise the NXP device doesn't
show an image 74.25 cannot be 75.5, it is very particular about these
values.

You should see a 74.25MHz clock signal leaving the current disp-pll as it
is. Can you dump what the 'div' value is in da8xx-fb.c after the divison is
done? And then manually do the disp-pll / pixclk division yourself in a
calculator, and see if the values match?

Thank you for helping test this.

On Fri, Dec 7, 2012 at 3:45 AM, Koen Kooi [email protected] wrote:

000

@joelagnel
Copy link
Member

Also, please share what board revision you're using. Old boards had
hdmi connector mods done which shouldn't show any signal.

Also, could you try another monitor?

On Fri, Dec 7, 2012 at 2:30 PM, Joel A Fernandes [email protected] wrote:

Hi Koen,

disp-pll is not the same as pixclk, disp-pll is the input provided to the
LCDC module from the PRCM. It is an internal PLL in the PRCM that is divided
down by LCDC. So disp-pll has to be at that high value and we divide it
down.

These values were carefully calculated so changing them wont help, as the
divded down clock has to be very accurate otherwise the NXP device doesn't
show an image 74.25 cannot be 75.5, it is very particular about these
values.

You should see a 74.25MHz clock signal leaving the current disp-pll as it
is. Can you dump what the 'div' value is in da8xx-fb.c after the divison is
done? And then manually do the disp-pll / pixclk division yourself in a
calculator, and see if the values match?

Thank you for helping test this.

On Fri, Dec 7, 2012 at 3:45 AM, Koen Kooi [email protected] wrote:

000

@koenkooi
Copy link
Contributor

Revision A1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants