RE: Reading from ISP registers fails

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

 




> -----Original Message-----
> From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
> owner@xxxxxxxxxxxxxxx] On Behalf Of matthias schwarz
> Sent: Tuesday, July 21, 2009 4:31 PM
> To: Roger Quadros
> Cc: linux-omap@xxxxxxxxxxxxxxx
> Subject: Re: Reading from ISP registers fails
> 
> 2009/7/21 Roger Quadros <ext-roger.quadros@xxxxxxxxx>:
> > ext matthias schwarz wrote:
> >>
> >> Hello there,
> >>
> >> i just wrote a little kernel-module, which only executes the
> following
> >> lines of code:
> >>
> >> u32 syn_mode;
> >> void* iomem;
> >> struct resource* resource_ptr;
> >>
> >> resource_ptr = request_mem_region(0x480BC000, 0xFFF, "isp_ccdc");
> >>
> >> iomem = ioremap(OMAP3ISP_REG(ISP_SYSCONFIG), 8);
> >> if(iomem == NULL) {
> >>        printk("ioremap returned zero\n");
> >>        return 0;
> >> }
> >> syn_mode = ioread32(iomem);
> >>
> >>
> >>
> >> The resulting behaviour does not depend on which ISP register i
> am
> >> trying to read, it also happens for "OMAP3ISP_CCDC_REG_BASE +
> >> ISPCCDC_SYN_MODE" for example. And also when using
> >> "omap_readl(address)" to read those registers.
> >>
> >> So when this code is executed i get:
> >>
> >> Unhandled fault: external abort on non-linefetch (0x1028) at
> 0xd80bc004
> >> Internal error: : 1028 [#1] PREEMPT
> >> Internal error: : 1028 [#1] PREEMPT
> >> Modules linked in:Modules linked in: camera(+) camera(+) ipv6
> ipv6
> >>
> >> CPU: 0    Not tainted  (2.6.28-omap1 #15)
> >> [...]
> >>
> >>
> >> Hope someone can help me with what might be wrong.
> >> Thank you,
> >> Matthias
> >> --
> >> 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
> >>
> >
> > You need to enable interface clocks before accessing any
> peripheral
> > registers.
> >
> > regards,
> > -roger
> 
> struct device_driver camera_drv = {
>         .name = "camera"
> };
> 
> struct device camera_dev = {
>         .driver = &camera_drv,
> };
> 
> [...]
> struct clk* clock;
> clock = clk_get(&camera_dev, "cam_ick");
[Hiremath, Vaibhav] Can you please make sure that you are getting valid clk structure?

Thanks,
Vaibhav Hiremath

> clk_enable(clock);
> [...]
> 
> so this would be it, wouldn't it?
> 
> Thank you very much,
> Matthias
> --
> 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