On Wed, Nov 28, 2012 at 04:25:32PM +0530, Prabhakar Lad wrote: > From: Manjunath Hadli <manjunath.hadli@xxxxxx> > > enable PPCR, enbale ISIF out on BCR and disable all events to > get the correct operation from ISIF. > > Signed-off-by: Manjunath Hadli <manjunath.hadli@xxxxxx> > Signed-off-by: Lad, Prabhakar <prabhakar.lad@xxxxxx> > --- > drivers/media/platform/davinci/vpss.c | 13 +++++++++++++ > 1 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/drivers/media/platform/davinci/vpss.c b/drivers/media/platform/davinci/vpss.c > index 146e4b0..34ad7bd 100644 > --- a/drivers/media/platform/davinci/vpss.c > +++ b/drivers/media/platform/davinci/vpss.c > @@ -52,9 +52,11 @@ MODULE_AUTHOR("Texas Instruments"); > #define DM355_VPSSBL_EVTSEL_DEFAULT 0x4 > > #define DM365_ISP5_PCCR 0x04 > +#define DM365_ISP5_BCR 0x08 > #define DM365_ISP5_INTSEL1 0x10 > #define DM365_ISP5_INTSEL2 0x14 > #define DM365_ISP5_INTSEL3 0x18 > +#define DM365_ISP5_EVTSEL 0x1c > #define DM365_ISP5_CCDCMUX 0x20 > #define DM365_ISP5_PG_FRAME_SIZE 0x28 > #define DM365_VPBE_CLK_CTRL 0x00 > @@ -357,6 +359,10 @@ void dm365_vpss_set_pg_frame_size(struct vpss_pg_frame_size frame_size) > } > EXPORT_SYMBOL(dm365_vpss_set_pg_frame_size); > > +#define DM365_ISP5_EVTSEL_EVT_DISABLE 0x00000000 > +#define DM365_ISP5_BCR_ISIF_OUT_ENABLE 0x00000002 > +#define DM365_ISP5_PCCR_CLK_ENABLE 0x0000007f > + How about defining these next to the register definitions themselves? There also seems to be one EVTSEL bit defined in the beginning of the first chunk. Please group these. For that matter --- IMO you could just write zero to the register, without defining it a name, if the purpose of the register is to select something based on bits that are set. > static int __devinit vpss_probe(struct platform_device *pdev) > { > struct resource *r1, *r2; > @@ -426,9 +432,16 @@ static int __devinit vpss_probe(struct platform_device *pdev) > oper_cfg.hw_ops.enable_clock = dm365_enable_clock; > oper_cfg.hw_ops.select_ccdc_source = dm365_select_ccdc_source; > /* Setup vpss interrupts */ > + isp5_write((isp5_read(DM365_ISP5_PCCR) | > + DM365_ISP5_PCCR_CLK_ENABLE), DM365_ISP5_PCCR); > + isp5_write((isp5_read(DM365_ISP5_BCR) | > + DM365_ISP5_BCR_ISIF_OUT_ENABLE), DM365_ISP5_BCR); > isp5_write(DM365_ISP5_INTSEL1_DEFAULT, DM365_ISP5_INTSEL1); > isp5_write(DM365_ISP5_INTSEL2_DEFAULT, DM365_ISP5_INTSEL2); > isp5_write(DM365_ISP5_INTSEL3_DEFAULT, DM365_ISP5_INTSEL3); > + /* No event selected */ > + isp5_write((isp5_read(DM365_ISP5_EVTSEL) | > + DM365_ISP5_EVTSEL_EVT_DISABLE), DM365_ISP5_EVTSEL); What's this? You're reading the value of the register, orring that with zero and writing it back? :-) > } else > oper_cfg.hw_ops.clear_wbl_overflow = dm644x_clear_wbl_overflow; > -- Regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html