• James Smart's avatar
    scsi: lpfc: cleanup: convert eq_delay to usdelay · cb733e35
    James Smart authored
    Review of the eq coalescing logic showed the code was a bit fragmented.
    Sometimes it would save/set via an interrupt max value, while in others it
    would do so via a usdelay. There were also two places changing eq delay,
    one place that issued mailbox commands, and another that changed via
    register writes if supported.
    
    Clean this up by:
    
     - Standardizing the operation of lpfc_modify_hba_eq_delay() routine so
       that it is always told of a us delay to impose. The routine then chooses
       the best way to set that - via register or via mbx.
    
     - Rather than two value types stored in eq->q_mode (usdelay if change via
       register, imax if change via mbox) - q_mode always contains usdelay.
       Before any value change, old vs new value is compared and only if
       different is a change done.
    
     - Revised the dmult calculation. dmult is not set based on overall imax
       divided by hardware queues - instead imax applies to a single cpu and
       the value will be replicated to all cpus.
    Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    cb733e35
lpfc_attr.c 207 KB