Re: [PATCH v3 08/17] OMAP2,3: DSS2: Create platform_driver for each DSS HW IP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kevin,

On Wed, Jan 5, 2011 at 5:37 AM, Kevin Hilman <khilman@xxxxxx> wrote:
> Guruswamy Senthilvadivu <svadivu@xxxxxx> writes:
>
>> From: Senthilvadivu Guruswamy <svadivu@xxxxxx>
>>
>> Hwmod adaptation design requires each of the DSS HW IP to be a platform driver.
>> Platform driver of dsshw has to be registered before of dispc, rfbi, dsi1,
>> venc and omapdisplay driver should be after all the HW IPs. Sequence it with
>> arch_initcall and device_initcall_sync.
>>
>> Signed-off-by: Senthilvadivu Guruswamy <svadivu@xxxxxx>
>
> Rather than creating a bunch of empty/dummy driver here to be populated
> later, I'd prefer them to be created as needed in the subsequent
> patches.
>
> For example, the dispc parts of this patch should be added in PATCH 9
> where you populate the functions.  The RFBI parts of this patch should
> be added in PATCH 12, etc. etc.
Thanks for your comments; since Senthil is going to be out for
sometime, I would make these changes and push as the next version;
will wait a bit for other comments too.

Best regards,
~Sumit.
>
> Kevin
>
>
>> ---
>>  drivers/video/omap2/dss/core.c  |    2 +-
>>  drivers/video/omap2/dss/dispc.c |   28 ++++++++++++++++++++++++++++
>>  drivers/video/omap2/dss/dsi.c   |   29 ++++++++++++++++++++++++++++-
>>  drivers/video/omap2/dss/dss.c   |   27 +++++++++++++++++++++++++++
>>  drivers/video/omap2/dss/rfbi.c  |   28 ++++++++++++++++++++++++++++
>>  drivers/video/omap2/dss/venc.c  |   28 ++++++++++++++++++++++++++++
>>  6 files changed, 140 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
>> index 48d20d8..d165434 100644
>> --- a/drivers/video/omap2/dss/core.c
>> +++ b/drivers/video/omap2/dss/core.c
>> @@ -989,7 +989,7 @@ static int __init omap_dss_init2(void)
>>  }
>>
>>  core_initcall(omap_dss_init);
>> -device_initcall(omap_dss_init2);
>> +device_initcall_sync(omap_dss_init2);
>>  #endif
>>
>>  MODULE_AUTHOR("Tomi Valkeinen <tomi.valkeinen@xxxxxxxxx>");
>> diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
>> index fa40fa5..942dea5 100644
>> --- a/drivers/video/omap2/dss/dispc.c
>> +++ b/drivers/video/omap2/dss/dispc.c
>> @@ -3167,3 +3167,31 @@ int dispc_setup_plane(enum omap_plane plane,
>>
>>       return r;
>>  }
>> +
>> +/* DISPC HW IP initialisation */
>> +static int omap_dispchw_probe(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static int omap_dispchw_remove(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static struct platform_driver omap_dispchw_driver = {
>> +     .probe          = omap_dispchw_probe,
>> +     .remove         = omap_dispchw_remove,
>> +     .driver         = {
>> +             .name   = "omap_dispc",
>> +             .owner  = THIS_MODULE,
>> +     },
>> +};
>> +
>> +static int __init omap_dispc_init(void)
>> +{
>> +     return platform_driver_register(&omap_dispchw_driver);
>> +}
>> +
>> +device_initcall(omap_dispc_init);
>> +
>> diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
>> index aa4f7a5..037d366 100644
>> --- a/drivers/video/omap2/dss/dsi.c
>> +++ b/drivers/video/omap2/dss/dsi.c
>> @@ -292,7 +292,6 @@ static inline u32 dsi_read_reg(const struct dsi_reg idx)
>>       return __raw_readl(dsi.base + idx.idx);
>>  }
>>
>> -
>>  void dsi_save_context(void)
>>  {
>>  }
>> @@ -3304,3 +3303,31 @@ void dsi_exit(void)
>>       DSSDBG("omap_dsi_exit\n");
>>  }
>>
>> +/* DSI1 HW IP initialisation */
>> +static int omap_dsi1hw_probe(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static int omap_dsi1hw_remove(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static struct platform_driver omap_dsi1hw_driver = {
>> +     .probe          = omap_dsi1hw_probe,
>> +     .remove         = omap_dsi1hw_remove,
>> +     .driver         = {
>> +             .name   = "omap_dsi1",
>> +             .owner  = THIS_MODULE,
>> +     },
>> +};
>> +
>> +static int __init omap_dsi1_init(void)
>> +{
>> +     return platform_driver_register(&omap_dsi1hw_driver);
>> +}
>> +
>> +device_initcall(omap_dsi1_init);
>> +
>> +
>> diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
>> index 77c3621..6d0bd89 100644
>> --- a/drivers/video/omap2/dss/dss.c
>> +++ b/drivers/video/omap2/dss/dss.c
>> @@ -639,3 +639,30 @@ void dss_exit(void)
>>       iounmap(dss.base);
>>  }
>>
>> +/* DSS HW IP initialisation */
>> +static int omap_dsshw_probe(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static int omap_dsshw_remove(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static struct platform_driver omap_dsshw_driver = {
>> +     .probe          = omap_dsshw_probe,
>> +     .remove         = omap_dsshw_remove,
>> +     .driver         = {
>> +             .name   = "omap_dss",
>> +             .owner  = THIS_MODULE,
>> +     },
>> +};
>> +
>> +static int __init omap_dss_init1(void)
>> +{
>> +     return platform_driver_register(&omap_dsshw_driver);
>> +}
>> +
>> +arch_initcall(omap_dss_init1);
>> +
>> diff --git a/drivers/video/omap2/dss/rfbi.c b/drivers/video/omap2/dss/rfbi.c
>> index bbe6246..a086233 100644
>> --- a/drivers/video/omap2/dss/rfbi.c
>> +++ b/drivers/video/omap2/dss/rfbi.c
>> @@ -1054,3 +1054,31 @@ int rfbi_init_display(struct omap_dss_device *dssdev)
>>       dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
>>       return 0;
>>  }
>> +
>> +/* RFBI HW IP initialisation */
>> +static int omap_rfbihw_probe(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static int omap_rfbihw_remove(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static struct platform_driver omap_rfbihw_driver = {
>> +     .probe          = omap_rfbihw_probe,
>> +     .remove         = omap_rfbihw_remove,
>> +     .driver         = {
>> +             .name   = "omap_rfbi",
>> +             .owner  = THIS_MODULE,
>> +     },
>> +};
>> +
>> +static int __init omap_rfbi_init(void)
>> +{
>> +     return platform_driver_register(&omap_rfbihw_driver);
>> +}
>> +
>> +device_initcall(omap_rfbi_init);
>> +
>> diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
>> index eff3505..ac63cee 100644
>> --- a/drivers/video/omap2/dss/venc.c
>> +++ b/drivers/video/omap2/dss/venc.c
>> @@ -740,3 +740,31 @@ void venc_dump_regs(struct seq_file *s)
>>
>>  #undef DUMPREG
>>  }
>> +
>> +/* VENC HW IP initialisation */
>> +static int omap_venchw_probe(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static int omap_venchw_remove(struct platform_device *pdev)
>> +{
>> +     return 0;
>> +}
>> +
>> +static struct platform_driver omap_venchw_driver = {
>> +     .probe          = omap_venchw_probe,
>> +     .remove         = omap_venchw_remove,
>> +     .driver         = {
>> +             .name   = "omap_venc",
>> +             .owner  = THIS_MODULE,
>> +     },
>> +};
>> +
>> +static int __init omap_venc_init(void)
>> +{
>> +     return platform_driver_register(&omap_venchw_driver);
>> +}
>> +
>> +device_initcall(omap_venc_init);
>> +
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux