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