};
struct sii8620 *ctx = data;
u8 stats[LEN_FAST_INTR_STAT];
- int i;
+ int i, ret;
mutex_lock(&ctx->lock);
sii8620_mt_work(ctx);
+ ret = sii8620_clear_error(ctx);
+ if (ret) {
+ dev_err(ctx->dev, "Error during IRQ handling, %d.\n", ret);
+ sii8620_mhl_disconnected(ctx);
+ }
mutex_unlock(&ctx->lock);
return IRQ_HANDLED;
u8 ver[5];
int ret;
- sii8620_hw_on(ctx);
+ ret = sii8620_hw_on(ctx);
+ if (ret) {
+ dev_err(dev, "Error powering on, %d.\n", ret);
+ return;
+ }
sii8620_hw_reset(ctx);
msleep(100);
REG_DPD, BIT_DPD_PWRON_PLL | BIT_DPD_PDNTX12 | BIT_DPD_OSC_EN,
);
+ ret = sii8620_clear_error(ctx);
+ if (ret) {
+ dev_err(dev, "Error accessing I2C bus, %d.\n", ret);
+ return;
+ }
+
enable_irq(to_i2c_client(ctx->dev)->irq);
}