drivers/gpio/gpio-wm8994.c
101
return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset, WM8994_GPN_LVL,
drivers/gpio/gpio-wm8994.c
109
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
113
return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset,
drivers/gpio/gpio-wm8994.c
117
return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset,
drivers/gpio/gpio-wm8994.c
129
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
131
return regmap_irq_get_virq(wm8994->irq_data, offset);
drivers/gpio/gpio-wm8994.c
193
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
206
dev_err(wm8994->dev, "Failed to duplicate label\n");
drivers/gpio/gpio-wm8994.c
213
reg = wm8994_reg_read(wm8994, WM8994_GPIO_1 + i);
drivers/gpio/gpio-wm8994.c
215
dev_err(wm8994->dev,
drivers/gpio/gpio-wm8994.c
266
struct wm8994 *wm8994 = dev_get_drvdata(pdev->dev.parent);
drivers/gpio/gpio-wm8994.c
267
struct wm8994_pdata *pdata = dev_get_platdata(wm8994->dev);
drivers/gpio/gpio-wm8994.c
27
struct wm8994 *wm8994;
drivers/gpio/gpio-wm8994.c
275
wm8994_gpio->wm8994 = wm8994;
drivers/gpio/gpio-wm8994.c
34
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
36
switch (wm8994->type) {
drivers/gpio/gpio-wm8994.c
57
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
59
return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset,
drivers/gpio/gpio-wm8994.c
66
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
69
ret = wm8994_reg_read(wm8994, WM8994_GPIO_1 + offset);
drivers/gpio/gpio-wm8994.c
83
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/gpio/gpio-wm8994.c
88
return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset,
drivers/gpio/gpio-wm8994.c
96
struct wm8994 *wm8994 = wm8994_gpio->wm8994;
drivers/mfd/wm8994-core.c
114
struct wm8994 *wm8994 = dev_get_drvdata(dev);
drivers/mfd/wm8994-core.c
119
switch (wm8994->type) {
drivers/mfd/wm8994-core.c
122
ret = wm8994_reg_read(wm8994, WM8958_MIC_DETECT_1);
drivers/mfd/wm8994-core.c
136
if (!wm8994->ldo_ena_always_driven)
drivers/mfd/wm8994-core.c
137
wm8994_set_bits(wm8994, WM8994_PULL_CONTROL_2,
drivers/mfd/wm8994-core.c
144
wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET,
drivers/mfd/wm8994-core.c
145
wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
drivers/mfd/wm8994-core.c
147
regcache_mark_dirty(wm8994->regmap);
drivers/mfd/wm8994-core.c
152
ret = regcache_sync_region(wm8994->regmap, WM8994_GPIO_1,
drivers/mfd/wm8994-core.c
158
ret = regcache_sync_region(wm8994->regmap,
drivers/mfd/wm8994-core.c
164
regcache_cache_only(wm8994->regmap, true);
drivers/mfd/wm8994-core.c
165
wm8994->suspended = true;
drivers/mfd/wm8994-core.c
167
ret = regulator_bulk_disable(wm8994->num_supplies,
drivers/mfd/wm8994-core.c
168
wm8994->supplies);
drivers/mfd/wm8994-core.c
179
struct wm8994 *wm8994 = dev_get_drvdata(dev);
drivers/mfd/wm8994-core.c
183
if (!wm8994->suspended)
drivers/mfd/wm8994-core.c
186
ret = regulator_bulk_enable(wm8994->num_supplies,
drivers/mfd/wm8994-core.c
187
wm8994->supplies);
drivers/mfd/wm8994-core.c
193
regcache_cache_only(wm8994->regmap, false);
drivers/mfd/wm8994-core.c
194
ret = regcache_sync(wm8994->regmap);
drivers/mfd/wm8994-core.c
201
wm8994_set_bits(wm8994, WM8994_PULL_CONTROL_2,
drivers/mfd/wm8994-core.c
205
wm8994->suspended = false;
drivers/mfd/wm8994-core.c
210
regulator_bulk_disable(wm8994->num_supplies, wm8994->supplies);
drivers/mfd/wm8994-core.c
260
static int wm8994_set_pdata_from_of(struct wm8994 *wm8994)
drivers/mfd/wm8994-core.c
262
struct device_node *np = wm8994->dev->of_node;
drivers/mfd/wm8994-core.c
263
struct wm8994_pdata *pdata = &wm8994->pdata;
drivers/mfd/wm8994-core.c
272
if (wm8994->pdata.gpio_defaults[i] == 0)
drivers/mfd/wm8994-core.c
294
static int wm8994_set_pdata_from_of(struct wm8994 *wm8994)
drivers/mfd/wm8994-core.c
303
static int wm8994_device_init(struct wm8994 *wm8994, int irq)
drivers/mfd/wm8994-core.c
312
if (dev_get_platdata(wm8994->dev)) {
drivers/mfd/wm8994-core.c
313
pdata = dev_get_platdata(wm8994->dev);
drivers/mfd/wm8994-core.c
314
wm8994->pdata = *pdata;
drivers/mfd/wm8994-core.c
316
pdata = &wm8994->pdata;
drivers/mfd/wm8994-core.c
318
ret = wm8994_set_pdata_from_of(wm8994);
drivers/mfd/wm8994-core.c
323
ret = mfd_add_devices(wm8994->dev, 0,
drivers/mfd/wm8994-core.c
328
dev_err(wm8994->dev, "Failed to add children: %d\n", ret);
drivers/mfd/wm8994-core.c
332
switch (wm8994->type) {
drivers/mfd/wm8994-core.c
334
wm8994->num_supplies = ARRAY_SIZE(wm1811_main_supplies);
drivers/mfd/wm8994-core.c
337
wm8994->num_supplies = ARRAY_SIZE(wm8994_main_supplies);
drivers/mfd/wm8994-core.c
340
wm8994->num_supplies = ARRAY_SIZE(wm8958_main_supplies);
drivers/mfd/wm8994-core.c
347
wm8994->supplies = devm_kcalloc(wm8994->dev,
drivers/mfd/wm8994-core.c
348
wm8994->num_supplies,
drivers/mfd/wm8994-core.c
351
if (!wm8994->supplies) {
drivers/mfd/wm8994-core.c
356
switch (wm8994->type) {
drivers/mfd/wm8994-core.c
359
wm8994->supplies[i].supply = wm1811_main_supplies[i];
drivers/mfd/wm8994-core.c
363
wm8994->supplies[i].supply = wm8994_main_supplies[i];
drivers/mfd/wm8994-core.c
367
wm8994->supplies[i].supply = wm8958_main_supplies[i];
drivers/mfd/wm8994-core.c
379
ret = regulator_bulk_get(wm8994->dev, wm8994->num_supplies,
drivers/mfd/wm8994-core.c
380
wm8994->supplies);
drivers/mfd/wm8994-core.c
383
dev_err(wm8994->dev, "Failed to get supplies: %d\n",
drivers/mfd/wm8994-core.c
388
ret = regulator_bulk_enable(wm8994->num_supplies, wm8994->supplies);
drivers/mfd/wm8994-core.c
390
dev_err(wm8994->dev, "Failed to enable supplies: %d\n", ret);
drivers/mfd/wm8994-core.c
394
ret = wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET);
drivers/mfd/wm8994-core.c
396
dev_err(wm8994->dev, "Failed to read ID register\n");
drivers/mfd/wm8994-core.c
402
if (wm8994->type != WM1811)
drivers/mfd/wm8994-core.c
403
dev_warn(wm8994->dev, "Device registered as type %d\n",
drivers/mfd/wm8994-core.c
404
wm8994->type);
drivers/mfd/wm8994-core.c
405
wm8994->type = WM1811;
drivers/mfd/wm8994-core.c
409
if (wm8994->type != WM8994)
drivers/mfd/wm8994-core.c
410
dev_warn(wm8994->dev, "Device registered as type %d\n",
drivers/mfd/wm8994-core.c
411
wm8994->type);
drivers/mfd/wm8994-core.c
412
wm8994->type = WM8994;
drivers/mfd/wm8994-core.c
416
if (wm8994->type != WM8958)
drivers/mfd/wm8994-core.c
417
dev_warn(wm8994->dev, "Device registered as type %d\n",
drivers/mfd/wm8994-core.c
418
wm8994->type);
drivers/mfd/wm8994-core.c
419
wm8994->type = WM8958;
drivers/mfd/wm8994-core.c
422
dev_err(wm8994->dev, "Device is not a WM8994, ID is %x\n",
drivers/mfd/wm8994-core.c
428
ret = wm8994_reg_read(wm8994, WM8994_CHIP_REVISION);
drivers/mfd/wm8994-core.c
430
dev_err(wm8994->dev, "Failed to read revision register: %d\n",
drivers/mfd/wm8994-core.c
434
wm8994->revision = ret & WM8994_CHIP_REV_MASK;
drivers/mfd/wm8994-core.c
435
wm8994->cust_id = (ret & WM8994_CUST_ID_MASK) >> WM8994_CUST_ID_SHIFT;
drivers/mfd/wm8994-core.c
437
switch (wm8994->type) {
drivers/mfd/wm8994-core.c
439
switch (wm8994->revision) {
drivers/mfd/wm8994-core.c
442
dev_warn(wm8994->dev,
drivers/mfd/wm8994-core.c
444
'A' + wm8994->revision);
drivers/mfd/wm8994-core.c
456
switch (wm8994->revision) {
drivers/mfd/wm8994-core.c
468
if (wm8994->revision > 1)
drivers/mfd/wm8994-core.c
469
wm8994->revision++;
drivers/mfd/wm8994-core.c
479
dev_info(wm8994->dev, "%s revision %c CUST_ID %02x\n", devname,
drivers/mfd/wm8994-core.c
480
'A' + wm8994->revision, wm8994->cust_id);
drivers/mfd/wm8994-core.c
482
switch (wm8994->type) {
drivers/mfd/wm8994-core.c
493
dev_err(wm8994->dev, "Unknown device type %d\n", wm8994->type);
drivers/mfd/wm8994-core.c
498
ret = regmap_reinit_cache(wm8994->regmap, regmap_config);
drivers/mfd/wm8994-core.c
500
dev_err(wm8994->dev, "Failed to reinit register cache: %d\n",
drivers/mfd/wm8994-core.c
509
ret = wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET,
drivers/mfd/wm8994-core.c
510
wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
drivers/mfd/wm8994-core.c
512
dev_err(wm8994->dev, "Failed to reset device: %d\n", ret);
drivers/mfd/wm8994-core.c
517
ret = regmap_register_patch(wm8994->regmap, regmap_patch,
drivers/mfd/wm8994-core.c
520
dev_err(wm8994->dev, "Failed to register patch: %d\n",
drivers/mfd/wm8994-core.c
526
wm8994->irq_base = pdata->irq_base;
drivers/mfd/wm8994-core.c
527
wm8994->gpio_base = pdata->gpio_base;
drivers/mfd/wm8994-core.c
532
wm8994_set_bits(wm8994, WM8994_GPIO_1 + i,
drivers/mfd/wm8994-core.c
537
wm8994->ldo_ena_always_driven = pdata->ldo_ena_always_driven;
drivers/mfd/wm8994-core.c
545
wm8994_set_bits(wm8994, WM8994_PULL_CONTROL_2,
drivers/mfd/wm8994-core.c
558
wm8994_set_bits(wm8994, WM8994_LDO_1 + i,
drivers/mfd/wm8994-core.c
561
wm8994_set_bits(wm8994, WM8994_LDO_1 + i,
drivers/mfd/wm8994-core.c
565
wm8994_irq_init(wm8994);
drivers/mfd/wm8994-core.c
567
ret = mfd_add_devices(wm8994->dev, -1,
drivers/mfd/wm8994-core.c
571
dev_err(wm8994->dev, "Failed to add children: %d\n", ret);
drivers/mfd/wm8994-core.c
575
pm_runtime_set_active(wm8994->dev);
drivers/mfd/wm8994-core.c
576
pm_runtime_enable(wm8994->dev);
drivers/mfd/wm8994-core.c
577
pm_runtime_idle(wm8994->dev);
drivers/mfd/wm8994-core.c
582
wm8994_irq_exit(wm8994);
drivers/mfd/wm8994-core.c
584
regulator_bulk_disable(wm8994->num_supplies,
drivers/mfd/wm8994-core.c
585
wm8994->supplies);
drivers/mfd/wm8994-core.c
587
regulator_bulk_free(wm8994->num_supplies, wm8994->supplies);
drivers/mfd/wm8994-core.c
589
mfd_remove_devices(wm8994->dev);
drivers/mfd/wm8994-core.c
593
static void wm8994_device_exit(struct wm8994 *wm8994)
drivers/mfd/wm8994-core.c
595
pm_runtime_get_sync(wm8994->dev);
drivers/mfd/wm8994-core.c
596
pm_runtime_disable(wm8994->dev);
drivers/mfd/wm8994-core.c
597
pm_runtime_put_noidle(wm8994->dev);
drivers/mfd/wm8994-core.c
598
wm8994_irq_exit(wm8994);
drivers/mfd/wm8994-core.c
599
regulator_bulk_disable(wm8994->num_supplies, wm8994->supplies);
drivers/mfd/wm8994-core.c
600
regulator_bulk_free(wm8994->num_supplies, wm8994->supplies);
drivers/mfd/wm8994-core.c
601
mfd_remove_devices(wm8994->dev);
drivers/mfd/wm8994-core.c
614
struct wm8994 *wm8994;
drivers/mfd/wm8994-core.c
617
wm8994 = devm_kzalloc(&i2c->dev, sizeof(struct wm8994), GFP_KERNEL);
drivers/mfd/wm8994-core.c
618
if (wm8994 == NULL)
drivers/mfd/wm8994-core.c
621
i2c_set_clientdata(i2c, wm8994);
drivers/mfd/wm8994-core.c
622
wm8994->dev = &i2c->dev;
drivers/mfd/wm8994-core.c
623
wm8994->irq = i2c->irq;
drivers/mfd/wm8994-core.c
625
wm8994->type = (kernel_ulong_t)i2c_get_match_data(i2c);
drivers/mfd/wm8994-core.c
627
wm8994->regmap = devm_regmap_init_i2c(i2c, &wm8994_base_regmap_config);
drivers/mfd/wm8994-core.c
628
if (IS_ERR(wm8994->regmap)) {
drivers/mfd/wm8994-core.c
629
ret = PTR_ERR(wm8994->regmap);
drivers/mfd/wm8994-core.c
630
dev_err(wm8994->dev, "Failed to allocate register map: %d\n",
drivers/mfd/wm8994-core.c
635
return wm8994_device_init(wm8994, i2c->irq);
drivers/mfd/wm8994-core.c
640
struct wm8994 *wm8994 = i2c_get_clientdata(i2c);
drivers/mfd/wm8994-core.c
642
wm8994_device_exit(wm8994);
drivers/mfd/wm8994-irq.c
154
struct wm8994 *wm8994 = data;
drivers/mfd/wm8994-irq.c
156
while (gpio_get_value_cansleep(wm8994->pdata.irq_gpio))
drivers/mfd/wm8994-irq.c
157
handle_nested_irq(irq_find_mapping(wm8994->edge_irq, 0));
drivers/mfd/wm8994-irq.c
165
struct wm8994 *wm8994 = h->host_data;
drivers/mfd/wm8994-irq.c
167
irq_set_chip_data(virq, wm8994);
drivers/mfd/wm8994-irq.c
180
int wm8994_irq_init(struct wm8994 *wm8994)
drivers/mfd/wm8994-irq.c
184
struct wm8994_pdata *pdata = &wm8994->pdata;
drivers/mfd/wm8994-irq.c
186
if (!wm8994->irq) {
drivers/mfd/wm8994-irq.c
187
dev_warn(wm8994->dev,
drivers/mfd/wm8994-irq.c
189
wm8994->irq_base = 0;
drivers/mfd/wm8994-irq.c
200
if (gpio_to_irq(pdata->irq_gpio) != wm8994->irq) {
drivers/mfd/wm8994-irq.c
201
dev_warn(wm8994->dev, "IRQ %d is not GPIO %d (%d)\n",
drivers/mfd/wm8994-irq.c
202
wm8994->irq, pdata->irq_gpio,
drivers/mfd/wm8994-irq.c
204
wm8994->irq = gpio_to_irq(pdata->irq_gpio);
drivers/mfd/wm8994-irq.c
207
ret = devm_gpio_request_one(wm8994->dev, pdata->irq_gpio,
drivers/mfd/wm8994-irq.c
211
dev_err(wm8994->dev, "Failed to get IRQ GPIO: %d\n",
drivers/mfd/wm8994-irq.c
216
wm8994->edge_irq = irq_domain_create_linear(NULL, 1, &wm8994_edge_irq_ops, wm8994);
drivers/mfd/wm8994-irq.c
218
ret = regmap_add_irq_chip(wm8994->regmap,
drivers/mfd/wm8994-irq.c
219
irq_create_mapping(wm8994->edge_irq,
drivers/mfd/wm8994-irq.c
222
wm8994->irq_base, &wm8994_irq_chip,
drivers/mfd/wm8994-irq.c
223
&wm8994->irq_data);
drivers/mfd/wm8994-irq.c
225
dev_err(wm8994->dev, "Failed to get IRQ: %d\n",
drivers/mfd/wm8994-irq.c
230
ret = request_threaded_irq(wm8994->irq,
drivers/mfd/wm8994-irq.c
233
"WM8994 edge", wm8994);
drivers/mfd/wm8994-irq.c
235
ret = regmap_add_irq_chip(wm8994->regmap, wm8994->irq,
drivers/mfd/wm8994-irq.c
237
wm8994->irq_base, &wm8994_irq_chip,
drivers/mfd/wm8994-irq.c
238
&wm8994->irq_data);
drivers/mfd/wm8994-irq.c
242
dev_err(wm8994->dev, "Failed to register IRQ chip: %d\n", ret);
drivers/mfd/wm8994-irq.c
247
wm8994_reg_write(wm8994, WM8994_INTERRUPT_CONTROL, 0);
drivers/mfd/wm8994-irq.c
253
void wm8994_irq_exit(struct wm8994 *wm8994)
drivers/mfd/wm8994-irq.c
255
regmap_del_irq_chip(wm8994->irq, wm8994->irq_data);
drivers/mfd/wm8994-regmap.c
1194
struct wm8994 *wm8994 = dev_get_drvdata(dev);
drivers/mfd/wm8994-regmap.c
1198
if (wm8994->cust_id > 1 || wm8994->revision > 1)
drivers/regulator/wm8994-regulator.c
151
struct wm8994 *wm8994 = dev_get_drvdata(pdev->dev.parent);
drivers/regulator/wm8994-regulator.c
152
struct wm8994_pdata *pdata = dev_get_platdata(wm8994->dev);
drivers/regulator/wm8994-regulator.c
165
ldo->wm8994 = wm8994;
drivers/regulator/wm8994-regulator.c
167
ldo->supply.dev_name = dev_name(wm8994->dev);
drivers/regulator/wm8994-regulator.c
169
config.dev = wm8994->dev;
drivers/regulator/wm8994-regulator.c
171
config.regmap = wm8994->regmap;
drivers/regulator/wm8994-regulator.c
187
if (!pdata || !pdata->ldo[id].init_data || wm8994->dev->of_node) {
drivers/regulator/wm8994-regulator.c
188
dev_dbg(wm8994->dev, "Using default init data, supply %s %s\n",
drivers/regulator/wm8994-regulator.c
204
if (ldo->wm8994->type == WM8994) {
drivers/regulator/wm8994-regulator.c
216
dev_err(wm8994->dev, "Failed to register LDO%d: %d\n",
drivers/regulator/wm8994-regulator.c
26
struct wm8994 *wm8994;
drivers/regulator/wm8994-regulator.c
49
switch (ldo->wm8994->type) {
include/linux/mfd/wm8994/core.h
101
static inline int wm8994_bulk_read(struct wm8994 *wm8994, unsigned short reg,
include/linux/mfd/wm8994/core.h
104
return regmap_bulk_read(wm8994->regmap, reg, buf, count);
include/linux/mfd/wm8994/core.h
107
static inline int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
include/linux/mfd/wm8994/core.h
110
return regmap_raw_write(wm8994->regmap, reg, buf, count * sizeof(u16));
include/linux/mfd/wm8994/core.h
113
static inline int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
include/linux/mfd/wm8994/core.h
116
return regmap_update_bits(wm8994->regmap, reg, mask, val);
include/linux/mfd/wm8994/core.h
120
static inline int wm8994_request_irq(struct wm8994 *wm8994, int irq,
include/linux/mfd/wm8994/core.h
124
if (!wm8994->irq_data)
include/linux/mfd/wm8994/core.h
126
return request_threaded_irq(regmap_irq_get_virq(wm8994->irq_data, irq),
include/linux/mfd/wm8994/core.h
130
static inline void wm8994_free_irq(struct wm8994 *wm8994, int irq, void *data)
include/linux/mfd/wm8994/core.h
132
if (!wm8994->irq_data)
include/linux/mfd/wm8994/core.h
134
free_irq(regmap_irq_get_virq(wm8994->irq_data, irq), data);
include/linux/mfd/wm8994/core.h
137
int wm8994_irq_init(struct wm8994 *wm8994);
include/linux/mfd/wm8994/core.h
138
void wm8994_irq_exit(struct wm8994 *wm8994);
include/linux/mfd/wm8994/core.h
82
static inline int wm8994_reg_read(struct wm8994 *wm8994, unsigned short reg)
include/linux/mfd/wm8994/core.h
87
ret = regmap_read(wm8994->regmap, reg, &val);
include/linux/mfd/wm8994/core.h
95
static inline int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
include/linux/mfd/wm8994/core.h
98
return regmap_write(wm8994->regmap, reg, val);
sound/soc/codecs/wm8958-dsp2.c
1000
dev_err(wm8994->hubs.component->dev,
sound/soc/codecs/wm8958-dsp2.c
1007
SOC_ENUM_EXT("Enhanced EQ Mode", wm8994->enh_eq_enum,
sound/soc/codecs/wm8958-dsp2.c
1013
wm8994->enh_eq_texts = kmalloc_array(pdata->num_enh_eq_cfgs,
sound/soc/codecs/wm8958-dsp2.c
1016
if (!wm8994->enh_eq_texts)
sound/soc/codecs/wm8958-dsp2.c
1020
wm8994->enh_eq_texts[i] = pdata->enh_eq_cfgs[i].name;
sound/soc/codecs/wm8958-dsp2.c
1022
wm8994->enh_eq_enum.items = pdata->num_enh_eq_cfgs;
sound/soc/codecs/wm8958-dsp2.c
1023
wm8994->enh_eq_enum.texts = wm8994->enh_eq_texts;
sound/soc/codecs/wm8958-dsp2.c
1025
ret = snd_soc_add_component_controls(wm8994->hubs.component,
sound/soc/codecs/wm8958-dsp2.c
1028
dev_err(wm8994->hubs.component->dev,
sound/soc/codecs/wm8958-dsp2.c
149
wm8994_bulk_write(wm8994->wm8994,
sound/soc/codecs/wm8958-dsp2.c
170
wm8994->cur_fw = fw;
sound/soc/codecs/wm8958-dsp2.c
190
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
191
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
199
if (wm8994->mbc)
sound/soc/codecs/wm8958-dsp2.c
200
wm8958_dsp2_fw(component, "MBC", wm8994->mbc, false);
sound/soc/codecs/wm8958-dsp2.c
208
= &control->pdata.mbc_cfgs[wm8994->mbc_cfg];
sound/soc/codecs/wm8958-dsp2.c
234
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
235
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
238
if (wm8994->mbc_vss)
sound/soc/codecs/wm8958-dsp2.c
239
wm8958_dsp2_fw(component, "MBC+VSS", wm8994->mbc_vss, false);
sound/soc/codecs/wm8958-dsp2.c
247
= &control->pdata.mbc_cfgs[wm8994->mbc_cfg];
sound/soc/codecs/wm8958-dsp2.c
256
= &control->pdata.vss_cfgs[wm8994->vss_cfg];
sound/soc/codecs/wm8958-dsp2.c
264
= &control->pdata.vss_hpf_cfgs[wm8994->vss_hpf_cfg];
sound/soc/codecs/wm8958-dsp2.c
276
if (wm8994->mbc_ena[path])
sound/soc/codecs/wm8958-dsp2.c
278
if (wm8994->hpf2_ena[path])
sound/soc/codecs/wm8958-dsp2.c
280
if (wm8994->hpf1_ena[path])
sound/soc/codecs/wm8958-dsp2.c
282
if (wm8994->vss_ena[path])
sound/soc/codecs/wm8958-dsp2.c
295
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
296
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
299
wm8958_dsp2_fw(component, "ENH_EQ", wm8994->enh_eq, false);
sound/soc/codecs/wm8958-dsp2.c
307
= &control->pdata.enh_eq_cfgs[wm8994->enh_eq_cfg];
sound/soc/codecs/wm8958-dsp2.c
326
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
349
ena = wm8994->mbc_ena[path] || wm8994->vss_ena[path] ||
sound/soc/codecs/wm8958-dsp2.c
350
wm8994->hpf1_ena[path] || wm8994->hpf2_ena[path] ||
sound/soc/codecs/wm8958-dsp2.c
351
wm8994->enh_eq_ena[path];
sound/soc/codecs/wm8958-dsp2.c
358
path, wm8994->dsp_active, start, pwr_reg, reg);
sound/soc/codecs/wm8958-dsp2.c
378
if (wm8994->enh_eq_ena[path])
sound/soc/codecs/wm8958-dsp2.c
380
else if (wm8994->vss_ena[path] || wm8994->hpf1_ena[path] ||
sound/soc/codecs/wm8958-dsp2.c
381
wm8994->hpf2_ena[path])
sound/soc/codecs/wm8958-dsp2.c
383
else if (wm8994->mbc_ena[path])
sound/soc/codecs/wm8958-dsp2.c
386
wm8994->dsp_active = path;
sound/soc/codecs/wm8958-dsp2.c
391
if (!start && wm8994->dsp_active == path) {
sound/soc/codecs/wm8958-dsp2.c
405
wm8994->dsp_active = -1;
sound/soc/codecs/wm8958-dsp2.c
415
struct wm8994 *control = dev_get_drvdata(component->dev->parent);
sound/soc/codecs/wm8958-dsp2.c
438
static int wm8958_dsp2_busy(struct wm8994_priv *wm8994, int aif)
sound/soc/codecs/wm8958-dsp2.c
44
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
442
for (i = 0; i < ARRAY_SIZE(wm8994->mbc_ena); i++) {
sound/soc/codecs/wm8958-dsp2.c
445
if (wm8994->mbc_ena[i] || wm8994->vss_ena[i] ||
sound/soc/codecs/wm8958-dsp2.c
446
wm8994->hpf1_ena[i] || wm8994->hpf2_ena[i])
sound/soc/codecs/wm8958-dsp2.c
457
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
458
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
470
wm8994->mbc_cfg = value;
sound/soc/codecs/wm8958-dsp2.c
479
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
481
ucontrol->value.enumerated.item[0] = wm8994->mbc_cfg;
sound/soc/codecs/wm8958-dsp2.c
501
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
503
ucontrol->value.integer.value[0] = wm8994->mbc_ena[mbc];
sound/soc/codecs/wm8958-dsp2.c
513
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
515
if (wm8994->mbc_ena[mbc] == ucontrol->value.integer.value[0])
sound/soc/codecs/wm8958-dsp2.c
521
if (wm8958_dsp2_busy(wm8994, mbc)) {
sound/soc/codecs/wm8958-dsp2.c
526
if (wm8994->enh_eq_ena[mbc])
sound/soc/codecs/wm8958-dsp2.c
529
wm8994->mbc_ena[mbc] = ucontrol->value.integer.value[0];
sound/soc/codecs/wm8958-dsp2.c
53
if (wm8994->cur_fw == fw)
sound/soc/codecs/wm8958-dsp2.c
531
wm8958_dsp_apply(component, mbc, wm8994->mbc_ena[mbc]);
sound/soc/codecs/wm8958-dsp2.c
547
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
548
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
560
wm8994->vss_cfg = value;
sound/soc/codecs/wm8958-dsp2.c
569
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
571
ucontrol->value.enumerated.item[0] = wm8994->vss_cfg;
sound/soc/codecs/wm8958-dsp2.c
580
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
581
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
593
wm8994->vss_hpf_cfg = value;
sound/soc/codecs/wm8958-dsp2.c
602
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
604
ucontrol->value.enumerated.item[0] = wm8994->vss_hpf_cfg;
sound/soc/codecs/wm8958-dsp2.c
624
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
626
ucontrol->value.integer.value[0] = wm8994->vss_ena[vss];
sound/soc/codecs/wm8958-dsp2.c
636
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
638
if (wm8994->vss_ena[vss] == ucontrol->value.integer.value[0])
sound/soc/codecs/wm8958-dsp2.c
644
if (!wm8994->mbc_vss)
sound/soc/codecs/wm8958-dsp2.c
647
if (wm8958_dsp2_busy(wm8994, vss)) {
sound/soc/codecs/wm8958-dsp2.c
652
if (wm8994->enh_eq_ena[vss])
sound/soc/codecs/wm8958-dsp2.c
655
wm8994->vss_ena[vss] = ucontrol->value.integer.value[0];
sound/soc/codecs/wm8958-dsp2.c
657
wm8958_dsp_apply(component, vss, wm8994->vss_ena[vss]);
sound/soc/codecs/wm8958-dsp2.c
685
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
688
ucontrol->value.integer.value[0] = wm8994->hpf1_ena[hpf % 3];
sound/soc/codecs/wm8958-dsp2.c
690
ucontrol->value.integer.value[0] = wm8994->hpf2_ena[hpf % 3];
sound/soc/codecs/wm8958-dsp2.c
700
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
703
if (wm8994->hpf1_ena[hpf % 3] ==
sound/soc/codecs/wm8958-dsp2.c
707
if (wm8994->hpf2_ena[hpf % 3] ==
sound/soc/codecs/wm8958-dsp2.c
715
if (!wm8994->mbc_vss)
sound/soc/codecs/wm8958-dsp2.c
718
if (wm8958_dsp2_busy(wm8994, hpf % 3)) {
sound/soc/codecs/wm8958-dsp2.c
723
if (wm8994->enh_eq_ena[hpf % 3])
sound/soc/codecs/wm8958-dsp2.c
727
wm8994->hpf1_ena[hpf % 3] = ucontrol->value.integer.value[0];
sound/soc/codecs/wm8958-dsp2.c
729
wm8994->hpf2_ena[hpf % 3] = ucontrol->value.integer.value[0];
sound/soc/codecs/wm8958-dsp2.c
747
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
748
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
760
wm8994->enh_eq_cfg = value;
sound/soc/codecs/wm8958-dsp2.c
769
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
771
ucontrol->value.enumerated.item[0] = wm8994->enh_eq_cfg;
sound/soc/codecs/wm8958-dsp2.c
791
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
793
ucontrol->value.integer.value[0] = wm8994->enh_eq_ena[eq];
sound/soc/codecs/wm8958-dsp2.c
803
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
805
if (wm8994->enh_eq_ena[eq] == ucontrol->value.integer.value[0])
sound/soc/codecs/wm8958-dsp2.c
811
if (!wm8994->enh_eq)
sound/soc/codecs/wm8958-dsp2.c
814
if (wm8958_dsp2_busy(wm8994, eq)) {
sound/soc/codecs/wm8958-dsp2.c
819
if (wm8994->mbc_ena[eq] || wm8994->vss_ena[eq] ||
sound/soc/codecs/wm8958-dsp2.c
820
wm8994->hpf1_ena[eq] || wm8994->hpf2_ena[eq])
sound/soc/codecs/wm8958-dsp2.c
823
wm8994->enh_eq_ena[eq] = ucontrol->value.integer.value[0];
sound/soc/codecs/wm8958-dsp2.c
864
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
867
mutex_lock(&wm8994->fw_lock);
sound/soc/codecs/wm8958-dsp2.c
868
wm8994->enh_eq = fw;
sound/soc/codecs/wm8958-dsp2.c
869
mutex_unlock(&wm8994->fw_lock);
sound/soc/codecs/wm8958-dsp2.c
876
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
879
mutex_lock(&wm8994->fw_lock);
sound/soc/codecs/wm8958-dsp2.c
880
wm8994->mbc_vss = fw;
sound/soc/codecs/wm8958-dsp2.c
881
mutex_unlock(&wm8994->fw_lock);
sound/soc/codecs/wm8958-dsp2.c
888
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
891
mutex_lock(&wm8994->fw_lock);
sound/soc/codecs/wm8958-dsp2.c
892
wm8994->mbc = fw;
sound/soc/codecs/wm8958-dsp2.c
893
mutex_unlock(&wm8994->fw_lock);
sound/soc/codecs/wm8958-dsp2.c
899
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8958-dsp2.c
900
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8958-dsp2.c
904
wm8994->dsp_active = -1;
sound/soc/codecs/wm8958-dsp2.c
927
SOC_ENUM_EXT("MBC Mode", wm8994->mbc_enum,
sound/soc/codecs/wm8958-dsp2.c
932
wm8994->mbc_texts = kmalloc_array(pdata->num_mbc_cfgs,
sound/soc/codecs/wm8958-dsp2.c
935
if (!wm8994->mbc_texts)
sound/soc/codecs/wm8958-dsp2.c
939
wm8994->mbc_texts[i] = pdata->mbc_cfgs[i].name;
sound/soc/codecs/wm8958-dsp2.c
941
wm8994->mbc_enum.items = pdata->num_mbc_cfgs;
sound/soc/codecs/wm8958-dsp2.c
942
wm8994->mbc_enum.texts = wm8994->mbc_texts;
sound/soc/codecs/wm8958-dsp2.c
944
ret = snd_soc_add_component_controls(wm8994->hubs.component,
sound/soc/codecs/wm8958-dsp2.c
947
dev_err(wm8994->hubs.component->dev,
sound/soc/codecs/wm8958-dsp2.c
953
SOC_ENUM_EXT("VSS Mode", wm8994->vss_enum,
sound/soc/codecs/wm8958-dsp2.c
958
wm8994->vss_texts = kmalloc_array(pdata->num_vss_cfgs,
sound/soc/codecs/wm8958-dsp2.c
961
if (!wm8994->vss_texts)
sound/soc/codecs/wm8958-dsp2.c
965
wm8994->vss_texts[i] = pdata->vss_cfgs[i].name;
sound/soc/codecs/wm8958-dsp2.c
967
wm8994->vss_enum.items = pdata->num_vss_cfgs;
sound/soc/codecs/wm8958-dsp2.c
968
wm8994->vss_enum.texts = wm8994->vss_texts;
sound/soc/codecs/wm8958-dsp2.c
970
ret = snd_soc_add_component_controls(wm8994->hubs.component,
sound/soc/codecs/wm8958-dsp2.c
973
dev_err(wm8994->hubs.component->dev,
sound/soc/codecs/wm8958-dsp2.c
979
SOC_ENUM_EXT("VSS HPF Mode", wm8994->vss_hpf_enum,
sound/soc/codecs/wm8958-dsp2.c
985
wm8994->vss_hpf_texts = kmalloc_array(pdata->num_vss_hpf_cfgs,
sound/soc/codecs/wm8958-dsp2.c
988
if (!wm8994->vss_hpf_texts)
sound/soc/codecs/wm8958-dsp2.c
992
wm8994->vss_hpf_texts[i] = pdata->vss_hpf_cfgs[i].name;
sound/soc/codecs/wm8958-dsp2.c
994
wm8994->vss_hpf_enum.items = pdata->num_vss_hpf_cfgs;
sound/soc/codecs/wm8958-dsp2.c
995
wm8994->vss_hpf_enum.texts = wm8994->vss_hpf_texts;
sound/soc/codecs/wm8958-dsp2.c
997
ret = snd_soc_add_component_controls(wm8994->hubs.component,
sound/soc/codecs/wm8994.c
1041
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1042
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
1061
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1085
ret = clk_prepare_enable(wm8994->mclk[clk_idx].clk);
sound/soc/codecs/wm8994.c
1092
clk_disable_unprepare(wm8994->mclk[clk_idx].clk);
sound/soc/codecs/wm8994.c
1102
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1103
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
1126
if (wm8994->channels[0] <= 2)
sound/soc/codecs/wm8994.c
113
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
114
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
120
idle = !wm8994->jack_mic;
sound/soc/codecs/wm8994.c
124
sysclk = wm8994->aifclk[1];
sound/soc/codecs/wm8994.c
126
sysclk = wm8994->aifclk[0];
sound/soc/codecs/wm8994.c
1299
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1303
wm8994->aif1clk_enable = 1;
sound/soc/codecs/wm8994.c
1306
wm8994->aif1clk_disable = 1;
sound/soc/codecs/wm8994.c
131
} else if (wm8994->jackdet) {
sound/soc/codecs/wm8994.c
1317
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1321
wm8994->aif2clk_enable = 1;
sound/soc/codecs/wm8994.c
1324
wm8994->aif2clk_disable = 1;
sound/soc/codecs/wm8994.c
1335
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1339
if (wm8994->aif1clk_enable) {
sound/soc/codecs/wm8994.c
1345
wm8994->aif1clk_enable = 0;
sound/soc/codecs/wm8994.c
1347
if (wm8994->aif2clk_enable) {
sound/soc/codecs/wm8994.c
1353
wm8994->aif2clk_enable = 0;
sound/soc/codecs/wm8994.c
1368
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
1372
if (wm8994->aif1clk_disable) {
sound/soc/codecs/wm8994.c
1377
wm8994->aif1clk_disable = 0;
sound/soc/codecs/wm8994.c
1379
if (wm8994->aif2clk_disable) {
sound/soc/codecs/wm8994.c
1384
wm8994->aif2clk_disable = 0;
sound/soc/codecs/wm8994.c
164
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
174
switch (wm8994->sysclk[aif]) {
sound/soc/codecs/wm8994.c
176
rate = wm8994->mclk_rate[0];
sound/soc/codecs/wm8994.c
181
rate = wm8994->mclk_rate[1];
sound/soc/codecs/wm8994.c
186
rate = wm8994->fll[0].out;
sound/soc/codecs/wm8994.c
191
rate = wm8994->fll[1].out;
sound/soc/codecs/wm8994.c
206
wm8994->aifclk[aif] = rate;
sound/soc/codecs/wm8994.c
2122
static int wm8994_get_fll_config(struct wm8994 *control, struct fll_div *fll,
sound/soc/codecs/wm8994.c
218
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2208
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2209
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
2240
src = wm8994->fll[id].src;
sound/soc/codecs/wm8994.c
2256
if (wm8994->fll[id].src == src &&
sound/soc/codecs/wm8994.c
2257
wm8994->fll[id].in == freq_in && wm8994->fll[id].out == freq_out)
sound/soc/codecs/wm8994.c
2267
ret = wm8994_get_fll_config(control, &fll, wm8994->fll[id].in,
sound/soc/codecs/wm8994.c
2268
wm8994->fll[id].out);
sound/soc/codecs/wm8994.c
2300
mclk = wm8994->mclk[WM8994_MCLK1].clk;
sound/soc/codecs/wm8994.c
2303
mclk = wm8994->mclk[WM8994_MCLK2].clk;
sound/soc/codecs/wm8994.c
2312
if (wm8994->fll_byp && src == WM8994_FLL_SRC_BCLK &&
sound/soc/codecs/wm8994.c
232
if (wm8994->aifclk[0] == wm8994->aifclk[1]) {
sound/soc/codecs/wm8994.c
2354
try_wait_for_completion(&wm8994->fll_locked[id]);
sound/soc/codecs/wm8994.c
2358
mclk = wm8994->mclk[WM8994_MCLK1].clk;
sound/soc/codecs/wm8994.c
2361
mclk = wm8994->mclk[WM8994_MCLK2].clk;
sound/soc/codecs/wm8994.c
237
if (wm8994->aifclk[0] < wm8994->aifclk[1])
sound/soc/codecs/wm8994.c
2405
if (wm8994->fll_locked_irq) {
sound/soc/codecs/wm8994.c
2406
time_left = wait_for_completion_timeout(&wm8994->fll_locked[id],
sound/soc/codecs/wm8994.c
2433
wm8994->fll[id].in = freq_in;
sound/soc/codecs/wm8994.c
2434
wm8994->fll[id].out = freq_out;
sound/soc/codecs/wm8994.c
2435
wm8994->fll[id].src = src;
sound/soc/codecs/wm8994.c
2443
if (max(wm8994->aifclk[0], wm8994->aifclk[1]) < 50000) {
sound/soc/codecs/wm8994.c
2446
wm8994->aifdiv[0] = snd_soc_component_read(component, WM8994_AIF1_RATE)
sound/soc/codecs/wm8994.c
2448
wm8994->aifdiv[1] = snd_soc_component_read(component, WM8994_AIF2_RATE)
sound/soc/codecs/wm8994.c
2455
} else if (wm8994->aifdiv[0]) {
sound/soc/codecs/wm8994.c
2458
wm8994->aifdiv[0]);
sound/soc/codecs/wm8994.c
2461
wm8994->aifdiv[1]);
sound/soc/codecs/wm8994.c
2463
wm8994->aifdiv[0] = 0;
sound/soc/codecs/wm8994.c
2464
wm8994->aifdiv[1] = 0;
sound/soc/codecs/wm8994.c
2487
static int wm8994_set_mclk_rate(struct wm8994_priv *wm8994, unsigned int id,
sound/soc/codecs/wm8994.c
2492
if (!wm8994->mclk[id].clk || *freq == wm8994->mclk_rate[id])
sound/soc/codecs/wm8994.c
2495
ret = clk_set_rate(wm8994->mclk[id].clk, *freq);
sound/soc/codecs/wm8994.c
2499
*freq = clk_get_rate(wm8994->mclk[id].clk);
sound/soc/codecs/wm8994.c
2508
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2523
wm8994->sysclk[dai->id - 1] = WM8994_SYSCLK_MCLK1;
sound/soc/codecs/wm8994.c
2525
ret = wm8994_set_mclk_rate(wm8994, dai->id - 1, &freq);
sound/soc/codecs/wm8994.c
2529
wm8994->mclk_rate[0] = freq;
sound/soc/codecs/wm8994.c
2536
wm8994->sysclk[dai->id - 1] = WM8994_SYSCLK_MCLK2;
sound/soc/codecs/wm8994.c
2538
ret = wm8994_set_mclk_rate(wm8994, dai->id - 1, &freq);
sound/soc/codecs/wm8994.c
2542
wm8994->mclk_rate[1] = freq;
sound/soc/codecs/wm8994.c
2548
wm8994->sysclk[dai->id - 1] = WM8994_SYSCLK_FLL1;
sound/soc/codecs/wm8994.c
2553
wm8994->sysclk[dai->id - 1] = WM8994_SYSCLK_FLL2;
sound/soc/codecs/wm8994.c
2587
if (max(wm8994->aifclk[0], wm8994->aifclk[1]) < 50000) {
sound/soc/codecs/wm8994.c
2590
wm8994->aifdiv[0] = snd_soc_component_read(component, WM8994_AIF1_RATE)
sound/soc/codecs/wm8994.c
2592
wm8994->aifdiv[1] = snd_soc_component_read(component, WM8994_AIF2_RATE)
sound/soc/codecs/wm8994.c
2599
} else if (wm8994->aifdiv[0]) {
sound/soc/codecs/wm8994.c
2602
wm8994->aifdiv[0]);
sound/soc/codecs/wm8994.c
2605
wm8994->aifdiv[1]);
sound/soc/codecs/wm8994.c
2607
wm8994->aifdiv[0] = 0;
sound/soc/codecs/wm8994.c
2608
wm8994->aifdiv[1] = 0;
sound/soc/codecs/wm8994.c
2617
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2619
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
2691
wm8994->cur_fw = NULL;
sound/soc/codecs/wm8994.c
2700
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2707
if (wm8994->hubs.lineout1_se) {
sound/soc/codecs/wm8994.c
2713
if (wm8994->hubs.lineout2_se) {
sound/soc/codecs/wm8994.c
2722
wm8994->vmid_mode = mode;
sound/soc/codecs/wm8994.c
2730
if (wm8994->hubs.lineout1_se) {
sound/soc/codecs/wm8994.c
2736
if (wm8994->hubs.lineout2_se) {
sound/soc/codecs/wm8994.c
2743
wm8994->vmid_mode = mode;
sound/soc/codecs/wm8994.c
2759
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2760
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
2915
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
2916
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
2939
wm8994->lrclk_shared[0]) {
sound/soc/codecs/wm8994.c
2952
wm8994->lrclk_shared[1]) {
sound/soc/codecs/wm8994.c
2984
wm8994->channels[id] = params_channels(params);
sound/soc/codecs/wm8994.c
2986
wm8994->channels[id] > pdata->max_channels_clocked[id]) {
sound/soc/codecs/wm8994.c
2988
pdata->max_channels_clocked[id], wm8994->channels[id]);
sound/soc/codecs/wm8994.c
2989
wm8994->channels[id] = pdata->max_channels_clocked[id];
sound/soc/codecs/wm8994.c
2992
switch (wm8994->channels[id]) {
sound/soc/codecs/wm8994.c
3012
dai->id, wm8994->aifclk[id], bclk_rate);
sound/soc/codecs/wm8994.c
3014
if (wm8994->channels[id] == 1 &&
sound/soc/codecs/wm8994.c
3018
if (wm8994->aifclk[id] == 0) {
sound/soc/codecs/wm8994.c
3026
- wm8994->aifclk[id]);
sound/soc/codecs/wm8994.c
3029
- wm8994->aifclk[id]);
sound/soc/codecs/wm8994.c
3046
cur_val = (wm8994->aifclk[id] * 10 / bclk_divs[i]) - bclk_rate;
sound/soc/codecs/wm8994.c
3051
bclk_rate = wm8994->aifclk[id] * 10 / bclk_divs[best];
sound/soc/codecs/wm8994.c
3076
wm8994->dac_rates[0] = params_rate(params);
sound/soc/codecs/wm8994.c
3081
wm8994->dac_rates[1] = params_rate(params);
sound/soc/codecs/wm8994.c
3095
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3096
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
325
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
326
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
329
int cfg = wm8994->drc_cfg[drc];
sound/soc/codecs/wm8994.c
3302
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3306
for (i = 0; i < ARRAY_SIZE(wm8994->fll); i++) {
sound/soc/codecs/wm8994.c
3307
memcpy(&wm8994->fll_suspend[i], &wm8994->fll[i],
sound/soc/codecs/wm8994.c
3322
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3325
for (i = 0; i < ARRAY_SIZE(wm8994->fll); i++) {
sound/soc/codecs/wm8994.c
3326
if (!wm8994->fll_suspend[i].out)
sound/soc/codecs/wm8994.c
3330
wm8994->fll_suspend[i].src,
sound/soc/codecs/wm8994.c
3331
wm8994->fll_suspend[i].in,
sound/soc/codecs/wm8994.c
3332
wm8994->fll_suspend[i].out);
sound/soc/codecs/wm8994.c
3345
static void wm8994_handle_retune_mobile_pdata(struct wm8994_priv *wm8994)
sound/soc/codecs/wm8994.c
3347
struct snd_soc_component *component = wm8994->hubs.component;
sound/soc/codecs/wm8994.c
3348
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3352
wm8994->retune_mobile_enum,
sound/soc/codecs/wm8994.c
3356
wm8994->retune_mobile_enum,
sound/soc/codecs/wm8994.c
3360
wm8994->retune_mobile_enum,
sound/soc/codecs/wm8994.c
3371
wm8994->num_retune_mobile_texts = 0;
sound/soc/codecs/wm8994.c
3372
wm8994->retune_mobile_texts = NULL;
sound/soc/codecs/wm8994.c
3374
for (j = 0; j < wm8994->num_retune_mobile_texts; j++) {
sound/soc/codecs/wm8994.c
3376
wm8994->retune_mobile_texts[j]) == 0)
sound/soc/codecs/wm8994.c
3380
if (j != wm8994->num_retune_mobile_texts)
sound/soc/codecs/wm8994.c
3384
t = krealloc(wm8994->retune_mobile_texts,
sound/soc/codecs/wm8994.c
3386
(wm8994->num_retune_mobile_texts + 1),
sound/soc/codecs/wm8994.c
3392
t[wm8994->num_retune_mobile_texts] =
sound/soc/codecs/wm8994.c
3396
wm8994->num_retune_mobile_texts++;
sound/soc/codecs/wm8994.c
3397
wm8994->retune_mobile_texts = t;
sound/soc/codecs/wm8994.c
3401
wm8994->num_retune_mobile_texts);
sound/soc/codecs/wm8994.c
3403
wm8994->retune_mobile_enum.items = wm8994->num_retune_mobile_texts;
sound/soc/codecs/wm8994.c
3404
wm8994->retune_mobile_enum.texts = wm8994->retune_mobile_texts;
sound/soc/codecs/wm8994.c
3406
ret = snd_soc_add_component_controls(wm8994->hubs.component, controls,
sound/soc/codecs/wm8994.c
3409
dev_err(wm8994->hubs.component->dev,
sound/soc/codecs/wm8994.c
3413
static void wm8994_handle_pdata(struct wm8994_priv *wm8994)
sound/soc/codecs/wm8994.c
3415
struct snd_soc_component *component = wm8994->hubs.component;
sound/soc/codecs/wm8994.c
3416
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3438
SOC_ENUM_EXT("AIF1DRC1 Mode", wm8994->drc_enum,
sound/soc/codecs/wm8994.c
3440
SOC_ENUM_EXT("AIF1DRC2 Mode", wm8994->drc_enum,
sound/soc/codecs/wm8994.c
3442
SOC_ENUM_EXT("AIF2DRC Mode", wm8994->drc_enum,
sound/soc/codecs/wm8994.c
3447
wm8994->drc_texts = devm_kcalloc(wm8994->hubs.component->dev,
sound/soc/codecs/wm8994.c
3449
if (!wm8994->drc_texts)
sound/soc/codecs/wm8994.c
3453
wm8994->drc_texts[i] = pdata->drc_cfgs[i].name;
sound/soc/codecs/wm8994.c
3455
wm8994->drc_enum.items = pdata->num_drc_cfgs;
sound/soc/codecs/wm8994.c
3456
wm8994->drc_enum.texts = wm8994->drc_texts;
sound/soc/codecs/wm8994.c
3458
ret = snd_soc_add_component_controls(wm8994->hubs.component, controls,
sound/soc/codecs/wm8994.c
3463
ret = snd_soc_add_component_controls(wm8994->hubs.component,
sound/soc/codecs/wm8994.c
3469
dev_err(wm8994->hubs.component->dev,
sound/soc/codecs/wm8994.c
3477
wm8994_handle_retune_mobile_pdata(wm8994);
sound/soc/codecs/wm8994.c
3479
snd_soc_add_component_controls(wm8994->hubs.component, wm8994_eq_controls,
sound/soc/codecs/wm8994.c
3509
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3511
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3523
micdet = &wm8994->micdet[0];
sound/soc/codecs/wm8994.c
3530
micdet = &wm8994->micdet[1];
sound/soc/codecs/wm8994.c
3553
if (wm8994->micdet[0].jack || wm8994->micdet[1].jack)
sound/soc/codecs/wm8994.c
3579
struct regmap *regmap = priv->wm8994->regmap;
sound/soc/codecs/wm8994.c
3580
struct device *dev = priv->wm8994->dev;
sound/soc/codecs/wm8994.c
362
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
363
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3659
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3661
if (!wm8994->jackdet)
sound/soc/codecs/wm8994.c
3668
if (wm8994->wm8994->pdata.jd_ext_cap)
sound/soc/codecs/wm8994.c
3674
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3696
snd_soc_jack_report(wm8994->micdet[0].jack, report,
sound/soc/codecs/wm8994.c
3697
wm8994->btn_mask);
sound/soc/codecs/wm8994.c
3702
struct wm8994_priv *wm8994 = container_of(work,
sound/soc/codecs/wm8994.c
3705
struct device *dev = wm8994->wm8994->dev;
sound/soc/codecs/wm8994.c
3707
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3709
wm1811_micd_stop(wm8994->hubs.component);
sound/soc/codecs/wm8994.c
3713
wm8994->jack_mic = false;
sound/soc/codecs/wm8994.c
3714
wm8994->mic_detecting = true;
sound/soc/codecs/wm8994.c
3716
wm8958_micd_set_rate(wm8994->hubs.component);
sound/soc/codecs/wm8994.c
3718
snd_soc_jack_report(wm8994->micdet[0].jack, 0,
sound/soc/codecs/wm8994.c
3719
wm8994->btn_mask |
sound/soc/codecs/wm8994.c
3722
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3728
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3736
&wm8994->open_circuit_work,
sound/soc/codecs/wm8994.c
374
wm8994->drc_cfg[drc] = value;
sound/soc/codecs/wm8994.c
3747
wm8994->mic_detecting = false;
sound/soc/codecs/wm8994.c
3748
wm8994->jack_mic = true;
sound/soc/codecs/wm8994.c
3752
snd_soc_jack_report(wm8994->micdet[0].jack, SND_JACK_HEADSET,
sound/soc/codecs/wm8994.c
3759
wm8994->mic_detecting = false;
sound/soc/codecs/wm8994.c
3766
snd_soc_jack_report(wm8994->micdet[0].jack, SND_JACK_HEADPHONE,
sound/soc/codecs/wm8994.c
3774
struct wm8994_priv *wm8994 = container_of(work, struct wm8994_priv,
sound/soc/codecs/wm8994.c
3776
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3777
struct snd_soc_component *component = wm8994->hubs.component;
sound/soc/codecs/wm8994.c
3788
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3793
if (wm8994->micd_cb) {
sound/soc/codecs/wm8994.c
3794
wm8994->micd_cb(wm8994->micd_cb_data);
sound/soc/codecs/wm8994.c
3800
wm8994->mic_detecting = true;
sound/soc/codecs/wm8994.c
3807
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3814
struct wm8994_priv *wm8994 = data;
sound/soc/codecs/wm8994.c
3815
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3816
struct snd_soc_component *component = wm8994->hubs.component;
sound/soc/codecs/wm8994.c
3823
cancel_delayed_work_sync(&wm8994->mic_complete_work);
sound/soc/codecs/wm8994.c
3825
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3830
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
385
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3853
&wm8994->mic_work,
sound/soc/codecs/wm8994.c
3861
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3862
cancel_delayed_work_sync(&wm8994->mic_work);
sound/soc/codecs/wm8994.c
3863
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3872
wm8994->mic_detecting = false;
sound/soc/codecs/wm8994.c
3873
wm8994->jack_mic = false;
sound/soc/codecs/wm8994.c
3879
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
3886
snd_soc_jack_report(wm8994->micdet[0].jack,
sound/soc/codecs/wm8994.c
3889
snd_soc_jack_report(wm8994->micdet[0].jack, 0,
sound/soc/codecs/wm8994.c
3891
wm8994->btn_mask);
sound/soc/codecs/wm8994.c
3895
snd_soc_jack_report(wm8994->micdet[0].jack, 0, 0);
sound/soc/codecs/wm8994.c
390
ucontrol->value.enumerated.item[0] = wm8994->drc_cfg[drc];
sound/soc/codecs/wm8994.c
3903
struct wm8994_priv *wm8994 = container_of(work,
sound/soc/codecs/wm8994.c
3906
wm1811_jackdet_irq(0, wm8994);
sound/soc/codecs/wm8994.c
3934
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3935
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3952
wm8994->micdet[0].jack = jack;
sound/soc/codecs/wm8994.c
3955
wm8994->micd_cb = det_cb;
sound/soc/codecs/wm8994.c
3956
wm8994->micd_cb_data = det_cb_data;
sound/soc/codecs/wm8994.c
3958
wm8994->mic_detecting = true;
sound/soc/codecs/wm8994.c
3959
wm8994->jack_mic = false;
sound/soc/codecs/wm8994.c
3963
wm8994->mic_id_cb = id_cb;
sound/soc/codecs/wm8994.c
3964
wm8994->mic_id_cb_data = id_cb_data;
sound/soc/codecs/wm8994.c
3966
wm8994->mic_id_cb = wm8958_mic_id;
sound/soc/codecs/wm8994.c
3967
wm8994->mic_id_cb_data = component;
sound/soc/codecs/wm8994.c
397
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
3978
wm8994->btn_mask = SND_JACK_BTN_0 | SND_JACK_BTN_1 |
sound/soc/codecs/wm8994.c
398
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
3991
if (wm8994->jackdet) {
sound/soc/codecs/wm8994.c
4024
struct wm8994_priv *wm8994 = container_of(work,
sound/soc/codecs/wm8994.c
4027
struct snd_soc_component *component = wm8994->hubs.component;
sound/soc/codecs/wm8994.c
403
if (!pdata || !wm8994->num_retune_mobile_texts)
sound/soc/codecs/wm8994.c
4031
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
4033
wm8994->mic_id_cb(wm8994->mic_id_cb_data, wm8994->mic_status);
sound/soc/codecs/wm8994.c
4035
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
4042
struct wm8994_priv *wm8994 = data;
sound/soc/codecs/wm8994.c
4043
struct snd_soc_component *component = wm8994->hubs.component;
sound/soc/codecs/wm8994.c
4054
cancel_delayed_work_sync(&wm8994->mic_complete_work);
sound/soc/codecs/wm8994.c
4055
cancel_delayed_work_sync(&wm8994->open_circuit_work);
sound/soc/codecs/wm8994.c
4092
if (wm8994->jackdet) {
sound/soc/codecs/wm8994.c
4102
snd_soc_jack_report(wm8994->micdet[0].jack, 0,
sound/soc/codecs/wm8994.c
4104
wm8994->btn_mask);
sound/soc/codecs/wm8994.c
4105
wm8994->mic_detecting = true;
sound/soc/codecs/wm8994.c
4109
wm8994->mic_status = reg;
sound/soc/codecs/wm8994.c
4110
id_delay = wm8994->wm8994->pdata.mic_id_delay;
sound/soc/codecs/wm8994.c
4112
if (wm8994->mic_detecting)
sound/soc/codecs/wm8994.c
4114
&wm8994->mic_complete_work,
sound/soc/codecs/wm8994.c
4154
struct wm8994 *control = dev_get_drvdata(component->dev->parent);
sound/soc/codecs/wm8994.c
4155
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
4161
wm8994->hubs.component = component;
sound/soc/codecs/wm8994.c
4163
mutex_init(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
4164
INIT_DELAYED_WORK(&wm8994->jackdet_bootstrap,
sound/soc/codecs/wm8994.c
4166
INIT_DELAYED_WORK(&wm8994->open_circuit_work,
sound/soc/codecs/wm8994.c
4171
INIT_DELAYED_WORK(&wm8994->mic_work, wm8994_mic_work);
sound/soc/codecs/wm8994.c
4174
INIT_DELAYED_WORK(&wm8994->mic_work, wm1811_mic_work);
sound/soc/codecs/wm8994.c
4180
INIT_DELAYED_WORK(&wm8994->mic_complete_work, wm8958_mic_work);
sound/soc/codecs/wm8994.c
4182
for (i = 0; i < ARRAY_SIZE(wm8994->fll_locked); i++)
sound/soc/codecs/wm8994.c
4183
init_completion(&wm8994->fll_locked[i]);
sound/soc/codecs/wm8994.c
4185
wm8994->micdet_irq = control->pdata.micdet_irq;
sound/soc/codecs/wm8994.c
420
cfg = wm8994->retune_mobile_cfg[block];
sound/soc/codecs/wm8994.c
4201
wm8994->hubs.dcs_codes_l = -5;
sound/soc/codecs/wm8994.c
4202
wm8994->hubs.dcs_codes_r = -5;
sound/soc/codecs/wm8994.c
4203
wm8994->hubs.hp_startup_mode = 1;
sound/soc/codecs/wm8994.c
4204
wm8994->hubs.dcs_readback_mode = 1;
sound/soc/codecs/wm8994.c
4205
wm8994->hubs.series_startup = 1;
sound/soc/codecs/wm8994.c
4208
wm8994->hubs.dcs_readback_mode = 2;
sound/soc/codecs/wm8994.c
4211
wm8994->hubs.micd_scthr = true;
sound/soc/codecs/wm8994.c
4215
wm8994->hubs.dcs_readback_mode = 1;
sound/soc/codecs/wm8994.c
4216
wm8994->hubs.hp_startup_mode = 1;
sound/soc/codecs/wm8994.c
4217
wm8994->hubs.micd_scthr = true;
sound/soc/codecs/wm8994.c
4223
wm8994->fll_byp = true;
sound/soc/codecs/wm8994.c
4229
wm8994->hubs.dcs_readback_mode = 2;
sound/soc/codecs/wm8994.c
4230
wm8994->hubs.no_series_update = 1;
sound/soc/codecs/wm8994.c
4231
wm8994->hubs.hp_startup_mode = 1;
sound/soc/codecs/wm8994.c
4232
wm8994->hubs.no_cache_dac_hp_direct = true;
sound/soc/codecs/wm8994.c
4233
wm8994->fll_byp = true;
sound/soc/codecs/wm8994.c
4235
wm8994->hubs.dcs_codes_l = -9;
sound/soc/codecs/wm8994.c
4236
wm8994->hubs.dcs_codes_r = -7;
sound/soc/codecs/wm8994.c
4246
wm8994_request_irq(wm8994->wm8994, WM8994_IRQ_FIFOS_ERR,
sound/soc/codecs/wm8994.c
4248
wm8994_request_irq(wm8994->wm8994, WM8994_IRQ_TEMP_WARN,
sound/soc/codecs/wm8994.c
425
wm8994->retune_mobile_texts[cfg]) == 0 &&
sound/soc/codecs/wm8994.c
4250
wm8994_request_irq(wm8994->wm8994, WM8994_IRQ_TEMP_SHUT,
sound/soc/codecs/wm8994.c
4255
if (wm8994->micdet_irq)
sound/soc/codecs/wm8994.c
4256
ret = request_threaded_irq(wm8994->micdet_irq, NULL,
sound/soc/codecs/wm8994.c
4261
wm8994);
sound/soc/codecs/wm8994.c
4263
ret = wm8994_request_irq(wm8994->wm8994,
sound/soc/codecs/wm8994.c
4266
wm8994);
sound/soc/codecs/wm8994.c
427
- wm8994->dac_rates[iface]) < best_val) {
sound/soc/codecs/wm8994.c
4274
ret = wm8994_request_irq(wm8994->wm8994,
sound/soc/codecs/wm8994.c
4277
wm8994);
sound/soc/codecs/wm8994.c
4283
ret = wm8994_request_irq(wm8994->wm8994,
sound/soc/codecs/wm8994.c
4286
wm8994);
sound/soc/codecs/wm8994.c
4292
ret = wm8994_request_irq(wm8994->wm8994,
sound/soc/codecs/wm8994.c
4295
wm8994);
sound/soc/codecs/wm8994.c
430
- wm8994->dac_rates[iface]);
sound/soc/codecs/wm8994.c
4304
if (wm8994->micdet_irq) {
sound/soc/codecs/wm8994.c
4305
ret = request_threaded_irq(wm8994->micdet_irq, NULL,
sound/soc/codecs/wm8994.c
4310
wm8994);
sound/soc/codecs/wm8994.c
4316
wm8994_request_irq(wm8994->wm8994, WM8994_IRQ_MIC1_DET,
sound/soc/codecs/wm8994.c
4318
wm8994);
sound/soc/codecs/wm8994.c
4325
ret = wm8994_request_irq(wm8994->wm8994,
sound/soc/codecs/wm8994.c
4328
wm8994);
sound/soc/codecs/wm8994.c
4330
wm8994->jackdet = true;
sound/soc/codecs/wm8994.c
4337
wm8994->fll_locked_irq = true;
sound/soc/codecs/wm8994.c
4338
for (i = 0; i < ARRAY_SIZE(wm8994->fll_locked); i++) {
sound/soc/codecs/wm8994.c
4339
ret = wm8994_request_irq(wm8994->wm8994,
sound/soc/codecs/wm8994.c
4342
&wm8994->fll_locked[i]);
sound/soc/codecs/wm8994.c
4344
wm8994->fll_locked_irq = false;
sound/soc/codecs/wm8994.c
4360
wm8994->lrclk_shared[0] = 1;
sound/soc/codecs/wm8994.c
4363
wm8994->lrclk_shared[0] = 0;
sound/soc/codecs/wm8994.c
4372
wm8994->lrclk_shared[1] = 1;
sound/soc/codecs/wm8994.c
4375
wm8994->lrclk_shared[1] = 0;
sound/soc/codecs/wm8994.c
438
wm8994->dac_rates[iface]);
sound/soc/codecs/wm8994.c
4431
wm8994->hubs.check_class_w_digital = wm8994_check_class_w_digital;
sound/soc/codecs/wm8994.c
4434
wm8994_handle_pdata(wm8994);
sound/soc/codecs/wm8994.c
4503
ret = wm8994_request_irq(wm8994->wm8994, WM8994_IRQ_DCS_DONE,
sound/soc/codecs/wm8994.c
4505
&wm8994->hubs);
sound/soc/codecs/wm8994.c
4507
wm8994->hubs.dcs_done_irq = true;
sound/soc/codecs/wm8994.c
4553
if (wm8994->jackdet)
sound/soc/codecs/wm8994.c
4554
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_GPIO(6), wm8994);
sound/soc/codecs/wm8994.c
4555
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_MIC2_SHRT, wm8994);
sound/soc/codecs/wm8994.c
4556
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_MIC2_DET, wm8994);
sound/soc/codecs/wm8994.c
4557
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_MIC1_SHRT, wm8994);
sound/soc/codecs/wm8994.c
4558
if (wm8994->micdet_irq)
sound/soc/codecs/wm8994.c
4559
free_irq(wm8994->micdet_irq, wm8994);
sound/soc/codecs/wm8994.c
4560
for (i = 0; i < ARRAY_SIZE(wm8994->fll_locked); i++)
sound/soc/codecs/wm8994.c
4561
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_FLL1_LOCK + i,
sound/soc/codecs/wm8994.c
4562
&wm8994->fll_locked[i]);
sound/soc/codecs/wm8994.c
4563
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_DCS_DONE,
sound/soc/codecs/wm8994.c
4564
&wm8994->hubs);
sound/soc/codecs/wm8994.c
4565
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_FIFOS_ERR, component);
sound/soc/codecs/wm8994.c
4566
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_TEMP_SHUT, component);
sound/soc/codecs/wm8994.c
4567
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_TEMP_WARN, component);
sound/soc/codecs/wm8994.c
4574
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
4575
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
4578
for (i = 0; i < ARRAY_SIZE(wm8994->fll_locked); i++)
sound/soc/codecs/wm8994.c
4579
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_FLL1_LOCK + i,
sound/soc/codecs/wm8994.c
4580
&wm8994->fll_locked[i]);
sound/soc/codecs/wm8994.c
4582
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_DCS_DONE,
sound/soc/codecs/wm8994.c
4583
&wm8994->hubs);
sound/soc/codecs/wm8994.c
4584
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_FIFOS_ERR, component);
sound/soc/codecs/wm8994.c
4585
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_TEMP_SHUT, component);
sound/soc/codecs/wm8994.c
4586
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_TEMP_WARN, component);
sound/soc/codecs/wm8994.c
4588
if (wm8994->jackdet)
sound/soc/codecs/wm8994.c
4589
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_GPIO(6), wm8994);
sound/soc/codecs/wm8994.c
4593
if (wm8994->micdet_irq)
sound/soc/codecs/wm8994.c
4594
free_irq(wm8994->micdet_irq, wm8994);
sound/soc/codecs/wm8994.c
4595
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_MIC2_DET,
sound/soc/codecs/wm8994.c
4596
wm8994);
sound/soc/codecs/wm8994.c
4597
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_MIC1_SHRT,
sound/soc/codecs/wm8994.c
4598
wm8994);
sound/soc/codecs/wm8994.c
4599
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_MIC1_DET,
sound/soc/codecs/wm8994.c
4600
wm8994);
sound/soc/codecs/wm8994.c
4605
if (wm8994->micdet_irq)
sound/soc/codecs/wm8994.c
4606
free_irq(wm8994->micdet_irq, wm8994);
sound/soc/codecs/wm8994.c
4609
release_firmware(wm8994->mbc);
sound/soc/codecs/wm8994.c
4610
release_firmware(wm8994->mbc_vss);
sound/soc/codecs/wm8994.c
4611
release_firmware(wm8994->enh_eq);
sound/soc/codecs/wm8994.c
4612
kfree(wm8994->retune_mobile_texts);
sound/soc/codecs/wm8994.c
4628
struct wm8994_priv *wm8994;
sound/soc/codecs/wm8994.c
4631
wm8994 = devm_kzalloc(&pdev->dev, sizeof(struct wm8994_priv),
sound/soc/codecs/wm8994.c
4633
if (wm8994 == NULL)
sound/soc/codecs/wm8994.c
4635
platform_set_drvdata(pdev, wm8994);
sound/soc/codecs/wm8994.c
4637
mutex_init(&wm8994->fw_lock);
sound/soc/codecs/wm8994.c
4639
wm8994->wm8994 = dev_get_drvdata(pdev->dev.parent);
sound/soc/codecs/wm8994.c
4641
wm8994->mclk[WM8994_MCLK1].id = "MCLK1";
sound/soc/codecs/wm8994.c
4642
wm8994->mclk[WM8994_MCLK2].id = "MCLK2";
sound/soc/codecs/wm8994.c
4644
ret = devm_clk_bulk_get_optional(pdev->dev.parent, ARRAY_SIZE(wm8994->mclk),
sound/soc/codecs/wm8994.c
4645
wm8994->mclk);
sound/soc/codecs/wm8994.c
4669
struct wm8994_priv *wm8994 = dev_get_drvdata(dev);
sound/soc/codecs/wm8994.c
4672
if (wm8994->jackdet && !wm8994->active_refcount)
sound/soc/codecs/wm8994.c
4673
regmap_update_bits(wm8994->wm8994->regmap, WM8994_ANTIPOP_2,
sound/soc/codecs/wm8994.c
4675
wm8994->jackdet_mode);
sound/soc/codecs/wm8994.c
4682
struct wm8994_priv *wm8994 = dev_get_drvdata(dev);
sound/soc/codecs/wm8994.c
4684
if (wm8994->jackdet && wm8994->jackdet_mode)
sound/soc/codecs/wm8994.c
4685
regmap_update_bits(wm8994->wm8994->regmap, WM8994_ANTIPOP_2,
sound/soc/codecs/wm8994.c
469
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
470
struct wm8994 *control = wm8994->wm8994;
sound/soc/codecs/wm8994.c
481
wm8994->retune_mobile_cfg[block] = value;
sound/soc/codecs/wm8994.c
492
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
498
ucontrol->value.enumerated.item[0] = wm8994->retune_mobile_cfg[block];
sound/soc/codecs/wm8994.c
744
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
746
if (!wm8994->jackdet || !wm8994->micdet[0].jack)
sound/soc/codecs/wm8994.c
749
if (wm8994->active_refcount)
sound/soc/codecs/wm8994.c
752
if (mode == wm8994->jackdet_mode)
sound/soc/codecs/wm8994.c
755
wm8994->jackdet_mode = mode;
sound/soc/codecs/wm8994.c
767
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
769
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
771
wm8994->active_refcount++;
sound/soc/codecs/wm8994.c
774
wm8994->active_refcount);
sound/soc/codecs/wm8994.c
779
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
784
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
787
mutex_lock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
789
wm8994->active_refcount--;
sound/soc/codecs/wm8994.c
792
wm8994->active_refcount);
sound/soc/codecs/wm8994.c
794
if (wm8994->active_refcount == 0) {
sound/soc/codecs/wm8994.c
796
if (wm8994->jack_mic || wm8994->mic_detecting)
sound/soc/codecs/wm8994.c
804
mutex_unlock(&wm8994->accdet_lock);
sound/soc/codecs/wm8994.c
811
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
825
if (wm8994->jackdet && !wm8994->clk_has_run) {
sound/soc/codecs/wm8994.c
827
&wm8994->jackdet_bootstrap,
sound/soc/codecs/wm8994.c
829
wm8994->clk_has_run = true;
sound/soc/codecs/wm8994.c
843
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
847
wm8994->vmid_refcount++;
sound/soc/codecs/wm8994.c
850
wm8994->vmid_refcount);
sound/soc/codecs/wm8994.c
852
if (wm8994->vmid_refcount == 1) {
sound/soc/codecs/wm8994.c
859
switch (wm8994->vmid_mode) {
sound/soc/codecs/wm8994.c
922
struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/wm8994.c
924
wm8994->vmid_refcount--;
sound/soc/codecs/wm8994.c
927
wm8994->vmid_refcount);
sound/soc/codecs/wm8994.c
929
if (wm8994->vmid_refcount == 0) {
sound/soc/codecs/wm8994.c
930
if (wm8994->hubs.lineout1_se)
sound/soc/codecs/wm8994.c
937
if (wm8994->hubs.lineout2_se)
sound/soc/codecs/wm8994.h
78
struct wm8994;
sound/soc/codecs/wm8994.h
82
struct wm8994 *wm8994;