u32 val;
val = readl(priv->base + SSI_TXWDS);
- val &= ~(SSI_TXWDS_WDLEN_MASK | SSI_TXWDS_DTLEN_MASK);
- val |= FIELD_PREP(SSI_TXWDS_WDLEN_MASK, size);
- val |= FIELD_PREP(SSI_TXWDS_DTLEN_MASK, size);
+ FIELD_MODIFY(SSI_TXWDS_WDLEN_MASK, &val, size);
+ FIELD_MODIFY(SSI_TXWDS_DTLEN_MASK, &val, size);
writel(val, priv->base + SSI_TXWDS);
val = readl(priv->base + SSI_RXWDS);
- val &= ~SSI_RXWDS_DTLEN_MASK;
- val |= FIELD_PREP(SSI_RXWDS_DTLEN_MASK, size);
+ FIELD_MODIFY(SSI_RXWDS_DTLEN_MASK, &val, size);
writel(val, priv->base + SSI_RXWDS);
}
u32 val;
val = readl(priv->base + SSI_FC);
- val &= ~(SSI_FC_TXFTH_MASK | SSI_FC_RXFTH_MASK);
- val |= FIELD_PREP(SSI_FC_TXFTH_MASK, SSI_FIFO_DEPTH - threshold);
- val |= FIELD_PREP(SSI_FC_RXFTH_MASK, threshold);
+ FIELD_MODIFY(SSI_FC_TXFTH_MASK, &val, SSI_FIFO_DEPTH - threshold);
+ FIELD_MODIFY(SSI_FC_RXFTH_MASK, &val, threshold);
writel(val, priv->base + SSI_FC);
}