RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-10 Thread Hiremath, Vaibhav

 -Original Message-
 From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
 Sent: Friday, January 08, 2010 8:40 PM
 To: Hiremath, Vaibhav
 Cc: Karicheri, Muralidharan; davinci-linux-open-
 sou...@linux.davincidsp.com; linux-media@vger.kernel.org
 Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
 drivers to platform driver
 
 Hiremath, Vaibhav hvaib...@ti.com writes:
 
 
  [Hiremath, Vaibhav] Hi Kevin and Murali,
 
  Sorry for jumping into this discussion so late,
 
  Can we use clk_add_alias() function exported by clkdev.c file
 here?
  With this board specific file can define aliases for all required
  platform_data keeping CLK() entry generic.
 
 Yes, this would be a good use case clk_add_alias()
 
[Hiremath, Vaibhav] Thanks Kevin, actually I am already using the clk_add_alias 
in AM3517 which used same VPFE_Capture driver. But I was not sure whether this 
is acceptable or not, since nobody in the kernel is using this API.
Thanks for conforming/clarifying; I will submit the patch now for this.

Thanks,
Vaibhav

 Kevin

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-08 Thread Hiremath, Vaibhav

 -Original Message-
 From: davinci-linux-open-source-boun...@linux.davincidsp.com
 [mailto:davinci-linux-open-source-boun...@linux.davincidsp.com] On
 Behalf Of Karicheri, Muralidharan
 Sent: Friday, January 08, 2010 4:55 AM
 To: Kevin Hilman
 Cc: davinci-linux-open-sou...@linux.davincidsp.com; linux-
 me...@vger.kernel.org
 Subject: RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
 drivers to platform driver
 
 Arch patches are not usually merged in Hans tree.
 
[Hiremath, Vaibhav] Hi Kevin and Murali,

Sorry for jumping into this discussion so late, 

Can we use clk_add_alias() function exported by clkdev.c file here? With this 
board specific file can define aliases for all required platform_data keeping 
CLK() entry generic.

Thanks,
Vaibhav

 Murali Karicheri
 Software Design Engineer
 Texas Instruments Inc.
 Germantown, MD 20874
 phone: 301-407-9583
 email: m-kariche...@ti.com
 
 -Original Message-
 From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
 Sent: Thursday, January 07, 2010 4:50 PM
 To: Karicheri, Muralidharan
 Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-
 open-
 sou...@linux.davincidsp.com
 Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting
 ccdc
 drivers to platform driver
 
 Karicheri, Muralidharan m-kariche...@ti.com writes:
 
  Can I remove it through a separate patch? This patch is already
 merged in
 Hans tree.
 
 Hmm, arch patches should not be merged yet as I have not ack'd
 them.
 
 Kevin
 
 
 -Original Message-
 From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
 Sent: Thursday, January 07, 2010 2:44 PM
 To: Karicheri, Muralidharan
 Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-
 linux-open-
 sou...@linux.davincidsp.com
 Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting
 ccdc
 drivers to platform driver
 
 Karicheri, Muralidharan m-kariche...@ti.com writes:
 
  Kevin,
 
 
 OK, I'm not extremely familar with the whole video architecture
 here,
 but are all of these drivers expected to be doing clk_get() and
 clk_enable()?
 
 
  [MK]Many IPs on DaVinci VPFE would require vpss master clock.
 So
  it is better to do the way I have done in my patch. So it is
 expected
  that clk_get, clk_enable etc are called from other drivers as
 well.
 
 OK, then you are expecting to add clkdev nodes for the other
 devices
 as well.  That's ok.
 
 However, you still haven't answered my original question.
 AFAICT,
 there are no users of the clkdev nodes vpss_master and
 vpss_slave.
 Why not remove those and replace them with your new nodes instead
 of
 leaving them and adding new ones?
 
 Kevin
 ___
 Davinci-linux-open-source mailing list
 davinci-linux-open-sou...@linux.davincidsp.com
 http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-
 source
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-08 Thread Kevin Hilman
Hiremath, Vaibhav hvaib...@ti.com writes:

 
 [Hiremath, Vaibhav] Hi Kevin and Murali,

 Sorry for jumping into this discussion so late, 

 Can we use clk_add_alias() function exported by clkdev.c file here?
 With this board specific file can define aliases for all required
 platform_data keeping CLK() entry generic.

Yes, this would be a good use case clk_add_alias()

Kevin

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-07 Thread Karicheri, Muralidharan
Kevin,


OK, I'm not extremely familar with the whole video architecture here,
but are all of these drivers expected to be doing clk_get() and
clk_enable()?


[MK]Many IPs on DaVinci VPFE would require vpss master clock. So
it is better to do the way I have done in my patch. So it is expected
that clk_get, clk_enable etc are called from other drivers as well.

I thought the point of moving the clocks into the CCDC driver was so that
the clock management was done in a single, shared space.


[MK] No. The CCDC IP is used across DaVinci and OMAP SOCs. The clock is named 
differently on OMAP, but the IP requires two clocks. So we named
them as master and slave as a generic name. OMAP, patform code will be 
mapping master and slave clocks to their respective clocks. We had discussed 
this in the email chain.

Murali
Kevin

 Your earlier suggestion was to use as follows :-

 -  CLK(NULL, vpss_master, vpss_master_clk),
 -  CLK(NULL, vpss_slave, vpss_slave_clk),
 +  CLK(vpfe-capture, master, vpss_master_clk),
 +  CLK(vpfe-capture, slave, vpss_slave_clk),

 I am not sure if the following will work so that it can be used across
 multiple drivers.

 +  CLK(NULL, master, vpss_master_clk),
 +  CLK(NULL, slave, vpss_slave_clk),

 If yes, I can re-do this patch. Please confirm.

No, this will not work.  You need a dev_id field so that matching
is done using the struct device.

My original suggestion was when you had the VPFE driver doing the
clk_get().  Now that it's in CCDC, maybe it should look like this.

-CLK(NULL, vpss_master, vpss_master_clk),
-CLK(NULL, vpss_slave, vpss_slave_clk),
+CLK(ccdc, master, vpss_master_clk),
+CLK(ccdc, slave, vpss_slave_clk),

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-07 Thread Kevin Hilman
Karicheri, Muralidharan m-kariche...@ti.com writes:

 Kevin,


OK, I'm not extremely familar with the whole video architecture here,
but are all of these drivers expected to be doing clk_get() and
clk_enable()?


 [MK]Many IPs on DaVinci VPFE would require vpss master clock. So
 it is better to do the way I have done in my patch. So it is expected
 that clk_get, clk_enable etc are called from other drivers as well.

OK, then you are expecting to add clkdev nodes for the other devices
as well.  That's ok.

However, you still haven't answered my original question.  AFAICT,
there are no users of the clkdev nodes vpss_master and vpss_slave.
Why not remove those and replace them with your new nodes instead of
leaving them and adding new ones?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-07 Thread Karicheri, Muralidharan
Kevin,

Can I remove it through a separate patch? This patch is already merged in Hans 
tree.

Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
phone: 301-407-9583
email: m-kariche...@ti.com

-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
Sent: Thursday, January 07, 2010 2:44 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-open-
sou...@linux.davincidsp.com
Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
drivers to platform driver

Karicheri, Muralidharan m-kariche...@ti.com writes:

 Kevin,


OK, I'm not extremely familar with the whole video architecture here,
but are all of these drivers expected to be doing clk_get() and
clk_enable()?


 [MK]Many IPs on DaVinci VPFE would require vpss master clock. So
 it is better to do the way I have done in my patch. So it is expected
 that clk_get, clk_enable etc are called from other drivers as well.

OK, then you are expecting to add clkdev nodes for the other devices
as well.  That's ok.

However, you still haven't answered my original question.  AFAICT,
there are no users of the clkdev nodes vpss_master and vpss_slave.
Why not remove those and replace them with your new nodes instead of
leaving them and adding new ones?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-07 Thread Kevin Hilman
Karicheri, Muralidharan m-kariche...@ti.com writes:

 Can I remove it through a separate patch? This patch is already merged in 
 Hans tree.

Hmm, arch patches should not be merged yet as I have not ack'd them.

Kevin


-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
Sent: Thursday, January 07, 2010 2:44 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-open-
sou...@linux.davincidsp.com
Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
drivers to platform driver

Karicheri, Muralidharan m-kariche...@ti.com writes:

 Kevin,


OK, I'm not extremely familar with the whole video architecture here,
but are all of these drivers expected to be doing clk_get() and
clk_enable()?


 [MK]Many IPs on DaVinci VPFE would require vpss master clock. So
 it is better to do the way I have done in my patch. So it is expected
 that clk_get, clk_enable etc are called from other drivers as well.

OK, then you are expecting to add clkdev nodes for the other devices
as well.  That's ok.

However, you still haven't answered my original question.  AFAICT,
there are no users of the clkdev nodes vpss_master and vpss_slave.
Why not remove those and replace them with your new nodes instead of
leaving them and adding new ones?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-07 Thread Karicheri, Muralidharan
Arch patches are not usually merged in Hans tree.

Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
phone: 301-407-9583
email: m-kariche...@ti.com

-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
Sent: Thursday, January 07, 2010 4:50 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-open-
sou...@linux.davincidsp.com
Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
drivers to platform driver

Karicheri, Muralidharan m-kariche...@ti.com writes:

 Can I remove it through a separate patch? This patch is already merged in
Hans tree.

Hmm, arch patches should not be merged yet as I have not ack'd them.

Kevin


-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
Sent: Thursday, January 07, 2010 2:44 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-open-
sou...@linux.davincidsp.com
Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
drivers to platform driver

Karicheri, Muralidharan m-kariche...@ti.com writes:

 Kevin,


OK, I'm not extremely familar with the whole video architecture here,
but are all of these drivers expected to be doing clk_get() and
clk_enable()?


 [MK]Many IPs on DaVinci VPFE would require vpss master clock. So
 it is better to do the way I have done in my patch. So it is expected
 that clk_get, clk_enable etc are called from other drivers as well.

OK, then you are expecting to add clkdev nodes for the other devices
as well.  That's ok.

However, you still haven't answered my original question.  AFAICT,
there are no users of the clkdev nodes vpss_master and vpss_slave.
Why not remove those and replace them with your new nodes instead of
leaving them and adding new ones?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-06 Thread Karicheri, Muralidharan
  CLK(NULL, rto, rto_clk),
  CLK(NULL, usb, usb_clk),
 +CLK(dm355_ccdc, master, vpss_master_clk),
 +CLK(dm355_ccdc, slave, vpss_slave_clk),

I still don't understand why you have to add new entries here and
can't simply rename the existing CLK nodes using vpss_*_clk.


[MK] This will allow multiple drivers define their own clocks derived from
these. ccdc driver is not the only driver using these clocks. Your earlier
suggestion was to use as follows :-

-   CLK(NULL, vpss_master, vpss_master_clk),
-   CLK(NULL, vpss_slave, vpss_slave_clk),
+   CLK(vpfe-capture, master, vpss_master_clk),
+   CLK(vpfe-capture, slave, vpss_slave_clk),

I am not sure if the following will work so that it can be used across
multiple drivers.

+   CLK(NULL, master, vpss_master_clk),
+   CLK(NULL, slave, vpss_slave_clk),

If yes, I can re-do this patch. Please confirm.

Same comment for dm644x.c changes.

Kevin

  CLK(NULL, NULL, NULL),
  };

 @@ -665,6 +667,17 @@ static struct platform_device dm355_asp1_device = {
  .resource   = dm355_asp1_resources,
  };

 +static void dm355_ccdc_setup_pinmux(void)
 +{
 +davinci_cfg_reg(DM355_VIN_PCLK);
 +davinci_cfg_reg(DM355_VIN_CAM_WEN);
 +davinci_cfg_reg(DM355_VIN_CAM_VD);
 +davinci_cfg_reg(DM355_VIN_CAM_HD);
 +davinci_cfg_reg(DM355_VIN_YIN_EN);
 +davinci_cfg_reg(DM355_VIN_CINL_EN);
 +davinci_cfg_reg(DM355_VIN_CINH_EN);
 +}
 +
  static struct resource dm355_vpss_resources[] = {
  {
  /* VPSS BL Base address */
 @@ -701,6 +714,10 @@ static struct resource vpfe_resources[] = {
  .end= IRQ_VDINT1,
  .flags  = IORESOURCE_IRQ,
  },
 +};
 +
 +static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 +static struct resource dm355_ccdc_resource[] = {
  /* CCDC Base address */
  {
  .flags  = IORESOURCE_MEM,
 @@ -708,8 +725,18 @@ static struct resource vpfe_resources[] = {
  .end= 0x01c70600 + 0x1ff,
  },
  };
 +static struct platform_device dm355_ccdc_dev = {
 +.name   = dm355_ccdc,
 +.id = -1,
 +.num_resources  = ARRAY_SIZE(dm355_ccdc_resource),
 +.resource   = dm355_ccdc_resource,
 +.dev = {
 +.dma_mask   = vpfe_capture_dma_mask,
 +.coherent_dma_mask  = DMA_BIT_MASK(32),
 +.platform_data  = dm355_ccdc_setup_pinmux,
 +},
 +};

 -static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
  static struct platform_device vpfe_capture_dev = {
  .name   = CAPTURE_DRV_NAME,
  .id = -1,
 @@ -860,17 +887,7 @@ static int __init dm355_init_devices(void)
  davinci_cfg_reg(DM355_INT_EDMA_CC);
  platform_device_register(dm355_edma_device);
  platform_device_register(dm355_vpss_device);
 -/*
 - * setup Mux configuration for vpfe input and register
 - * vpfe capture platform device
 - */
 -davinci_cfg_reg(DM355_VIN_PCLK);
 -davinci_cfg_reg(DM355_VIN_CAM_WEN);
 -davinci_cfg_reg(DM355_VIN_CAM_VD);
 -davinci_cfg_reg(DM355_VIN_CAM_HD);
 -davinci_cfg_reg(DM355_VIN_YIN_EN);
 -davinci_cfg_reg(DM355_VIN_CINL_EN);
 -davinci_cfg_reg(DM355_VIN_CINH_EN);
 +platform_device_register(dm355_ccdc_dev);
  platform_device_register(vpfe_capture_dev);

  return 0;
 diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-
davinci/dm644x.c
 index e65e29e..e5f1ee9 100644
 --- a/arch/arm/mach-davinci/dm644x.c
 +++ b/arch/arm/mach-davinci/dm644x.c
 @@ -315,6 +315,8 @@ struct davinci_clk dm644x_clks[] = {
  CLK(NULL, timer0, timer0_clk),
  CLK(NULL, timer1, timer1_clk),
  CLK(watchdog, NULL, timer2_clk),
 +CLK(dm644x_ccdc, master, vpss_master_clk),
 +CLK(dm644x_ccdc, slave, vpss_slave_clk),
  CLK(NULL, NULL, NULL),
  };

 @@ -612,6 +614,11 @@ static struct resource vpfe_resources[] = {
  .end= IRQ_VDINT1,
  .flags  = IORESOURCE_IRQ,
  },
 +};
 +
 +static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 +static struct resource dm644x_ccdc_resource[] = {
 +/* CCDC Base address */
  {
  .start  = 0x01c70400,
  .end= 0x01c70400 + 0xff,
 @@ -619,7 +626,17 @@ static struct resource vpfe_resources[] = {
  },
  };

 -static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 +static struct platform_device dm644x_ccdc_dev = {
 +.name   = dm644x_ccdc,
 +.id = -1,
 +.num_resources  = ARRAY_SIZE(dm644x_ccdc_resource),
 +.resource   = dm644x_ccdc_resource,
 +.dev = {
 +.dma_mask   = vpfe_capture_dma_mask,
 +.coherent_dma_mask  = DMA_BIT_MASK(32),
 +},
 +};
 +
  static struct platform_device vpfe_capture_dev = {
  .name   = CAPTURE_DRV_NAME,
  .id = -1,
 @@ -772,6 +789,7 @@ static int __init dm644x_init_devices(void)
  

Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-06 Thread Kevin Hilman
Karicheri, Muralidharan m-kariche...@ti.com writes:

 CLK(NULL, rto, rto_clk),
 CLK(NULL, usb, usb_clk),
 +   CLK(dm355_ccdc, master, vpss_master_clk),
 +   CLK(dm355_ccdc, slave, vpss_slave_clk),

I still don't understand why you have to add new entries here and
can't simply rename the existing CLK nodes using vpss_*_clk.


 [MK] This will allow multiple drivers define their own clocks derived from
 these. ccdc driver is not the only driver using these clocks. 

OK, but that still doesn't answer why you need multiple CLK() nodes.

Who else is using the clocks?

 Your earlier suggestion was to use as follows :-

 - CLK(NULL, vpss_master, vpss_master_clk),
 - CLK(NULL, vpss_slave, vpss_slave_clk),
 + CLK(vpfe-capture, master, vpss_master_clk),
 + CLK(vpfe-capture, slave, vpss_slave_clk),

 I am not sure if the following will work so that it can be used across
 multiple drivers.

 + CLK(NULL, master, vpss_master_clk),
 + CLK(NULL, slave, vpss_slave_clk),

 If yes, I can re-do this patch. Please confirm.

No, this will not work.  You need a dev_id field so that matching
is done using the struct device.

My original suggestion was when you had the VPFE driver doing the
clk_get().  Now that it's in CCDC, maybe it should look like this.

-   CLK(NULL, vpss_master, vpss_master_clk),
-   CLK(NULL, vpss_slave, vpss_slave_clk),
+   CLK(ccdc, master, vpss_master_clk),
+   CLK(ccdc, slave, vpss_slave_clk),

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-06 Thread Karicheri, Muralidharan
display, resizer drivers etc...

Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
phone: 301-407-9583
email: m-kariche...@ti.com

-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
Sent: Wednesday, January 06, 2010 11:04 AM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-open-
sou...@linux.davincidsp.com
Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
drivers to platform driver

Karicheri, Muralidharan m-kariche...@ti.com writes:

CLK(NULL, rto, rto_clk),
CLK(NULL, usb, usb_clk),
 +  CLK(dm355_ccdc, master, vpss_master_clk),
 +  CLK(dm355_ccdc, slave, vpss_slave_clk),

I still don't understand why you have to add new entries here and
can't simply rename the existing CLK nodes using vpss_*_clk.


 [MK] This will allow multiple drivers define their own clocks derived
from
 these. ccdc driver is not the only driver using these clocks.

OK, but that still doesn't answer why you need multiple CLK() nodes.

Who else is using the clocks?

 Your earlier suggestion was to use as follows :-

 -CLK(NULL, vpss_master, vpss_master_clk),
 -CLK(NULL, vpss_slave, vpss_slave_clk),
 +CLK(vpfe-capture, master, vpss_master_clk),
 +CLK(vpfe-capture, slave, vpss_slave_clk),

 I am not sure if the following will work so that it can be used across
 multiple drivers.

 +CLK(NULL, master, vpss_master_clk),
 +CLK(NULL, slave, vpss_slave_clk),

 If yes, I can re-do this patch. Please confirm.

No, this will not work.  You need a dev_id field so that matching
is done using the struct device.

My original suggestion was when you had the VPFE driver doing the
clk_get().  Now that it's in CCDC, maybe it should look like this.

-  CLK(NULL, vpss_master, vpss_master_clk),
-  CLK(NULL, vpss_slave, vpss_slave_clk),
+  CLK(ccdc, master, vpss_master_clk),
+  CLK(ccdc, slave, vpss_slave_clk),

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-06 Thread Kevin Hilman
In the future, please do not top-post.  Inline replies are preferred
so context can be followed.  I've moved your reply into context below
with some more comments...

Karicheri, Muralidharan m-kariche...@ti.com writes:

-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
Sent: Wednesday, January 06, 2010 11:04 AM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; hverk...@xs4all.nl; davinci-linux-open-
sou...@linux.davincidsp.com
Subject: Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc
drivers to platform driver

Karicheri, Muralidharan m-kariche...@ti.com writes:

   CLK(NULL, rto, rto_clk),
   CLK(NULL, usb, usb_clk),
 + CLK(dm355_ccdc, master, vpss_master_clk),
 + CLK(dm355_ccdc, slave, vpss_slave_clk),

I still don't understand why you have to add new entries here and
can't simply rename the existing CLK nodes using vpss_*_clk.


 [MK] This will allow multiple drivers define their own clocks derived
from
 these. ccdc driver is not the only driver using these clocks.

OK, but that still doesn't answer why you need multiple CLK() nodes.

Who else is using the clocks?


 display, resizer drivers etc...

OK, I'm not extremely familar with the whole video architecture here,
but are all of these drivers expected to be doing clk_get() and
clk_enable()?

I thought the point of moving the clocks into the CCDC driver was so that
the clock management was done in a single, shared space.

Kevin

 Your earlier suggestion was to use as follows :-

 -   CLK(NULL, vpss_master, vpss_master_clk),
 -   CLK(NULL, vpss_slave, vpss_slave_clk),
 +   CLK(vpfe-capture, master, vpss_master_clk),
 +   CLK(vpfe-capture, slave, vpss_slave_clk),

 I am not sure if the following will work so that it can be used across
 multiple drivers.

 +   CLK(NULL, master, vpss_master_clk),
 +   CLK(NULL, slave, vpss_slave_clk),

 If yes, I can re-do this patch. Please confirm.

No, this will not work.  You need a dev_id field so that matching
is done using the struct device.

My original suggestion was when you had the VPFE driver doing the
clk_get().  Now that it's in CCDC, maybe it should look like this.

- CLK(NULL, vpss_master, vpss_master_clk),
- CLK(NULL, vpss_slave, vpss_slave_clk),
+ CLK(ccdc, master, vpss_master_clk),
+ CLK(ccdc, slave, vpss_slave_clk),

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2010-01-05 Thread Kevin Hilman
m-kariche...@ti.com writes:

 From: Muralidharan Karicheri m-kariche...@ti.com

 This combines the two patches sent earlier to change the clock configuration
 and converting ccdc drivers to platform drivers. This has updated comments
 against v2 of these patches. Two new clocks master and slave are defined 
 for ccdc driver
 as per comments from Kevin Hilman.

 This adds platform code for ccdc driver on DM355 and DM6446.

 Reviewed-by: Vaibhav Hiremath hvaib...@ti.com
 Reviewed-by: Kevin Hilman khil...@deeprootsystems.com

 Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
 ---
 Applies to linux-davinci tree
  arch/arm/mach-davinci/dm355.c  |   41 ---
  arch/arm/mach-davinci/dm644x.c |   20 ++-
  2 files changed, 48 insertions(+), 13 deletions(-)

 diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
 index 2244e8c..a9ea761 100644
 --- a/arch/arm/mach-davinci/dm355.c
 +++ b/arch/arm/mach-davinci/dm355.c
 @@ -378,6 +378,8 @@ static struct davinci_clk dm355_clks[] = {
   CLK(NULL, timer3, timer3_clk),
   CLK(NULL, rto, rto_clk),
   CLK(NULL, usb, usb_clk),
 + CLK(dm355_ccdc, master, vpss_master_clk),
 + CLK(dm355_ccdc, slave, vpss_slave_clk),

I still don't understand why you have to add new entries here and
can't simply rename the existing CLK nodes using vpss_*_clk.  

Same comment for dm644x.c changes.

Kevin

   CLK(NULL, NULL, NULL),
  };
  
 @@ -665,6 +667,17 @@ static struct platform_device dm355_asp1_device = {
   .resource   = dm355_asp1_resources,
  };
  
 +static void dm355_ccdc_setup_pinmux(void)
 +{
 + davinci_cfg_reg(DM355_VIN_PCLK);
 + davinci_cfg_reg(DM355_VIN_CAM_WEN);
 + davinci_cfg_reg(DM355_VIN_CAM_VD);
 + davinci_cfg_reg(DM355_VIN_CAM_HD);
 + davinci_cfg_reg(DM355_VIN_YIN_EN);
 + davinci_cfg_reg(DM355_VIN_CINL_EN);
 + davinci_cfg_reg(DM355_VIN_CINH_EN);
 +}
 +
  static struct resource dm355_vpss_resources[] = {
   {
   /* VPSS BL Base address */
 @@ -701,6 +714,10 @@ static struct resource vpfe_resources[] = {
   .end= IRQ_VDINT1,
   .flags  = IORESOURCE_IRQ,
   },
 +};
 +
 +static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 +static struct resource dm355_ccdc_resource[] = {
   /* CCDC Base address */
   {
   .flags  = IORESOURCE_MEM,
 @@ -708,8 +725,18 @@ static struct resource vpfe_resources[] = {
   .end= 0x01c70600 + 0x1ff,
   },
  };
 +static struct platform_device dm355_ccdc_dev = {
 + .name   = dm355_ccdc,
 + .id = -1,
 + .num_resources  = ARRAY_SIZE(dm355_ccdc_resource),
 + .resource   = dm355_ccdc_resource,
 + .dev = {
 + .dma_mask   = vpfe_capture_dma_mask,
 + .coherent_dma_mask  = DMA_BIT_MASK(32),
 + .platform_data  = dm355_ccdc_setup_pinmux,
 + },
 +};
  
 -static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
  static struct platform_device vpfe_capture_dev = {
   .name   = CAPTURE_DRV_NAME,
   .id = -1,
 @@ -860,17 +887,7 @@ static int __init dm355_init_devices(void)
   davinci_cfg_reg(DM355_INT_EDMA_CC);
   platform_device_register(dm355_edma_device);
   platform_device_register(dm355_vpss_device);
 - /*
 -  * setup Mux configuration for vpfe input and register
 -  * vpfe capture platform device
 -  */
 - davinci_cfg_reg(DM355_VIN_PCLK);
 - davinci_cfg_reg(DM355_VIN_CAM_WEN);
 - davinci_cfg_reg(DM355_VIN_CAM_VD);
 - davinci_cfg_reg(DM355_VIN_CAM_HD);
 - davinci_cfg_reg(DM355_VIN_YIN_EN);
 - davinci_cfg_reg(DM355_VIN_CINL_EN);
 - davinci_cfg_reg(DM355_VIN_CINH_EN);
 + platform_device_register(dm355_ccdc_dev);
   platform_device_register(vpfe_capture_dev);
  
   return 0;
 diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
 index e65e29e..e5f1ee9 100644
 --- a/arch/arm/mach-davinci/dm644x.c
 +++ b/arch/arm/mach-davinci/dm644x.c
 @@ -315,6 +315,8 @@ struct davinci_clk dm644x_clks[] = {
   CLK(NULL, timer0, timer0_clk),
   CLK(NULL, timer1, timer1_clk),
   CLK(watchdog, NULL, timer2_clk),
 + CLK(dm644x_ccdc, master, vpss_master_clk),
 + CLK(dm644x_ccdc, slave, vpss_slave_clk),
   CLK(NULL, NULL, NULL),
  };
  
 @@ -612,6 +614,11 @@ static struct resource vpfe_resources[] = {
   .end= IRQ_VDINT1,
   .flags  = IORESOURCE_IRQ,
   },
 +};
 +
 +static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 +static struct resource dm644x_ccdc_resource[] = {
 + /* CCDC Base address */
   {
   .start  = 0x01c70400,
   .end= 0x01c70400 + 0xff,
 @@ -619,7 +626,17 @@ static struct resource vpfe_resources[] = {
   },
  };
  
 -static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 

[PATCH - v3 4/4] DaVinci - vpfe-capture-converting ccdc drivers to platform driver

2009-12-15 Thread m-karicheri2
From: Muralidharan Karicheri m-kariche...@ti.com

This combines the two patches sent earlier to change the clock configuration
and converting ccdc drivers to platform drivers. This has updated comments
against v2 of these patches. Two new clocks master and slave are defined 
for ccdc driver
as per comments from Kevin Hilman.

This adds platform code for ccdc driver on DM355 and DM6446.

Reviewed-by: Vaibhav Hiremath hvaib...@ti.com
Reviewed-by: Kevin Hilman khil...@deeprootsystems.com

Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
---
Applies to linux-davinci tree
 arch/arm/mach-davinci/dm355.c  |   41 ---
 arch/arm/mach-davinci/dm644x.c |   20 ++-
 2 files changed, 48 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index 2244e8c..a9ea761 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -378,6 +378,8 @@ static struct davinci_clk dm355_clks[] = {
CLK(NULL, timer3, timer3_clk),
CLK(NULL, rto, rto_clk),
CLK(NULL, usb, usb_clk),
+   CLK(dm355_ccdc, master, vpss_master_clk),
+   CLK(dm355_ccdc, slave, vpss_slave_clk),
CLK(NULL, NULL, NULL),
 };
 
@@ -665,6 +667,17 @@ static struct platform_device dm355_asp1_device = {
.resource   = dm355_asp1_resources,
 };
 
+static void dm355_ccdc_setup_pinmux(void)
+{
+   davinci_cfg_reg(DM355_VIN_PCLK);
+   davinci_cfg_reg(DM355_VIN_CAM_WEN);
+   davinci_cfg_reg(DM355_VIN_CAM_VD);
+   davinci_cfg_reg(DM355_VIN_CAM_HD);
+   davinci_cfg_reg(DM355_VIN_YIN_EN);
+   davinci_cfg_reg(DM355_VIN_CINL_EN);
+   davinci_cfg_reg(DM355_VIN_CINH_EN);
+}
+
 static struct resource dm355_vpss_resources[] = {
{
/* VPSS BL Base address */
@@ -701,6 +714,10 @@ static struct resource vpfe_resources[] = {
.end= IRQ_VDINT1,
.flags  = IORESOURCE_IRQ,
},
+};
+
+static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
+static struct resource dm355_ccdc_resource[] = {
/* CCDC Base address */
{
.flags  = IORESOURCE_MEM,
@@ -708,8 +725,18 @@ static struct resource vpfe_resources[] = {
.end= 0x01c70600 + 0x1ff,
},
 };
+static struct platform_device dm355_ccdc_dev = {
+   .name   = dm355_ccdc,
+   .id = -1,
+   .num_resources  = ARRAY_SIZE(dm355_ccdc_resource),
+   .resource   = dm355_ccdc_resource,
+   .dev = {
+   .dma_mask   = vpfe_capture_dma_mask,
+   .coherent_dma_mask  = DMA_BIT_MASK(32),
+   .platform_data  = dm355_ccdc_setup_pinmux,
+   },
+};
 
-static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
 static struct platform_device vpfe_capture_dev = {
.name   = CAPTURE_DRV_NAME,
.id = -1,
@@ -860,17 +887,7 @@ static int __init dm355_init_devices(void)
davinci_cfg_reg(DM355_INT_EDMA_CC);
platform_device_register(dm355_edma_device);
platform_device_register(dm355_vpss_device);
-   /*
-* setup Mux configuration for vpfe input and register
-* vpfe capture platform device
-*/
-   davinci_cfg_reg(DM355_VIN_PCLK);
-   davinci_cfg_reg(DM355_VIN_CAM_WEN);
-   davinci_cfg_reg(DM355_VIN_CAM_VD);
-   davinci_cfg_reg(DM355_VIN_CAM_HD);
-   davinci_cfg_reg(DM355_VIN_YIN_EN);
-   davinci_cfg_reg(DM355_VIN_CINL_EN);
-   davinci_cfg_reg(DM355_VIN_CINH_EN);
+   platform_device_register(dm355_ccdc_dev);
platform_device_register(vpfe_capture_dev);
 
return 0;
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index e65e29e..e5f1ee9 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -315,6 +315,8 @@ struct davinci_clk dm644x_clks[] = {
CLK(NULL, timer0, timer0_clk),
CLK(NULL, timer1, timer1_clk),
CLK(watchdog, NULL, timer2_clk),
+   CLK(dm644x_ccdc, master, vpss_master_clk),
+   CLK(dm644x_ccdc, slave, vpss_slave_clk),
CLK(NULL, NULL, NULL),
 };
 
@@ -612,6 +614,11 @@ static struct resource vpfe_resources[] = {
.end= IRQ_VDINT1,
.flags  = IORESOURCE_IRQ,
},
+};
+
+static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
+static struct resource dm644x_ccdc_resource[] = {
+   /* CCDC Base address */
{
.start  = 0x01c70400,
.end= 0x01c70400 + 0xff,
@@ -619,7 +626,17 @@ static struct resource vpfe_resources[] = {
},
 };
 
-static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
+static struct platform_device dm644x_ccdc_dev = {
+   .name   = dm644x_ccdc,
+   .id = -1,
+   .num_resources  = ARRAY_SIZE(dm644x_ccdc_resource),
+   .resource