https://bugs.freedesktop.org/show_bug.cgi?id=69675
--- Comment #40 from Anssi Hannula anssi@mageia.org --- The changes look sound to me.
I had already forgotten that the table values were off for the rounded clocks (even though I had mentioned it in comment #5).
Also, I see now that as the DTO is also set according to the target clock (instead of pll clock), this compensates for possible difference between target/pll clocks when calculating CTS. So the CTS/N values need to be selected as if the clock was exactly the rounded clock (e.g. 74176), instead of using the spec values (that are correct only for exact 74250/1.001). This should also mean that the SW values are all-OK except in the cases where an integer CTS is not possible as per Pierre's note 1.
- The 25175 clock at 44.1 kHz is out of spec. There are no correct values to
make it in spec. So either change the clock, rely on hw calculated values, or hope that sinks tolerate the large N.
4th alternative is to round CTS and leave the glitches in on those modes. I might even slightly prefer that than produce out-of-spec N, but that is just my preference and I don't really have any real-world data of course...