aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/dm644x.c
diff options
context:
space:
mode:
authorLad, Prabhakar <prabhakar.lad@ti.com>2012-11-20 05:30:36 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-12-21 11:18:50 -0500
commitcaff80c35f923806b7e5ef312dce41663b5e99b9 (patch)
treea7dc2f10963df469808b7a52fd90276701d644f5 /arch/arm/mach-davinci/dm644x.c
parent5a89fac7e90dd75b9783914fa351069d20fd8c54 (diff)
[media] davinci: vpbe: pass different platform names to handle different ip's
The vpbe driver can handle different platforms DM644X, DM36X and DM355. To differentiate between this platforms venc_type/vpbe_type was passed as part of platform data which was incorrect. The correct way to differentiate to handle this case is by passing different platform names. This patch creates platform_device_id[] array supporting different platforms and assigns id_table to the platform driver, and finally in the probe gets the actual device by using platform_get_device_id() and gets the appropriate driver data for that platform. Taking this approach will also make the DT transition easier. Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Acked-by: Sekhar Nori <nsekhar@ti.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'arch/arm/mach-davinci/dm644x.c')
-rw-r--r--arch/arm/mach-davinci/dm644x.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index 14e9947bad6e..0849d5768d99 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -669,19 +669,14 @@ static struct resource dm644x_osd_resources[] = {
669 }, 669 },
670}; 670};
671 671
672static struct osd_platform_data dm644x_osd_data = {
673 .vpbe_type = VPBE_VERSION_1,
674};
675
676static struct platform_device dm644x_osd_dev = { 672static struct platform_device dm644x_osd_dev = {
677 .name = VPBE_OSD_SUBDEV_NAME, 673 .name = DM644X_VPBE_OSD_SUBDEV_NAME,
678 .id = -1, 674 .id = -1,
679 .num_resources = ARRAY_SIZE(dm644x_osd_resources), 675 .num_resources = ARRAY_SIZE(dm644x_osd_resources),
680 .resource = dm644x_osd_resources, 676 .resource = dm644x_osd_resources,
681 .dev = { 677 .dev = {
682 .dma_mask = &dm644x_video_dma_mask, 678 .dma_mask = &dm644x_video_dma_mask,
683 .coherent_dma_mask = DMA_BIT_MASK(32), 679 .coherent_dma_mask = DMA_BIT_MASK(32),
684 .platform_data = &dm644x_osd_data,
685 }, 680 },
686}; 681};
687 682
@@ -751,12 +746,11 @@ static struct platform_device dm644x_vpbe_display = {
751}; 746};
752 747
753static struct venc_platform_data dm644x_venc_pdata = { 748static struct venc_platform_data dm644x_venc_pdata = {
754 .venc_type = VPBE_VERSION_1,
755 .setup_clock = dm644x_venc_setup_clock, 749 .setup_clock = dm644x_venc_setup_clock,
756}; 750};
757 751
758static struct platform_device dm644x_venc_dev = { 752static struct platform_device dm644x_venc_dev = {
759 .name = VPBE_VENC_SUBDEV_NAME, 753 .name = DM644X_VPBE_VENC_SUBDEV_NAME,
760 .id = -1, 754 .id = -1,
761 .num_resources = ARRAY_SIZE(dm644x_venc_resources), 755 .num_resources = ARRAY_SIZE(dm644x_venc_resources),
762 .resource = dm644x_venc_resources, 756 .resource = dm644x_venc_resources,