All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Ribalda Delgado <ricardo.ribalda-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Archit Taneja <architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Rob Clark <robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	"alex-fkYMi7rYDl0@public.gmane.org"
	<alex-fkYMi7rYDl0@public.gmane.org>
Subject: Re: db820c: Input signal Out of range
Date: Mon, 13 Aug 2018 10:54:57 +0200	[thread overview]
Message-ID: <CAPybu_0dMfaxBhybHapqfmjHVotA0BBsBs0cjYwdu4eaTT9rmQ@mail.gmail.com> (raw)
In-Reply-To: <d4542b41-aa79-5c50-4971-9e1c1b937b02-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>

Hi Archit
On Sun, Aug 12, 2018 at 9:47 AM Archit Taneja <architt@codeaurora.org> wrote:
>
> Hi,
>
> On Friday 10 August 2018 12:08 PM, Ricardo Ribalda Delgado wrote:
> > Hello
> >
> > I have a screen that via edid expects the following modeline by
> > default via detailed mode:
> >
> > Modeline "1680x1050"x60.0  146.30  1680 1784 1960 2240  1050 1053 1059
> > 1089 +hsync -vsync
> >
> > When the card is configured to that modeline the screen cannot output
> > the image and shows the following error message: Input signal out of
> > range.
> >
> > I have tried with a different card and that exact modeline:
> >
> > xrandr --newmode fast 146.30  1680 1784 1960 2240  1050 1053 1059 1089
> > +hsync -vsync
> > xrandr --addmode HDMI-1 slow
> > xrandr --output HDMI-1 --mode fast
> >
> > and the screen works just fine.
> >
> >
> > If I just tweak down a bit the clock:
> > xrandr --newmode slow 146.25  1680 1784 1960 2240  1050 1053 1059 1089
> > +hsync -vsync
> > the screen shows an image as expected.
> >
> > I believe that there might be a misscalculation on the pll code. And I
> > am printing the debug info from:
> > drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
> >
> > The configuration that fails shows:
> >
> > [  138.553168] VCO freq: 8778000000
> > [  138.553172] fdata: 1463000000
> > [  138.553187] pix_clk: 146300000
> > [  138.555447] tmds clk: 146300000
> > [  138.558336] HSCLK_SEL: 1
> > [  138.561277] DEC_START: 114
> > [  138.564316] DIV_FRAC_START: 311296
> > [  138.567080] PLL_CPCTRL: 11
> > [  138.569614] PLL_RCTRL: 22
> > [  138.572996] PLL_CCTRL: 40
> > [  138.575698] INTEGLOOP_GAIN: 256
> > [  138.578366] TX_BAND: 0
> > [  138.580986] PLL_CMP: 7802
> > [  138.583936] com_svs_mode_clk_sel = 0x2
> > [  138.586351] com_hsclk_sel = 0x21
> > [  138.589067] com_lock_cmp_en = 0x0
> > [  138.592704] com_pll_cctrl_mode0 = 0x28
> > [  138.596089] com_pll_rctrl_mode0 = 0x16
> > [  138.599286] com_cp_ctrl_mode0 = 0xb
> > [  138.602955] com_dec_start_mode0 = 0x72
> > [  138.606678] com_div_frac_start1_mode0 = 0x0
> > [  138.610064] com_div_frac_start2_mode0 = 0xc0
> > [  138.613894] com_div_frac_start3_mode0 = 0x4
> > [  138.617964] com_integloop_gain0_mode0 = 0x0
> > [  138.622478] com_integloop_gain1_mode0 = 0x1
> > [  138.626393] com_lock_cmp1_mode0 = 0x7a
> > [  138.630550] com_lock_cmp2_mode0 = 0x1e
> > [  138.634719] com_lock_cmp3_mode0 = 0x0
> > [  138.638545] com_core_clk_en = 0x2c
> > [  138.642271] com_coreclk_div = 0x5
> > [  138.646001] phy_mode = 0x0
> > [  138.649308] tx_l0_lane_mode = 0x43
> > [  138.652684] tx_l2_lane_mode = 0x43
> > [  138.655275] tx_l0_tx_band = 0x4
> > [  138.658679] tx_l0_tx_drv_lvl = 0x25
> > [  138.662070] tx_l0_tx_emp_post1_lvl = 0x23
> > [  138.665101] tx_l0_vmode_ctrl1 = 0x0
> > [  138.668571] tx_l0_vmode_ctrl2 = 0xd
> > [  138.672747] tx_l1_tx_band = 0x4
> > [  138.676037] tx_l1_tx_drv_lvl = 0x25
> > [  138.679493] tx_l1_tx_emp_post1_lvl = 0x23
> > [  138.682633] tx_l1_vmode_ctrl1 = 0x0
> > [  138.686117] tx_l1_vmode_ctrl2 = 0xd
> > [  138.690272] tx_l2_tx_band = 0x4
> > [  138.693571] tx_l2_tx_drv_lvl = 0x25
> > [  138.697050] tx_l2_tx_emp_post1_lvl = 0x23
> > [  138.700168] tx_l2_vmode_ctrl1 = 0x0
> > [  138.703641] tx_l2_vmode_ctrl2 = 0xd
> > [  138.707816] tx_l3_tx_band = 0x4
> > [  138.711092] tx_l3_tx_drv_lvl = 0x25
> > [  138.714577] tx_l3_tx_emp_post1_lvl = 0x23
> > [  138.717705] tx_l3_vmode_ctrl1 = 0x0
> > [  138.721182] tx_l3_vmode_ctrl2 = 0x0
> >
> > and the configuration that works:
> >
> > [   62.936970] VCO freq: 8775000000
> > [   62.936976] fdata: 1462500000
> > [   62.936990] pix_clk: 146250000
> > [   62.939250] tmds clk: 146250000
> > [   62.942175] HSCLK_SEL: 1
> > [   62.945095] DEC_START: 114
> > [   62.948117] DIV_FRAC_START: 270336
> > [   62.950881] PLL_CPCTRL: 11
> > [   62.953421] PLL_RCTRL: 22
> > [   62.956798] PLL_CCTRL: 40
> > [   62.959475] INTEGLOOP_GAIN: 256
> > [   62.962179] TX_BAND: 0
> > [   62.964785] PLL_CMP: 7799
> > [   62.967738] com_svs_mode_clk_sel = 0x2
> > [   62.970153] com_hsclk_sel = 0x21
> > [   62.972862] com_lock_cmp_en = 0x0
> > [   62.976506] com_pll_cctrl_mode0 = 0x28
> > [   62.979893] com_pll_rctrl_mode0 = 0x16
> > [   62.983088] com_cp_ctrl_mode0 = 0xb
> > [   62.986749] com_dec_start_mode0 = 0x72
> > [   62.990480] com_div_frac_start1_mode0 = 0x0
> > [   62.993868] com_div_frac_start2_mode0 = 0x20
> > [   62.997688] com_div_frac_start3_mode0 = 0x4
> > [   63.001769] com_integloop_gain0_mode0 = 0x0
> > [   63.006281] com_integloop_gain1_mode0 = 0x1
> > [   63.010189] com_lock_cmp1_mode0 = 0x77
> > [   63.014354] com_lock_cmp2_mode0 = 0x1e
> > [   63.018521] com_lock_cmp3_mode0 = 0x0
> > [   63.022338] com_core_clk_en = 0x2c
> > [   63.026072] com_coreclk_div = 0x5
> > [   63.029804] phy_mode = 0x0
> > [   63.033103] tx_l0_lane_mode = 0x43
> > [   63.036488] tx_l2_lane_mode = 0x43
> > [   63.039078] tx_l0_tx_band = 0x4
> > [   63.042479] tx_l0_tx_drv_lvl = 0x25
> > [   63.045864] tx_l0_tx_emp_post1_lvl = 0x23
> > [   63.048901] tx_l0_vmode_ctrl1 = 0x0
> > [   63.052375] tx_l0_vmode_ctrl2 = 0xd
> > [   63.056541] tx_l1_tx_band = 0x4
> > [   63.059840] tx_l1_tx_drv_lvl = 0x25
> > [   63.063295] tx_l1_tx_emp_post1_lvl = 0x23
> > [   63.066437] tx_l1_vmode_ctrl1 = 0x0
> > [   63.069908] tx_l1_vmode_ctrl2 = 0xd
> > [   63.074075] tx_l2_tx_band = 0x4
> > [   63.077373] tx_l2_tx_drv_lvl = 0x25
> > [   63.080844] tx_l2_tx_emp_post1_lvl = 0x23
> > [   63.083971] tx_l2_vmode_ctrl1 = 0x0
> > [   63.087428] tx_l2_vmode_ctrl2 = 0xd
> > [   63.091609] tx_l3_tx_band = 0x4
> > [   63.094906] tx_l3_tx_drv_lvl = 0x25
> > [   63.098379] tx_l3_tx_emp_post1_lvl = 0x23
> > [   63.101505] tx_l3_vmode_ctrl1 = 0x0
> > [   63.104979] tx_l3_vmode_ctrl2 = 0x0
> >
> > Unfortunately I do not have the documentation of the pll to validade
> > any of the two setups.
>
> I'm not sure if there is any public documentation of the hardware
> registers for 8x96. I'd myself mostly ported this code from the
> downstream hdmi PLL driver (the 8996_v3 code in particular):
>
> https://source.codeaurora.org/quic/la/kernel/msm-3.18/tree/drivers/clk/msm/mdss/mdss-hdmi-pll-8996.c?h=msm-3.18
>
> The PLL seems to be getting locked for both cases. But for some reason,
> when trying to configure it for 146.30 Mhz, it's generating a
> wayward enough value for the monitor to reject it.
>
> I looked at the logs, and the configurations match what both the
> upstream and downstream drivers are trying to do.
>
> The main differences between the configurations seem to be the
> fractional component calculation and the computation of PLL_CMP.
>
>  From my experience, minor changes in the fractional component don't
> calculation doesn't cause too much of a difference.
>
> As an experiment, you could try to forcibly set the PLL_CMP value to
> 7799 in the non-working case to check if that's causing the issue.
> We could then try to find out from someone within Qualcomm if there's
> a better way to compute this parameter.

forcing PLL_CMP to 7799 worked :)


Now trying with a different monitor. And it also fails :S This time
with this modeline

Modeline "1680x1050"x59.9  119.00  1680 1728 1760 1840  1050 1053 1059
1080 +hsync -vsync (64.7 kHz eP)

[    6.362578] VCO freq: 9520000000
[    6.362582] fdata: 2380000000
[    6.362584] pix_clk: 119000000
[    6.362586] tmds clk: 119000000
[    6.362588] HSCLK_SEL: 8
[    6.362589] DEC_START: 123
[    6.362591] DIV_FRAC_START: 1004885
[    6.362592] PLL_CPCTRL: 11
[    6.362594] PLL_RCTRL: 22
[    6.362596] PLL_CCTRL: 40
[    6.362597] INTEGLOOP_GAIN: 256
[    6.362599] TX_BAND: 1
[    6.362600] PLL_CMP: 12692
[    6.362602] com_svs_mode_clk_sel = 0x2
[    6.362604] com_hsclk_sel = 0x28
[    6.362605] com_lock_cmp_en = 0x0
[    6.362607] com_pll_cctrl_mode0 = 0x28
[    6.362608] com_pll_rctrl_mode0 = 0x16
[    6.362610] com_cp_ctrl_mode0 = 0xb
[    6.362611] com_dec_start_mode0 = 0x7b
[    6.362613] com_div_frac_start1_mode0 = 0x55
[    6.362615] com_div_frac_start2_mode0 = 0x55
[    6.362616] com_div_frac_start3_mode0 = 0xf
[    6.362617] com_integloop_gain0_mode0 = 0x0
[    6.362619] com_integloop_gain1_mode0 = 0x1
[    6.362621] com_lock_cmp1_mode0 = 0x94
[    6.362622] com_lock_cmp2_mode0 = 0x31
[    6.362624] com_lock_cmp3_mode0 = 0x0
[    6.362625] com_core_clk_en = 0x2c
[    6.362627] com_coreclk_div = 0x5
[    6.362628] phy_mode = 0x0
[    6.362630] tx_l0_lane_mode = 0x43
[    6.362631] tx_l2_lane_mode = 0x43
[    6.362633] tx_l0_tx_band = 0x5
[    6.362635] tx_l0_tx_drv_lvl = 0x25
[    6.362636] tx_l0_tx_emp_post1_lvl = 0x23
[    6.362638] tx_l0_vmode_ctrl1 = 0x0
[    6.362640] tx_l0_vmode_ctrl2 = 0xd
[    6.362641] tx_l1_tx_band = 0x5
[    6.362643] tx_l1_tx_drv_lvl = 0x25
[    6.362644] tx_l1_tx_emp_post1_lvl = 0x23
[    6.362646] tx_l1_vmode_ctrl1 = 0x0
[    6.362647] tx_l1_vmode_ctrl2 = 0xd
[    6.362649] tx_l2_tx_band = 0x5
[    6.362650] tx_l2_tx_drv_lvl = 0x25
[    6.362652] tx_l2_tx_emp_post1_lvl = 0x23
[    6.362653] tx_l2_vmode_ctrl1 = 0x0
[    6.362655] tx_l2_vmode_ctrl2 = 0xd
[    6.362656] tx_l3_tx_band = 0x5
[    6.362658] tx_l3_tx_drv_lvl = 0x25
[    6.362659] tx_l3_tx_emp_post1_lvl = 0x23
[    6.362661] tx_l3_vmode_ctrl1 = 0x0
[    6.362662] tx_l3_vmode_ctrl2 = 0x0
[    6.362663] Disabling PHY
[    6.363531] Waiting for PLL lock
[    6.364455] HDMI PLL is locked
[    6.364471] Waiting for PHY ready
[    6.364473] PHY is ready

I have tried subtracting 3 to PLL_CMP, but that did not work

also tried with 12687, which failed.

On the other hand, the standard cvt for 1680x1050@60Hz worked just
fine (like before)

Thanks!


>
> Thanks,
> Archit
>
>
> >
> > Where can I find that doc?
> > Any ideas of how to proceed?
> >
> >
> > Thanks!
> >



--
Ricardo Ribalda
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

  parent reply	other threads:[~2018-08-13  8:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-10  6:38 db820c: Input signal Out of range Ricardo Ribalda Delgado
     [not found] ` <CAPybu_0ooyLXuFK4x7kAk6-cpXeCO09yjfx9SwHFAKp5n2fsEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-12  7:47   ` Archit Taneja
     [not found]     ` <d4542b41-aa79-5c50-4971-9e1c1b937b02-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-08-13  8:54       ` Ricardo Ribalda Delgado [this message]
     [not found]         ` <CAPybu_0dMfaxBhybHapqfmjHVotA0BBsBs0cjYwdu4eaTT9rmQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-13 12:16           ` Archit Taneja
     [not found]             ` <3007c578-59bf-9b16-25f3-2c97ae9486d0-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-08-13 12:18               ` Ricardo Ribalda Delgado
     [not found]                 ` <CAPybu_2cPoMG9zkM8oa3MOSpGg20L14JyWc_e+1cba3uaSz7iA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-13 12:41                   ` Ricardo Ribalda Delgado
     [not found]                     ` <CAPybu_1PGuTNaxEzFG86JzysQFPyoV4BpQ79j_-wAGqEAM8BNQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-14  6:10                       ` Archit Taneja
     [not found]                         ` <dee8b931-321e-a4a1-18e7-b5467c3348d0-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-08-15 14:10                           ` Ricardo Ribalda Delgado
     [not found]                             ` <CAPybu_0Lvcv8AUt16wfaPQhzMdVhWrAD4khdkP6P-_T8Ud0k6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-09-04 19:50                               ` Ricardo Ribalda Delgado
     [not found]                                 ` <CAPybu_2A7t7vy6qRrj4VhJ8rapyO1aQm0v1-J9YGwPSQpsk12A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-09-11  6:20                                   ` Sibi Sankar
     [not found]                                     ` <75f4fac43ee84ab498f1b4ffb4ab1509-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-09-11  6:29                                       ` Ricardo Ribalda Delgado

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=CAPybu_0dMfaxBhybHapqfmjHVotA0BBsBs0cjYwdu4eaTT9rmQ@mail.gmail.com \
    --to=ricardo.ribalda-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=alex-fkYMi7rYDl0@public.gmane.org \
    --cc=architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.