.. | .. |
---|
347 | 347 | struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component); |
---|
348 | 348 | u8 events[DA7219_AAD_IRQ_REG_MAX]; |
---|
349 | 349 | u8 statusa; |
---|
350 | | - int i, report = 0, mask = 0; |
---|
| 350 | + int i, ret, report = 0, mask = 0; |
---|
351 | 351 | |
---|
352 | 352 | /* Read current IRQ events */ |
---|
353 | | - regmap_bulk_read(da7219->regmap, DA7219_ACCDET_IRQ_EVENT_A, |
---|
354 | | - events, DA7219_AAD_IRQ_REG_MAX); |
---|
| 353 | + ret = regmap_bulk_read(da7219->regmap, DA7219_ACCDET_IRQ_EVENT_A, |
---|
| 354 | + events, DA7219_AAD_IRQ_REG_MAX); |
---|
| 355 | + if (ret) { |
---|
| 356 | + dev_warn_ratelimited(component->dev, "Failed to read IRQ events: %d\n", ret); |
---|
| 357 | + return IRQ_NONE; |
---|
| 358 | + } |
---|
355 | 359 | |
---|
356 | 360 | if (!events[DA7219_AAD_IRQ_REG_A] && !events[DA7219_AAD_IRQ_REG_B]) |
---|
357 | 361 | return IRQ_NONE; |
---|
.. | .. |
---|
854 | 858 | } |
---|
855 | 859 | } |
---|
856 | 860 | } |
---|
| 861 | + |
---|
| 862 | + synchronize_irq(da7219_aad->irq); |
---|
857 | 863 | } |
---|
858 | 864 | |
---|
859 | 865 | void da7219_aad_resume(struct snd_soc_component *component) |
---|