static int at86rf230_start(struct ieee802154_hw *hw) { struct at86rf230_local *lp = hw->priv; at86rf230_awake(lp); enable_irq(lp->spi->irq); return at86rf230_sync_state_change(lp, STATE_RX_AACK_ON); }
static int at86rf230_start(struct ieee802154_hw *hw) { struct at86rf230_local *lp = hw->priv; /* reset trac stats on start */ if (IS_ENABLED(CONFIG_IEEE802154_AT86RF230_DEBUGFS)) memset(&lp->trac, 0, sizeof(struct at86rf230_trac)); at86rf230_awake(lp); enable_irq(lp->spi->irq); return at86rf230_sync_state_change(lp, STATE_RX_AACK_ON); }
static inline int __at86rf230_read(struct at86rf230_local *lp, unsigned int addr, unsigned int *data) { bool sleep = lp->sleep; int ret; /* awake for register setting if sleep */ if (sleep) at86rf230_awake(lp); ret = regmap_read(lp->regmap, addr, data); /* sleep again if was sleeping */ if (sleep) at86rf230_sleep(lp); return ret; }
static inline int at86rf230_write_subreg(struct at86rf230_local *lp, unsigned int addr, unsigned int mask, unsigned int shift, unsigned int data) { bool sleep = lp->sleep; int ret; /* awake for register setting if sleep */ if (sleep) at86rf230_awake(lp); ret = regmap_update_bits(lp->regmap, addr, mask, data << shift); /* sleep again if was sleeping */ if (sleep) at86rf230_sleep(lp); return ret; }