static void tegra_dmic_stop(struct tegra_dmic *dmic) { u32 ctrl; mutex_lock(&dmic->mutex); ctrl = tegra_dmic_read(dmic, TEGRA_DMIC_CTRL); ctrl &= TEGRA_DMIC_ENABLE_MASK; ctrl |= 0x0 << TEGRA_DMIC_ENABLE_SHIFT; tegra_dmic_write(dmic, TEGRA_DMIC_CTRL, ctrl); tegra_dmic_soft_reset(dmic); /* Disable Rx FIFOs. */ tegra30_ahub_disable_rx_fifo(dmic->rx_cif); mutex_unlock(&dmic->mutex); }
static void tegra30_i2s_stop_capture(struct tegra30_i2s *i2s) { tegra30_ahub_disable_rx_fifo(i2s->capture_fifo_cif); regmap_update_bits(i2s->regmap, TEGRA30_I2S_CTRL, TEGRA30_I2S_CTRL_XFER_EN_RX, 0); }
static void tegra30_i2s_stop_capture(struct tegra30_i2s *i2s) { tegra30_ahub_disable_rx_fifo(i2s->capture_fifo_cif); i2s->reg_ctrl &= ~TEGRA30_I2S_CTRL_XFER_EN_RX; tegra30_i2s_write(i2s, TEGRA30_I2S_CTRL, i2s->reg_ctrl); }