{
struct rteth_ctrl *ctrl = netdev_priv(dev);
- if ((features ^ dev->features) & NETIF_F_RXCSUM) {
- if (!(features & NETIF_F_RXCSUM))
- sw_w32_mask(BIT(3), 0, ctrl->r->mac_l2_port_ctrl);
- else
- sw_w32_mask(0, BIT(3), ctrl->r->mac_l2_port_ctrl);
- }
+ if ((features ^ dev->features) & NETIF_F_RXCSUM)
+ regmap_assign_bits(ctrl->map, ctrl->r->mac_l2_port_ctrl, BIT(3), features & NETIF_F_RXCSUM);
return 0;
}
{
struct rteth_ctrl *ctrl = netdev_priv(dev);
- if ((features ^ dev->features) & NETIF_F_RXCSUM) {
- if (!(features & NETIF_F_RXCSUM))
- sw_w32_mask(BIT(4), 0, ctrl->r->mac_l2_port_ctrl);
- else
- sw_w32_mask(0, BIT(4), ctrl->r->mac_l2_port_ctrl);
- }
+ if ((features ^ dev->features) & NETIF_F_RXCSUM)
+ regmap_assign_bits(ctrl->map, ctrl->r->mac_l2_port_ctrl, BIT(4), features & NETIF_F_RXCSUM);
return 0;
}