On Thu, Oct 01, 2026 at 10:47:27PM +0200, Vincent Jardin wrote:
> +static int sd1_enter_40g4x10g(unsigned long base)
> +{
> +     unsigned long lanes = SD1_LNE_LNH;
> +     int m, keep, ret, err;
> +
> +     keep = sd1_port_master(base, SD1_LNA_LND);
> +     if (keep < 0)
> +             return -EINVAL;
> +
> +     ret = sd1_halt_port(base, lanes);
> +     if (ret == -EINVAL)
> +             return ret;
> +
> +     for_each_set_bit(m, &lanes, SRDS_LANES)
> +             out_le32((void __iomem *)SRDS_LNmGCR0(base, m), XFI_GCR0);
> +
> +     out_le32((void __iomem *)SRDS_PCCE(base), X10G_PCCE);
> +     out_le32((void __iomem *)SRDS_PCCC(base), XFI_PCCC);
> +
> +     err = sd1_reset_both(base, keep);

When entering 40g4x10g from 2x40g, why do you need to reset both lane
groups rather than just lanes E-H?

> +
> +     return err ? err : ret;
> +}

Reply via email to