lkml.org 
[lkml]   [2015]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 22/71] ncr5380: Eliminate selecting state

    On Sun, 29 Nov 2015, Geert Uytterhoeven wrote:

    > This still heavily depends on the processing time spent in
    > NCR5380_read(). You should never use a value derived from
    > loops_per_jiffy for a non-empty loop,

    Sure but the time-out condition isn't supposed to be precise.
    Plus/minus a jiffy is no problem. Plus/minus a second is no good.

    > as it may take much longer. Always compare with an maximum end time
    > instead.

    That can't work with interrupts disabled, which was the problem I was
    trying to solve by use of loops_per_jiffy.

    NCR5380_poll_politely() in mainline doesn't work with interrupts disabled
    either, hence patch 21.

    >
    > E.g.:
    >
    > end = jiffies + 2; /* 1 jiffie + 1 safeguard */
    > do {
    > if ((NCR5380_read(reg1) & bit1) == val1)
    > return 0;
    > cpu_relax();
    > } while (time_before(jiffies, end);
    >
    > And a similar loop for "Busy-wait for up to 20 ms".

    Interrupts may be disabled during that loop also. Please refer to (and/or
    respond to) patch 21, "ncr5380: Sleep when polling, if possible", in which
    these changes were made.

    --

    >
    > Gr{oetje,eeting}s,
    >
    > Geert
    >


    \
     
     \ /
      Last update: 2015-11-29 12:01    [W:4.989 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site