[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201023174546.504028-15-paul.kocialkowski@bootlin.com>
Date: Fri, 23 Oct 2020 19:45:46 +0200
From: Paul Kocialkowski <paul.kocialkowski@...tlin.com>
To: linux-media@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
devel@...verdev.osuosl.org, linux-sunxi@...glegroups.com
Cc: Mauro Carvalho Chehab <mchehab@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Maxime Ripard <mripard@...nel.org>,
Chen-Yu Tsai <wens@...e.org>,
Yong Deng <yong.deng@...ewell.com>,
Kishon Vijay Abraham I <kishon@...com>,
Vinod Koul <vkoul@...nel.org>,
Helen Koike <helen.koike@...labora.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Philipp Zabel <p.zabel@...gutronix.de>,
Paul Kocialkowski <paul.kocialkowski@...tlin.com>,
Hans Verkuil <hans.verkuil@...co.com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Hans Verkuil <hverkuil@...all.nl>, kevin.lhopital@...mail.com
Subject: [PATCH 14/14] media: sunxi: sun8i-a83t-mipi-csi2: Avoid using the (unsolicited) interrupt
The A83T MIPI CSI-2 apparently produces interrupts regardless of the mask
registers, for example when a transmission error occurs.
This generates quite a flood when unsolicited interrupts are received on
each received frame. As a result, disable the interrupt for now since
we are not currently using it for error reporting.
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@...tlin.com>
---
.../sun8i_a83t_mipi_csi2.c | 40 -------------------
1 file changed, 40 deletions(-)
diff --git a/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c b/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c
index 1ff6f5dfd81a..26af3e3f5f89 100644
--- a/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c
+++ b/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c
@@ -25,34 +25,6 @@
/* Core */
-static irqreturn_t sun8i_a83t_mipi_csi2_isr(int irq, void *dev_id)
-{
- struct sun8i_a83t_mipi_csi2_dev *cdev =
- (struct sun8i_a83t_mipi_csi2_dev *)dev_id;
- struct regmap *regmap = cdev->regmap;
- u32 status;
-
- WARN_ONCE(1, MODULE_NAME
- ": Unsolicited interrupt, an error likely occurred!\n");
-
- regmap_read(regmap, SUN8I_A83T_MIPI_CSI2_INT_STA0_REG, &status);
- regmap_write(regmap, SUN8I_A83T_MIPI_CSI2_INT_STA0_REG, status);
-
- regmap_read(regmap, SUN8I_A83T_MIPI_CSI2_INT_STA1_REG, &status);
- regmap_write(regmap, SUN8I_A83T_MIPI_CSI2_INT_STA1_REG, status);
-
- regmap_read(regmap, SUN8I_A83T_MIPI_CSI2_INT_MSK0_REG, &status);
- regmap_read(regmap, SUN8I_A83T_MIPI_CSI2_INT_MSK1_REG, &status);
-
- /*
- * The interrupt can be used to catch transmission errors.
- * However, we currently lack plumbing for reporting that to the
- * A31 CSI controller driver.
- */
-
- return IRQ_HANDLED;
-}
-
static void sun8i_a83t_mipi_csi2_init(struct sun8i_a83t_mipi_csi2_dev *cdev)
{
struct regmap *regmap = cdev->regmap;
@@ -587,7 +559,6 @@ static int sun8i_a83t_mipi_csi2_resource_request(struct sun8i_a83t_mipi_csi2_dev
{
struct resource *res;
void __iomem *io_base;
- int irq;
int ret;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -626,17 +597,6 @@ static int sun8i_a83t_mipi_csi2_resource_request(struct sun8i_a83t_mipi_csi2_dev
return PTR_ERR(cdev->reset);
}
- irq = platform_get_irq(pdev, 0);
- if (irq < 0)
- return -ENXIO;
-
- ret = devm_request_irq(&pdev->dev, irq, sun8i_a83t_mipi_csi2_isr, 0,
- MODULE_NAME, cdev);
- if (ret) {
- dev_err(&pdev->dev, "failed to request MIPI CSI-2 IRQ\n");
- return ret;
- }
-
ret = sun8i_a83t_dphy_register(cdev);
if (ret) {
dev_err(&pdev->dev, "failed to init MIPI D-PHY\n");
--
2.28.0
Powered by blists - more mailing lists