[d-kernel] [PATCH] Revert "(BROKEN) dwc-i2s: support Baikal-M SoC"
Vitaly Chikunov
vt на altlinux.org
Сб Июн 10 16:58:16 MSK 2023
Conflicts with upstream commit ab6ecfbf40fc ("ASoC: dwc: limit the
number of overrun messages").
This reverts commit 843884b7313d3976054b6a697e41203be5d75ffc.
Cc: Alexey Sheplyakov <asheplyakov at basealt.ru>
Signed-off-by: Vitaly Chikunov <vt at altlinux.org>
---
sound/soc/dwc/dwc-i2s.c | 36 ++++++++++--------------------------
sound/soc/dwc/local.h | 1 -
2 files changed, 10 insertions(+), 27 deletions(-)
diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c
index 1568d82166f3..7f7dd07c63b2 100644
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
@@ -100,7 +100,6 @@ static inline void i2s_enable_irqs(struct dw_i2s_dev *dev, u32 stream,
static irqreturn_t i2s_irq_handler(int irq, void *dev_id)
{
- unsigned int rxor_count;
struct dw_i2s_dev *dev = dev_id;
bool irq_valid = false;
u32 isr[4];
@@ -137,13 +136,9 @@ static irqreturn_t i2s_irq_handler(int irq, void *dev_id)
irq_valid = true;
}
- /* Error Handling: RX */
+ /* Error Handling: TX */
if (isr[i] & ISR_RXFO) {
- rxor_count = READ_ONCE(dev->rx_overrun_count);
- if (!(rxor_count & 0x3ff))
- dev_dbg(dev->dev, "RX overrun (ch_id=%d)\n", i);
- rxor_count++;
- WRITE_ONCE(dev->rx_overrun_count, rxor_count);
+ dev_err(dev->dev, "RX overrun (ch_id=%d)\n", i);
irq_valid = true;
}
}
@@ -635,8 +630,7 @@ static int dw_i2s_probe(struct platform_device *pdev)
const struct i2s_platform_data *pdata = pdev->dev.platform_data;
struct dw_i2s_dev *dev;
struct resource *res;
- int ret, irq, irq_count;
- unsigned idx;
+ int ret, irq;
struct snd_soc_dai_driver *dw_i2s_dai;
const char *clk_id;
@@ -656,23 +650,13 @@ static int dw_i2s_probe(struct platform_device *pdev)
dev->dev = &pdev->dev;
- irq_count = platform_irq_count(pdev);
- if (irq_count < 0) /* - EPROBE_DEFER */
- return irq_count;
- else if (!irq_count) {
- dev_err(&pdev->dev, "no IRQs found for device\n");
- return -ENODEV;
- }
-
- for (idx = 0; idx < (unsigned)irq_count; idx++) {
- irq = platform_get_irq_optional(pdev, idx);
- if (irq >= 0) {
- ret = devm_request_irq(&pdev->dev, irq, i2s_irq_handler, 0,
- pdev->name, dev);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to request irq\n");
- return ret;
- }
+ irq = platform_get_irq_optional(pdev, 0);
+ if (irq >= 0) {
+ ret = devm_request_irq(&pdev->dev, irq, i2s_irq_handler, 0,
+ pdev->name, dev);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "failed to request irq\n");
+ return ret;
}
}
diff --git a/sound/soc/dwc/local.h b/sound/soc/dwc/local.h
index 1d6b6fd870ca..1c361eb6127e 100644
--- a/sound/soc/dwc/local.h
+++ b/sound/soc/dwc/local.h
@@ -117,7 +117,6 @@ struct dw_i2s_dev {
bool *period_elapsed);
unsigned int tx_ptr;
unsigned int rx_ptr;
- unsigned int rx_overrun_count;
};
#if IS_ENABLED(CONFIG_SND_DESIGNWARE_PCM)
--
2.33.8
Подробная информация о списке рассылки devel-kernel