Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 306493
b: refs/heads/master
c: 5b58b95
h: refs/heads/master
i:
  306491: 3109700
v: v3
  • Loading branch information
Sachin Kamat authored and Mauro Carvalho Chehab committed May 20, 2012
1 parent 3a32d3b commit cd17d0c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 51 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 32fced05ad9ef4736e4a89b2361cccf56227529b
refs/heads/master: 5b58b95405aafbaf7362564dbcf6231836f1433c
58 changes: 10 additions & 48 deletions trunk/drivers/media/video/s5p-jpeg/jpeg-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1290,7 +1290,7 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
int ret;

/* JPEG IP abstraction struct */
jpeg = kzalloc(sizeof(struct s5p_jpeg), GFP_KERNEL);
jpeg = devm_kzalloc(&pdev->dev, sizeof(struct s5p_jpeg), GFP_KERNEL);
if (!jpeg)
return -ENOMEM;

Expand All @@ -1300,51 +1300,33 @@ static int s5p_jpeg_probe(struct platform_device *pdev)

/* memory-mapped registers */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
dev_err(&pdev->dev, "cannot find IO resource\n");
ret = -ENOENT;
goto jpeg_alloc_rollback;
}

jpeg->ioarea = request_mem_region(res->start, resource_size(res),
pdev->name);
if (!jpeg->ioarea) {
dev_err(&pdev->dev, "cannot request IO\n");
ret = -ENXIO;
goto jpeg_alloc_rollback;
}

jpeg->regs = ioremap(res->start, resource_size(res));
if (!jpeg->regs) {
dev_err(&pdev->dev, "cannot map IO\n");
ret = -ENXIO;
goto mem_region_rollback;
jpeg->regs = devm_request_and_ioremap(&pdev->dev, res);
if (jpeg->regs == NULL) {
dev_err(&pdev->dev, "Failed to obtain io memory\n");
return -ENOENT;
}

dev_dbg(&pdev->dev, "registers %p (%p, %p)\n",
jpeg->regs, jpeg->ioarea, res);

/* interrupt service routine registration */
jpeg->irq = ret = platform_get_irq(pdev, 0);
if (ret < 0) {
dev_err(&pdev->dev, "cannot find IRQ\n");
goto ioremap_rollback;
return ret;
}

ret = request_irq(jpeg->irq, s5p_jpeg_irq, 0,
dev_name(&pdev->dev), jpeg);

ret = devm_request_irq(&pdev->dev, jpeg->irq, s5p_jpeg_irq, 0,
dev_name(&pdev->dev), jpeg);
if (ret) {
dev_err(&pdev->dev, "cannot claim IRQ %d\n", jpeg->irq);
goto ioremap_rollback;
return ret;
}

/* clocks */
jpeg->clk = clk_get(&pdev->dev, "jpeg");
if (IS_ERR(jpeg->clk)) {
dev_err(&pdev->dev, "cannot get clock\n");
ret = PTR_ERR(jpeg->clk);
goto request_irq_rollback;
return ret;
}
dev_dbg(&pdev->dev, "clock source %p\n", jpeg->clk);
clk_enable(jpeg->clk);
Expand Down Expand Up @@ -1464,18 +1446,6 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
clk_disable(jpeg->clk);
clk_put(jpeg->clk);

request_irq_rollback:
free_irq(jpeg->irq, jpeg);

ioremap_rollback:
iounmap(jpeg->regs);

mem_region_rollback:
release_resource(jpeg->ioarea);
release_mem_region(jpeg->ioarea->start, resource_size(jpeg->ioarea));

jpeg_alloc_rollback:
kfree(jpeg);
return ret;
}

Expand All @@ -1496,14 +1466,6 @@ static int s5p_jpeg_remove(struct platform_device *pdev)
clk_disable(jpeg->clk);
clk_put(jpeg->clk);

free_irq(jpeg->irq, jpeg);

iounmap(jpeg->regs);

release_resource(jpeg->ioarea);
release_mem_region(jpeg->ioarea->start, resource_size(jpeg->ioarea));
kfree(jpeg);

return 0;
}

Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/media/video/s5p-jpeg/jpeg-core.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@
* @vfd_encoder: video device node for encoder mem2mem mode
* @vfd_decoder: video device node for decoder mem2mem mode
* @m2m_dev: v4l2 mem2mem device data
* @ioarea: JPEG IP memory region
* @regs: JPEG IP registers mapping
* @irq: JPEG IP irq
* @clk: JPEG IP clock
Expand All @@ -70,7 +69,6 @@ struct s5p_jpeg {
struct video_device *vfd_decoder;
struct v4l2_m2m_dev *m2m_dev;

struct resource *ioarea;
void __iomem *regs;
unsigned int irq;
struct clk *clk;
Expand Down

0 comments on commit cd17d0c

Please sign in to comment.