From: Ganesh Goudar
> Sent: 19 May 2017 11:12
T6
> 
> take care of UpDbgLaRdPtr[0-3] restriction for T6
> 
> Signed-off-by: Ganesh Goudar <ganes...@chelsio.com>
> ---
>  drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c 
> b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
> index aded42b96..917b46b 100644
> --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
> +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
> @@ -8268,6 +8268,13 @@ int t4_cim_read_la(struct adapter *adap, u32 *la_buf, 
> unsigned int *wrptr)
>               if (ret)
>                       break;
>               idx = (idx + 1) & UPDBGLARDPTR_M;
> +
> +             /* Bits 0-3 of UpDbgLaRdPtr can be between 0000 to 1001 to
> +              * identify the 32-bit portion of the full 312-bit data
> +              */
> +             if (is_t6(adap->params.chip))
> +                     while ((idx & 0xf) > 9)
> +                             idx = (idx + 1) % UPDBGLARDPTR_M;

Why the loop, maybe:
                if (is_t6(adap->params.chip) && (idx & 0xf) >= 9)
                        idx = (idx & 0xf0) + 0x10;
                else
                        idx++;
                idx &= UPDBGLARDPTR_M;

        David

Reply via email to