Lines Matching +full:dsp +full:- +full:ctrl

1 // SPDX-License-Identifier: GPL-2.0-only
20 /* Should never get here because the regmap is cache-only */ in cs_dsp_mock_regmap_read()
21 KUNIT_FAIL(priv->test, "Unexpected bus read @%#x", *(u32 *)reg_buf); in cs_dsp_mock_regmap_read()
23 return -EIO; in cs_dsp_mock_regmap_read()
32 priv->saw_bus_write = true; in cs_dsp_mock_regmap_gather_write()
34 /* Should never get here because the regmap is cache-only */ in cs_dsp_mock_regmap_gather_write()
35 KUNIT_FAIL(priv->test, "Unexpected bus gather_write @%#x", *(u32 *)reg_buf); in cs_dsp_mock_regmap_gather_write()
37 return -EIO; in cs_dsp_mock_regmap_gather_write()
44 priv->saw_bus_write = true; in cs_dsp_mock_regmap_write()
46 /* Should never get here because the regmap is cache-only */ in cs_dsp_mock_regmap_write()
47 KUNIT_FAIL(priv->test, "Unexpected bus write @%#x", *(u32 *)val_buf); in cs_dsp_mock_regmap_write()
49 return -EIO; in cs_dsp_mock_regmap_write()
76 regmap_reg_range(0xffe00, 0xffe7c), /* CORE CTRL */
115 regmap_reg_range(0x001100, 0x001143), /* CORE CTRL */
164 regmap_reg_range(0x2b80000, 0x2bc700b), /* CORE CTRL */
173 regmap_reg_range(0x2b80000, 0x2bc700b), /* CORE CTRL */
210 * cs_dsp_mock_regmap_drop_range() - drop a range of registers from the cache.
219 regcache_drop_region(priv->dsp->regmap, first_reg, last_reg); in cs_dsp_mock_regmap_drop_range()
224 * cs_dsp_mock_regmap_drop_regs() - drop a number of registers from the cache.
233 int stride = regmap_get_reg_stride(priv->dsp->regmap); in cs_dsp_mock_regmap_drop_regs()
234 unsigned int last = first_reg + (stride * (num_regs - 1)); in cs_dsp_mock_regmap_drop_regs()
241 * cs_dsp_mock_regmap_drop_bytes() - drop a number of bytes from the cache.
253 size_t num_regs = num_bytes / regmap_get_val_bytes(priv->dsp->regmap); in cs_dsp_mock_regmap_drop_bytes()
260 * cs_dsp_mock_regmap_drop_system_regs() - Drop DSP system registers from the cache.
264 * Drops all DSP system registers from the regmap cache.
268 switch (priv->dsp->type) { in cs_dsp_mock_regmap_drop_system_regs()
270 if (priv->dsp->base) { in cs_dsp_mock_regmap_drop_system_regs()
271 regcache_drop_region(priv->dsp->regmap, in cs_dsp_mock_regmap_drop_system_regs()
272 priv->dsp->base, in cs_dsp_mock_regmap_drop_system_regs()
273 priv->dsp->base + 0x7c); in cs_dsp_mock_regmap_drop_system_regs()
277 if (priv->dsp->base) { in cs_dsp_mock_regmap_drop_system_regs()
278 regcache_drop_region(priv->dsp->regmap, in cs_dsp_mock_regmap_drop_system_regs()
279 priv->dsp->base, in cs_dsp_mock_regmap_drop_system_regs()
280 priv->dsp->base + 0x47000); in cs_dsp_mock_regmap_drop_system_regs()
283 /* sysinfo registers are read-only so don't drop them */ in cs_dsp_mock_regmap_drop_system_regs()
292 * cs_dsp_mock_regmap_is_dirty() - Test for dirty registers in the cache.
295 * @drop_system_regs: If true the DSP system regs will be dropped from
299 * from the cache (DSP system registers can be dropped by passing
311 priv->saw_bus_write = false; in cs_dsp_mock_regmap_is_dirty()
312 regcache_cache_only(priv->dsp->regmap, false); in cs_dsp_mock_regmap_is_dirty()
313 regcache_sync(priv->dsp->regmap); in cs_dsp_mock_regmap_is_dirty()
314 regcache_cache_only(priv->dsp->regmap, true); in cs_dsp_mock_regmap_is_dirty()
316 return priv->saw_bus_write; in cs_dsp_mock_regmap_is_dirty()
321 * cs_dsp_mock_regmap_init() - Initialize a mock regmap.
325 * rev fields are set to the type of DSP to be simulated.
327 * On success the priv->dsp->regmap will point to the created
337 switch (priv->dsp->type) { in cs_dsp_mock_regmap_init()
342 if (priv->dsp->rev == 0) in cs_dsp_mock_regmap_init()
352 priv->dsp->regmap = devm_regmap_init(priv->dsp->dev, in cs_dsp_mock_regmap_init()
356 if (IS_ERR(priv->dsp->regmap)) { in cs_dsp_mock_regmap_init()
357 ret = PTR_ERR(priv->dsp->regmap); in cs_dsp_mock_regmap_init()
358 kunit_err(priv->test, "Failed to allocate register map: %d\n", ret); in cs_dsp_mock_regmap_init()
362 /* Put regmap in cache-only so it accumulates the writes done by cs_dsp */ in cs_dsp_mock_regmap_init()
363 regcache_cache_only(priv->dsp->regmap, true); in cs_dsp_mock_regmap_init()