RE: [V2] tty: serial: qcom-geni-serial: Fix get_clk_div_rate() which otherwise could return a sub-optimal clock rate.

From: Vijaya Krishna Nivarthi (Temp) (QUIC)
Date: Thu Jun 30 2022 - 13:19:19 EST




> -----Original Message-----
> From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
> Sent: Thursday, June 30, 2022 8:31 PM
> To: Vijaya Krishna Nivarthi (Temp) (QUIC) <quic_vnivarth@xxxxxxxxxxx>
> Cc: agross@xxxxxxxxxx; bjorn.andersson@xxxxxxxxxx;
> konrad.dybcio@xxxxxxxxxxxxxx; jirislaby@xxxxxxxxxx; linux-arm-
> msm@xxxxxxxxxxxxxxx; linux-serial@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; Mukesh Savaliya (QUIC)
> <quic_msavaliy@xxxxxxxxxxx>; dianders@xxxxxxxxxxxx;
> mka@xxxxxxxxxxxx; swboyd@xxxxxxxxxxxx
> Subject: Re: [V2] tty: serial: qcom-geni-serial: Fix get_clk_div_rate() which
> otherwise could return a sub-optimal clock rate.
>
> WARNING: This email originated from outside of Qualcomm. Please be wary
> of any links or attachments, and do not enable macros.
>
> On Wed, Jun 29, 2022 at 03:30:41PM +0530, Vijaya Krishna Nivarthi wrote:
> > In the logic around call to clk_round_rate(), for some corner
> > conditions,
> > get_clk_div_rate() could return an sub-optimal clock rate. Also, if an
> > exact clock rate was not found lowest clock was being returned.
> >
> > Search for suitable clock rate in 2 steps
> > a) exact match or within 2% tolerance
> > b) within 5% tolerance
> > This also takes care of corner conditions.
> >
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> Did the test robot really report the original issue, or just the v2 change?
>
> thanks,
>
> greg k-h

Test robot raised error for v1 patch and (I think) it got addressed in v2 with call to div_u64.
V2 doesn't have this error but other warnings which I am addressing along with other feedback.
Below is the error raised for v1.
Thank you,
Vijay/


All errors (new ones prefixed by >>):

arm-linux-gnueabi-ld: arm-linux-gnueabi-ld: DWARF error: could not find abbrev number 121
drivers/tty/serial/qcom_geni_serial.o: in function `find_clk_rate_in_tol':
>> qcom_geni_serial.c:(.text+0x764): undefined reference to `__aeabi_uldivmod'