pm_runtime_disable(dev->dev);
- kfree(priv->saved_register);
- kfree(priv);
-
return 0;
}
u32 bpp = 0;
int ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = devm_kzalloc(dev->dev, sizeof(*priv), GFP_KERNEL);
if (priv)
- priv->saved_register = kcalloc(tilcdc_num_regs(),
- sizeof(*priv->saved_register),
- GFP_KERNEL);
+ priv->saved_register =
+ devm_kcalloc(dev->dev, tilcdc_num_regs(),
+ sizeof(*priv->saved_register), GFP_KERNEL);
if (!priv || !priv->saved_register) {
- kfree(priv);
dev_err(dev->dev, "failed to allocate private data\n");
return -ENOMEM;
}
priv->wq = alloc_ordered_workqueue("tilcdc", 0);
if (!priv->wq) {
ret = -ENOMEM;
- goto fail_free_priv;
+ goto fail_unset_priv;
}
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
flush_workqueue(priv->wq);
destroy_workqueue(priv->wq);
-fail_free_priv:
+fail_unset_priv:
dev->dev_private = NULL;
- kfree(priv->saved_register);
- kfree(priv);
+
return ret;
}
tilcdc_write(dev, LCDC_INT_ENABLE_SET_REG,
LCDC_V2_UNDERFLOW_INT_ENA |
LCDC_V2_END_OF_FRAME0_INT_ENA |
- LCDC_FRAME_DONE);
+ LCDC_FRAME_DONE | LCDC_SYNC_LOST);
}
return 0;
tilcdc_write(dev, LCDC_INT_ENABLE_CLR_REG,
LCDC_V2_UNDERFLOW_INT_ENA | LCDC_V2_PL_INT_ENA |
LCDC_V2_END_OF_FRAME0_INT_ENA |
- LCDC_FRAME_DONE);
+ LCDC_FRAME_DONE | LCDC_SYNC_LOST);
}
}