Message ID | 1366789273-30184-3-git-send-email-shaik.ameer@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/24/2013 09:41 AM, Shaik Ameer Basha wrote: > This patch adds, > 1] Exynos5 soc compatibility to the fimc-lite driver > 2] Multiple dma output buffer support as from Exynos5 onwards, > fimc-lite h/w ip supports multiple dma buffers. > > Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com> > --- > drivers/media/platform/exynos4-is/fimc-lite.c | 19 ++++++++++++++++++- > drivers/media/platform/exynos4-is/fimc-lite.h | 4 +++- > 2 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c b/drivers/media/platform/exynos4-is/fimc-lite.c > index 4878089..cb173ec 100644 > --- a/drivers/media/platform/exynos4-is/fimc-lite.c > +++ b/drivers/media/platform/exynos4-is/fimc-lite.c > @@ -1467,7 +1467,7 @@ static int fimc_lite_probe(struct platform_device *pdev) > fimc->index = pdev->id; > } > > - if (!drv_data || fimc->index < 0 || fimc->index >= FIMC_LITE_MAX_DEVS) > + if (!drv_data || fimc->index < 0 || fimc->index >= drv_data->num_devs) > return -EINVAL; > > fimc->dd = drv_data; > @@ -1625,6 +1625,19 @@ static struct flite_drvdata fimc_lite_drvdata_exynos4 = { > .out_width_align = 8, > .win_hor_offs_align = 2, > .out_hor_offs_align = 8, > + .support_multi_dma_buf = false, > + .num_devs = 2, > +}; Could you include this in your patch: /** * struct flite_drvdata - FIMC-LITE IP variant data structure * @max_width: maximum camera interface input width in pixels * @max_height: maximum camera interface input height in pixels * @out_width_align: minimum output width alignment in pixels * @win_hor_offs_align: minimum camera interface crop window horizontal * offset alignment in pixels * @out_hor_offs_align: minimum output DMA compose rectangle horizontal * offset alignment in pixels * @num_out_dma_bufs: number of output DMA buffer start address registers */ ? > +/* EXYNOS5250 */ > +static struct flite_drvdata fimc_lite_drvdata_exynos5 = { > + .max_width = 8192, > + .max_height = 8192, > + .out_width_align = 8, > + .win_hor_offs_align = 2, > + .out_hor_offs_align = 8, > + .support_multi_dma_buf = true, How about changing it to 'num_out_dma_bufs' ? And instead of if (dd->support_multi_dma_buf) having if (dd->num_out_dma_bufs > 1) ? Otherwise the patch looks good to me. I will make a separate patch to update the binding documentation. I've found there is a mistake in the compatible property's documentation. I would like to fix it in the 3.10-rc cycle, I'm not 100% sure if it qualifies as the -rc material, but having kernel released with wrongly documented compatible property would have been bad I think. Thanks, Sylwester -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c b/drivers/media/platform/exynos4-is/fimc-lite.c index 4878089..cb173ec 100644 --- a/drivers/media/platform/exynos4-is/fimc-lite.c +++ b/drivers/media/platform/exynos4-is/fimc-lite.c @@ -1467,7 +1467,7 @@ static int fimc_lite_probe(struct platform_device *pdev) fimc->index = pdev->id; } - if (!drv_data || fimc->index < 0 || fimc->index >= FIMC_LITE_MAX_DEVS) + if (!drv_data || fimc->index < 0 || fimc->index >= drv_data->num_devs) return -EINVAL; fimc->dd = drv_data; @@ -1625,6 +1625,19 @@ static struct flite_drvdata fimc_lite_drvdata_exynos4 = { .out_width_align = 8, .win_hor_offs_align = 2, .out_hor_offs_align = 8, + .support_multi_dma_buf = false, + .num_devs = 2, +}; + +/* EXYNOS5250 */ +static struct flite_drvdata fimc_lite_drvdata_exynos5 = { + .max_width = 8192, + .max_height = 8192, + .out_width_align = 8, + .win_hor_offs_align = 2, + .out_hor_offs_align = 8, + .support_multi_dma_buf = true, + .num_devs = 3, }; static struct platform_device_id fimc_lite_driver_ids[] = { @@ -1641,6 +1654,10 @@ static const struct of_device_id flite_of_match[] = { .compatible = "samsung,exynos4212-fimc-lite", .data = &fimc_lite_drvdata_exynos4, }, + { + .compatible = "samsung,exynos5250-fimc-lite", + .data = &fimc_lite_drvdata_exynos5, + }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, flite_of_match); diff --git a/drivers/media/platform/exynos4-is/fimc-lite.h b/drivers/media/platform/exynos4-is/fimc-lite.h index 71fed51..a35f29e 100644 --- a/drivers/media/platform/exynos4-is/fimc-lite.h +++ b/drivers/media/platform/exynos4-is/fimc-lite.h @@ -27,7 +27,7 @@ #define FIMC_LITE_DRV_NAME "exynos-fimc-lite" #define FLITE_CLK_NAME "flite" -#define FIMC_LITE_MAX_DEVS 2 +#define FIMC_LITE_MAX_DEVS 3 #define FLITE_REQ_BUFS_MIN 2 /* Bit index definitions for struct fimc_lite::state */ @@ -54,6 +54,8 @@ struct flite_drvdata { unsigned short out_width_align; unsigned short win_hor_offs_align; unsigned short out_hor_offs_align; + unsigned short support_multi_dma_buf; + unsigned short num_devs; }; #define fimc_lite_get_drvdata(_pdev) \
This patch adds, 1] Exynos5 soc compatibility to the fimc-lite driver 2] Multiple dma output buffer support as from Exynos5 onwards, fimc-lite h/w ip supports multiple dma buffers. Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com> --- drivers/media/platform/exynos4-is/fimc-lite.c | 19 ++++++++++++++++++- drivers/media/platform/exynos4-is/fimc-lite.h | 4 +++- 2 files changed, 21 insertions(+), 2 deletions(-)