The xc_get_frequency_error() function reported the frequency error
incorrectly. The data read from the hardware is a signed integer, in
15625 Hz units. The attached patch fixes the bug.
Signed-off-by: Istvan Varga <istvan_v@mailbox.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
        if (result != XC_RESULT_SUCCESS)
                return result;
 
-       tmp = (u32)regData;
-       (*freq_error_hz) = (tmp * 15625) / 1000;
+       tmp = (u32)regData & 0xFFFFU;
+       tmp = (tmp < 0x8000U ? tmp : 0x10000U - tmp);
+       (*freq_error_hz) = tmp * 15625;
        return result;
 }