void rgmii_set_speed(struct ocp_device *ocpdev, int input, int speed) { struct ibm_ocp_rgmii *dev = ocp_get_drvdata(ocpdev); u32 ssr = in_be32(&dev->base->ssr) & ~RGMII_SSR_MASK(input); RGMII_DBG("%d: speed(%d, %d)" NL, ocpdev->def->index, input, speed); if (speed == SPEED_1000) ssr |= RGMII_SSR_1000(input); else if (speed == SPEED_100) ssr |= RGMII_SSR_100(input); out_be32(&dev->base->ssr, ssr); }
void rgmii_set_speed(struct of_device *ofdev, int input, int speed) { struct rgmii_instance *dev = dev_get_drvdata(&ofdev->dev); struct rgmii_regs __iomem *p = dev->base; u32 ssr; mutex_lock(&dev->lock); ssr = in_be32(&p->ssr) & ~RGMII_SSR_MASK(input); RGMII_DBG(dev, "speed(%d, %d)" NL, input, speed); if (speed == SPEED_1000) ssr |= RGMII_SSR_1000(input); else if (speed == SPEED_100) ssr |= RGMII_SSR_100(input); out_be32(&p->ssr, ssr); mutex_unlock(&dev->lock); }