[Bug 91861] [Radeon RS780] Blank screen (no signal) on HDMI after boot in 3.15 & later

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Sat Jan 31 01:55:56 PST 2015


https://bugzilla.kernel.org/show_bug.cgi?id=91861

--- Comment #12 from Christian König <deathsimple at vodafone.de> ---
(In reply to Mike S. from comment #11)
> Thanks for the info. It hasn't happened again so far.
> 
> > ... you are driving the PLL so close to the edge ...
> Can you please explain what you mean? Are you saying that the higher fb_div
> & ref_div are pushing the PLL harder or faster?

If you want details you should probably read them up on Wikipedia, but I will
try to explain it in a few sentences.

The basic problem is how to generate a stable but still programmable frequency
in electronics.

On the one hand you have crystals which are usually very stable over a long
period of time, but to change the frequency of a crystal you would need to
change it's size and/or the material it is made of. Clearly not something you
can do with software.

On the other hand you have voltage controllable oscillators (VCO), which have
the nice feature that you can push a certain voltage into them and get a
certain frequency in return. Problem with those is that they are not
temperature stable, e.g. you set up a certain voltage to get 100Mhz and after a
while the electronics has warmed up and you suddenly get 101Mhz or 99Mhz or
something like this.

The solution is a PLL, it compares a very stable input frequency to a frequency
generated with a VCO and based on the difference adjusts the input voltage of
the VCO. This way the VCO frequency is slowly adjusted to the stable input
frequency and also stable over time when the electronics warms up.

Imagine that you now put a counter between the VCO output and the comparator
input that counts to 3 before forwarding the VCO frequency to the comparator.
This way when you input a frequency of 100Mhz you get 300Mhz as output
frequency. This counter is easily adjustable with software and called the
feedback divider.

So in the end you've got 300Mhz. But what do we do when for example we want
150Mhz? For this the electronics got a so called post divider it's also
software configurable and when for example when you have 300Mhz VCO frequency
and set the divider to 2 you get 150Mhz at the PLL output.

The voltage given as input to the VCO needs to be in certain limits. The upper
limit is easily understandable imagine that you push 20V into a 5V circuit all
you usually get is blue smoke and useless electronics. The lower limit usually
isn't so easily explainable, just keep in mind that the electronics need a
certain voltage to start up. More rarely you also got voltage gaps where the
VCO won't produce a stable output etc...

So to stay within those limits you add a third divider which is put between the
input frequency and the comparator. This divider is called the reference
divider.

Driving the PLL at the edge now means that at some point the VCO is to close to
one of it's limits. E.g. when it startup the VCO usually doesn't match the
input frequency at all and because of this the voltage input jumps around quite
a bit. So it sometimes works and sometimes doesn't. Or it initially works but
after the electronics has warmed up the VCO is suddenly out of range etc
etc....

Maybe that were a few more sentences than I expected, hopefully it was still
understandable.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the dri-devel mailing list