From: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx>
Ideally the freeing of irq's and the global variables needs to be
done in the remove() rather than module_exit(), this patch moves
the freeing up of irq's and freeing the memory allocated to channel
objects to remove() callback of struct platform_driver.
Signed-off-by: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx>
---
drivers/media/platform/davinci/vpif_capture.c | 31 ++++++++++--------------
1 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index caaf4fe..f8b7304 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -2225,17 +2225,29 @@ vpif_int_err:
*/
static int vpif_remove(struct platform_device *device)
{
- int i;
+ struct platform_device *pdev;
struct channel_obj *ch;
+ struct resource *res;
+ int irq_num, i = 0;
+
+ pdev = container_of(vpif_dev, struct platform_device, dev);