svn commit: r323053 - head/sys/dev/ntb/ntb_hw

Conrad Meyer cem at freebsd.org
Thu Aug 31 14:51:00 UTC 2017


Hi Mav,

On Thu, Aug 31, 2017 at 6:41 AM, Alexander Motin <mav at freebsd.org> wrote:
> Author: mav
> Date: Thu Aug 31 13:41:44 2017
> New Revision: 323053
> URL: https://svnweb.freebsd.org/changeset/base/323053
>
> Log:
>   Fix port control for PEX 8749.
>
>   That chip has three Station Ports, so previous address math was incorrect.
>
>   MFC after:    13 days
>   Sponsored by: iXsystems, Inc.
>
> Modified:
>   head/sys/dev/ntb/ntb_hw/ntb_hw_plx.c
>
> Modified: head/sys/dev/ntb/ntb_hw/ntb_hw_plx.c
> ==============================================================================
> --- head/sys/dev/ntb/ntb_hw/ntb_hw_plx.c        Thu Aug 31 13:32:01 2017        (r323052)
> +++ head/sys/dev/ntb/ntb_hw/ntb_hw_plx.c        Thu Aug 31 13:41:44 2017        (r323053)
> @@ -473,7 +473,7 @@ ntb_plx_link_enable(device_t dev, enum ntb_speed speed
>                 return (0);
>         }
>
> -       reg = (sc->port < 8) ? 0x00208 : 0x08208;
> +       reg = ((sc->port & ~7) << 12) | 0x208;
>         val = bus_read_4(sc->conf_res, reg);
>         if ((val & (1 << (sc->port & 7))) == 0) {
>                 /* If already enabled, generate fake link event and exit. */
> @@ -495,7 +495,7 @@ ntb_plx_link_disable(device_t dev)
>         if (sc->link)
>                 return (0);
>
> -       reg = (sc->port < 8) ? 0x00208 : 0x08208;
> +       reg = ((sc->port & ~7) << 12) | 0x208;
>         val = bus_read_4(sc->conf_res, reg);
>         val |= (1 << (sc->port & 7));
>         bus_write_4(sc->conf_res, reg, val);
> @@ -512,7 +512,7 @@ ntb_plx_link_enabled(device_t dev)
>         if (sc->link)
>                 return (TRUE);
>
> -       reg = (sc->port < 8) ? 0x00208 : 0x08208;
> +       reg = ((sc->port & ~7) << 12) | 0x208;
>         val = bus_read_4(sc->conf_res, reg);
>         return ((val & (1 << (sc->port & 7))) == 0);
>  }
>

To me, the duplication strongly suggests that this should be a macro.

Best,
Conrad


More information about the svn-src-head mailing list