On Wed, Jul 08, 2015 at 10:38:33AM +0200, Maarten Lankhorst wrote: > Op 07-07-15 om 12:11 schreef Daniel Vetter: > > On Tue, Jul 07, 2015 at 09:08:17AM +0200, Maarten Lankhorst wrote: > >> @@ -12392,27 +12379,124 @@ static bool intel_fuzzy_clock_check(int clock1, int clock2) > >> base.head) \ > >> if (mask & (1 <<(intel_crtc)->pipe)) > >> > >> + > >> +static bool > >> +intel_compare_m_n(unsigned int m, unsigned int n, > >> + unsigned int m2, unsigned int n2) > >> +{ > >> + if (m == m2 && n == n2) > >> + return true; > >> + > >> + if (!m || !n || !m2 || !n2) > >> + return false; > >> + > >> + if (m > m2) { > >> + while (m > m2) { > > I think we need to make sure we don't reduce precision by eating low bits, > > i.e. > > while (m > m2 && !(m & 1) && !(n & 1)) { > Could be useful, lets hope everyone rounds in the same way. :) > >> + m >>= 1; > >> + n >>= 1; > >> + } > >> + } else if (m < m2) { > >> + while (m < m2) { > >> + m2 >>= 1; > >> + n2 >>= 1; > >> + } > >> + } > >> + > >> + return m == m2 && n == n2; > >> +} > >> + > >> +static bool > >> +intel_compare_link_m_n(const struct intel_link_m_n *m_n, > >> + const struct intel_link_m_n *m2_n2) > > I think these need to take adjust as an agurment and check for exact match > > (not just matching ratio), like before. > I just implemented it, then remembered why I didn't. > > It will cause a failure in intel_modeset_check_state. That shouldn't happen. I guess the bug is that adjust doesn't live up to it's name and doesn't copy the current value over to the new config if they're compatible? -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx