If the PLL calc function is given bad parameters, n_start/m_start may be
higher than n_stop/m_stop, which leads to the loops iterating through
the whole u32 number space.
Fix this by failing early on such cases.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201215104657.802264-59-tomi.valkeinen@ti.com
        n_stop = min((unsigned)(clkin / fint_hw_min), hw->n_max);
        n_inc = 1;
 
+       if (n_start > n_stop)
+               return false;
+
        if (hw->errata_i886) {
                swap(n_start, n_stop);
                n_inc = -1;
                                hw->m_max);
                m_inc = 1;
 
+               if (m_start > m_stop)
+                       continue;
+
                if (hw->errata_i886) {
                        swap(m_start, m_stop);
                        m_inc = -1;