Re: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-08-05 Thread Jan Pohanka
Hello Uwe,
thank you for the hint. There was problem with insufficient memory.
dma_alloc_from_coherent is called several times and when I allocated
only 4MB, last call failed. When I passed 8MB to
dma_declare_coherent_memory, it works. Unfortunately I do not
understand why 4MB is not enough for 640x480 YUV image...

regards
Jan

2011/8/4 Uwe Kleine-König u.kleine-koe...@pengutronix.de:
 Hello Jan,

 On Thu, Aug 04, 2011 at 03:11:11PM +0200, Jan Pohanka wrote:
 Dear Uwe,
 could you please give me some advice once more? It seems I'm not
 able to make mx2_camera working by myself.
 I have tried dma memory allocation in my board file in several ways,
 but nothing seems to work. I use Video capture example for v4l2 for
 testing.

 regards
 Jan

 mx27ipcam_camera_power: 1
 mx27ipcam_camera_reset
 mx2-camera mx2-camera.0: Camera driver attached to camera 0
 mx2-camera mx2-camera.0: dma_alloc_coherent size 614400 failed
 mmap error 12, Cannot allocate memory
 mx2-camera mx2-camera.0: Camera driver detached from camera 0
 mx27ipcam_camera_power: 0
 Cannot say offhand. I'd instrument dma_alloc_from_coherent to check
 where it fails.

 The patch looks OK from a first glance.

 Best regards
 Uwe

 --
 Pengutronix e.K.                           | Uwe Kleine-König            |
 Industrial Linux Solutions                 | http://www.pengutronix.de/  |

--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-08-05 Thread Uwe Kleine-König
Hello Jan,

On Fri, Aug 05, 2011 at 09:21:36AM +0200, Jan Pohanka wrote:
 Hello Uwe,
 thank you for the hint. There was problem with insufficient memory.
 dma_alloc_from_coherent is called several times and when I allocated
 only 4MB, last call failed. When I passed 8MB to
 dma_declare_coherent_memory, it works. Unfortunately I do not
 understand why 4MB is not enough for 640x480 YUV image...
A YUV420 image of size 640x480 needs 1.5 * 640 * 480 bytes (I think).
That's ~ 0.5MB. Now it depends how much buffers are allocated. For
taking a photo a single buffer is enough, for a video it uses probably
more than one.

Best regards
Uwe

-- 
Pengutronix e.K.   | Uwe Kleine-König|
Industrial Linux Solutions | http://www.pengutronix.de/  |
--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-08-04 Thread Jan Pohanka

Dear Uwe,
could you please give me some advice once more? It seems I'm not able to  
make mx2_camera working by myself.
I have tried dma memory allocation in my board file in several ways, but  
nothing seems to work. I use Video capture example for v4l2 for testing.


regards
Jan

mx27ipcam_camera_power: 1
mx27ipcam_camera_reset
mx2-camera mx2-camera.0: Camera driver attached to camera 0
mx2-camera mx2-camera.0: dma_alloc_coherent size 614400 failed
mmap error 12, Cannot allocate memory
mx2-camera mx2-camera.0: Camera driver detached from camera 0
mx27ipcam_camera_power: 0

...
static phys_addr_t mx2_camera_base __initdata;
#define MX2_CAMERA_BUF_SIZE SZ_4M

static int __init mx27ipcam_init_camera(void)
{
int dma, ret = -ENOMEM;
struct platform_device *pdev = 
imx27_alloc_mx2_camera(mx27ipcam_camera);


if (IS_ERR(pdev))
return PTR_ERR(pdev);

dma = dma_declare_coherent_memory(pdev-dev,
mx2_camera_base, mx2_camera_base,
MX2_CAMERA_BUF_SIZE,
DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
if (!(dma  DMA_MEMORY_MAP))
goto err;

ret = platform_device_add(pdev);
if (ret)
err:
platform_device_put(pdev);

return ret;
}

static void __init mx27ipcam_init(void)
{
imx27_soc_init();

mxc_gpio_setup_multiple_pins(mx27ipcam_pins, ARRAY_SIZE(mx27ipcam_pins),
mx27ipcam);

platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
/*imx27_add_mxc_nand(mx27ipcam_nand_board_info);*/

imx27_add_imx_uart0(NULL);
imx27_add_fec(NULL);
imx27_add_imx2_wdt(NULL);
imx27_add_imx_i2c(0, mx27ipcam_i2c1_data);

mx27ipcam_init_camera();
}

static void __init mx27ipcam_reserve(void)
{
/* reserve 4 MiB for mx3-camera */
mx2_camera_base = memblock_alloc(MX2_CAMERA_BUF_SIZE,
MX2_CAMERA_BUF_SIZE);
memblock_free(mx2_camera_base, MX2_CAMERA_BUF_SIZE);
memblock_remove(mx2_camera_base, MX2_CAMERA_BUF_SIZE);
}

MACHINE_START(IMX27IPCAM, Freescale IMX27IPCAM)
/* maintainer: Freescale Semiconductor, Inc. */
.boot_params = MX27_PHYS_OFFSET + 0x100,
.reserve = mx27ipcam_reserve,
.map_io = mx27_map_io,
.init_early = imx27_init_early,
.init_irq = mx27_init_irq,
.timer = mx27ipcam_timer,
.init_machine = mx27ipcam_init,
MACHINE_END



struct platform_device *__init imx_add_mx2_camera(
const struct imx_mx2_camera_data *data,
const struct mx2_camera_platform_data *pdata)
{
struct resource res[] = {
{
.start = data-iobasecsi,
.end = data-iobasecsi + data-iosizecsi - 1,
.flags = IORESOURCE_MEM,
}, {
.start = data-irqcsi,
.end = data-irqcsi,
.flags = IORESOURCE_IRQ,
}, {
.start = data-iobaseemmaprp,
.end = data-iobaseemmaprp + data-iosizeemmaprp - 1,
.flags = IORESOURCE_MEM,
}, {
.start = data-irqemmaprp,
.end = data-irqemmaprp,
.flags = IORESOURCE_IRQ,
},
};
return imx_add_platform_device_dmamask(mx2-camera, 0,
res, data-iobaseemmaprp ? 4 : 2,
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
}

struct platform_device *__init imx_alloc_mx2_camera(
const struct imx_mx2_camera_data *data,
const struct mx2_camera_platform_data *pdata)
{
struct resource res[] = {
{
.start = data-iobasecsi,
.end = data-iobasecsi + 
data-iosizecsi - 1,
.flags = IORESOURCE_MEM,
}, {
.start = data-irqcsi,
.end = data-irqcsi,
.flags = IORESOURCE_IRQ,
}, {
.start = data-iobaseemmaprp,
.end = data-iobaseemmaprp + 
data-iosizeemmaprp - 1,
.flags = IORESOURCE_MEM,
}, {
.start = data-irqemmaprp,
.end = data-irqemmaprp,
.flags = IORESOURCE_IRQ,
},
};
int ret = -ENOMEM;
struct platform_device *pdev;

pdev = 

Re: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-08-04 Thread Uwe Kleine-König
Hello Jan,

On Thu, Aug 04, 2011 at 03:11:11PM +0200, Jan Pohanka wrote:
 Dear Uwe,
 could you please give me some advice once more? It seems I'm not
 able to make mx2_camera working by myself.
 I have tried dma memory allocation in my board file in several ways,
 but nothing seems to work. I use Video capture example for v4l2 for
 testing.
 
 regards
 Jan
 
 mx27ipcam_camera_power: 1
 mx27ipcam_camera_reset
 mx2-camera mx2-camera.0: Camera driver attached to camera 0
 mx2-camera mx2-camera.0: dma_alloc_coherent size 614400 failed
 mmap error 12, Cannot allocate memory
 mx2-camera mx2-camera.0: Camera driver detached from camera 0
 mx27ipcam_camera_power: 0
Cannot say offhand. I'd instrument dma_alloc_from_coherent to check
where it fails.
 
The patch looks OK from a first glance.

Best regards
Uwe

-- 
Pengutronix e.K.   | Uwe Kleine-König|
Industrial Linux Solutions | http://www.pengutronix.de/  |
--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-08-01 Thread Jan Pohanka

Hello Uwe,

thank you for the answer again, but I'm still in troubles...
Here is the code from my mach-imx27ipcam.c regarding camera initialization  
and DMESG messages I got. The initialization is almost the same as in  
pcm037 as you adviced.


static int mx27ipcam_camera_power(struct device *dev, int on)
{
/* set clock*/

/* set standby pin */
gpio_set_value(CAM_STDBY, !on);

printk(%s: %d\n, __func__, (!(!on)));
return 0;
}

static int mx27ipcam_camera_reset(struct device *dev)
{
gpio_set_value(CAM_RESET, 0);
udelay(100);
gpio_set_value(CAM_RESET, 1);

printk(%s\n, __func__);
return 0;
}

static struct soc_camera_link iclink_mt9d131 = {
.bus_id = 0,/* Must match with the camera ID */
.board_info = mx27ipcam_i2c_camera[0],
.i2c_adapter_id = 0,
.power = mx27ipcam_camera_power,
.reset = mx27ipcam_camera_reset,
};


static struct platform_device mx27ipcam_mt9d131 = {
.name   = soc-camera-pdrv,
.id = 0,
.dev= {
.platform_data = iclink_mt9d131,
},
};

static struct platform_device *platform_devices[] __initdata = {
ipcam_nor_mtd_device,
mx27ipcam_mt9d131,
};


static struct mx2_camera_platform_data mx27ipcam_camera = {
.flags = 0,
.clk = 10,
};


static phys_addr_t mx2_camera_base __initdata;
#define MX2_CAMERA_BUF_SIZE SZ_4M

static int __init mx27ipcam_camera_init(void) {
int dma, ret = -ENOMEM;
struct platform_device *pdev;

printk(MX2 camera initialization.\n);

pdev = imx27_add_mx2_camera(mx27ipcam_camera);

if (IS_ERR(pdev)) {
printk(pdev error\n);
return PTR_ERR(pdev);
}

dma = dma_declare_coherent_memory(pdev-dev,
mx2_camera_base, mx2_camera_base,
MX2_CAMERA_BUF_SIZE,
DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
if (!(dma  DMA_MEMORY_MAP))
goto err;


ret = platform_device_add(pdev);
if (ret) {
printk(platform_device_add error\n);

err:
platform_device_put(pdev);
}

return ret;
}

static void __init mx27ipcam_init(void)
{
...
imx27_add_imx_i2c(0, mx27ipcam_i2c1_data);
mx27ipcam_camera_init();
...
}

...

static void __init imx27ipcam_reserve(void)
{
/* reserve 4 MiB for mx2-camera */
mx2_camera_base = memblock_alloc(MX2_CAMERA_BUF_SIZE,
MX2_CAMERA_BUF_SIZE);
memblock_free(mx2_camera_base, MX2_CAMERA_BUF_SIZE);
memblock_remove(mx2_camera_base, MX2_CAMERA_BUF_SIZE);
}

MACHINE_START(IMX27IPCAM, Freescale IMX27IPCAM)
/* maintainer: Freescale Semiconductor, Inc. */
.boot_params = MX27_PHYS_OFFSET + 0x100,
.reserve = imx27ipcam_reserve,
.map_io = mx27_map_io,
.init_early = imx27_init_early,
.init_irq = mx27_init_irq,
.timer = mx27ipcam_timer,
.init_machine = mx27ipcam_init,
MACHINE_END




MX2 camera initialization.
[ cut here ]
WARNING: at /home/honza/_dev/kernel/linux-2.6.39.y/kernel/resource.c:491  
__insert_resource+0x13c/0

x148()
Modules linked in:
[c00329e0] (unwind_backtrace+0x0/0xf0) from [c0042b00]  
(warn_slowpath_common+0x4c/0x64)
[c0042b00] (warn_slowpath_common+0x4c/0x64) from [c0042b34]  
(warn_slowpath_null+0x1c/0x24)
[c0042b34] (warn_slowpath_null+0x1c/0x24) from [c004960c]  
(__insert_resource+0x13c/0x148)
[c004960c] (__insert_resource+0x13c/0x148) from [c0049e6c]  
(insert_resource_conflict+0x20/0x54

)
[c0049e6c] (insert_resource_conflict+0x20/0x54) from [c0049ea8]  
(insert_resource+0x8/0x14)
[c0049ea8] (insert_resource+0x8/0x14) from [c01bf11c]  
(platform_device_add+0x70/0x238)
[c01bf11c] (platform_device_add+0x70/0x238) from [c000bc54]  
(mx27ipcam_init+0xc0/0x120)
[c000bc54] (mx27ipcam_init+0xc0/0x120) from [c0009558]  
(customize_machine+0x1c/0x28)
[c0009558] (customize_machine+0x1c/0x28) from [c002248c]  
(do_one_initcall+0x30/0x16c)
[c002248c] (do_one_initcall+0x30/0x16c) from [c000891c]  
(kernel_init+0x90/0x13c)
[c000891c] (kernel_init+0x90/0x13c) from [c002dfc0]  
(kernel_thread_exit+0x0/0x8)

---[ end trace 1b75b31a2719ed1c ]---
mx2-camera.0: failed to claim resource 0
platform_device_add error


I have also another question if you are able to answer it. I would like to  
have some kind of kernel debugging working (JTAG or KGDB). We own j-link  
probe from segger, but their gdbserver cannot attach running application.  
It resets the board and I'm not able to boot linux again with probe  
connected. According to this I have tried also KGDB, but it does not work  
either. I have found this link  
http://www.imxdev.org/wiki/index.php?title=Mxuart_patch - it seems that  
polling routines are still not implemented in 

Re: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-07-29 Thread Uwe Kleine-König
Hello,

On Fri, Jul 29, 2011 at 09:31:28AM +0200, Jan Pohanka wrote:
 I'm playing with imx27ipcam reference design and I would like to use
 more recent (or actual) kernel than the one in BSP (2.6.19). I had
 no problems with running 2.6.39 version from mainline, and now I
 want to get some signal from CMOS chip. As there is no driver for
 mt9d131 yet I modified the mt9m111 driver to communicate wit it.
 Driver gets correctly initialized
 
 mx2-camera mx2-camera.0: initialising
 mx2-camera mx2-camera.0: Camera clock frequency: 625
 mx2-camera mx2-camera.0: Using EMMA
 camera 0-0: Probing 0-0
 mx27ipcam_camera_power: 1
 mx27ipcam_camera_reset
 mx2-camera mx2-camera.0: Camera driver attached to camera 0
 mt9m111 0-0048: read  reg.000 - 1519
 mt9m111 0-0048: Detected a MT9D131 chip ID 1519
 camera 0-0: Found 8 supported formats.
 mx2-camera mx2-camera.0: Camera driver detached from camera 0
 mx27ipcam_camera_power: 0
 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
 frequency: 625
 
 For example this command should capture several frames
 ffmpeg -s qvga -r 30 -t 2 -pix_fmt yuyv422 -f video4linux2 -i
 /dev/video0 temp_vid.h263
 
 however there is some problems with dma_contig allocation
 mx2-camera mx2-camera.0: dma_alloc_coherent size 155648 failed
 [video4linux2 @ 0xfa8c50]mmap: Cannot allocate memory
 /dev/video0: Input/output error
 
 ...
 camera 0-0: mmap called, vma=0xc397fd30
 camera 0-0: vma start=0x4014c000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fcd8
 camera 0-0: vma start=0x40ee8000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fc80
 camera 0-0: vma start=0x40fa4000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fc28
 camera 0-0: vma start=0x4109a000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fbd0
 camera 0-0: vma start=0x41124000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fb78
 camera 0-0: vma start=0x4118a000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fb20
 camera 0-0: vma start=0x41241000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fac8
 camera 0-0: vma start=0x41277000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fa70
 camera 0-0: vma start=0x412c3000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397fa18
 camera 0-0: vma start=0x41377000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397f9c0
 camera 0-0: vma start=0x41416000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397f968
 camera 0-0: vma start=0x4147f000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397f910
 camera 0-0: vma start=0x414a5000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397f8b8
 camera 0-0: vma start=0x41542000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397f860
 camera 0-0: vma start=0x415ba000, size=155648, ret=0
 camera 0-0: mmap called, vma=0xc397f808
 mx2-camera mx2-camera.0: dma_alloc_coherent size 155648 failed
 camera 0-0: vma start=0x41667000, size=155648, ret=-12
 mx2-camera mx2-camera.0: Camera driver detached from camera 0
 mx27ipcam_camera_power: 0
 camera 0-0: camera device close
Check out what arch/arm/mach-imx/mach-pcm037.c does to give some memory
to the camera device.

Best regards
Uwe

-- 
Pengutronix e.K.   | Uwe Kleine-König|
Industrial Linux Solutions | http://www.pengutronix.de/  |
--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-07-29 Thread Jan Pohanka

Hi Uwe,

thank you for answer. You are right I give no memory to camera device in  
mach-imx27ipcam.c. I have tried to do it in same way as it is in  
mach-pcm037.c but no success. Here is my init function


static int __init mx27ipcam_camera_init(void) {
int dma, ret = -ENOMEM;
struct platform_device *pdev;

printk(MX2 camera initialization.\n);

pdev = imx27_add_mx2_camera(mx27ipcam_camera);

if (IS_ERR(pdev)) {
printk(pdev error\n);
return PTR_ERR(pdev);
}

dma = dma_declare_coherent_memory(pdev-dev,
mx2_camera_base, mx2_camera_base,
MX2_CAMERA_BUF_SIZE,
DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
if (!(dma  DMA_MEMORY_MAP))
goto err;


ret = platform_device_add(pdev);
if (ret) {
printk(platform_device_add error\n);

err:
platform_device_put(pdev);
}

return ret;
}


I do not understand fully this business around allocation so it may be  
wrong.


regards
Jan

Dne Fri, 29 Jul 2011 09:51:43 +0200 Uwe Kleine-König  
u.kleine-koe...@pengutronix.de napsal(a):



Hello,

On Fri, Jul 29, 2011 at 09:31:28AM +0200, Jan Pohanka wrote:

I'm playing with imx27ipcam reference design and I would like to use
more recent (or actual) kernel than the one in BSP (2.6.19). I had
no problems with running 2.6.39 version from mainline, and now I
want to get some signal from CMOS chip. As there is no driver for
mt9d131 yet I modified the mt9m111 driver to communicate wit it.
Driver gets correctly initialized

mx2-camera mx2-camera.0: initialising
mx2-camera mx2-camera.0: Camera clock frequency: 625
mx2-camera mx2-camera.0: Using EMMA
camera 0-0: Probing 0-0
mx27ipcam_camera_power: 1
mx27ipcam_camera_reset
mx2-camera mx2-camera.0: Camera driver attached to camera 0
mt9m111 0-0048: read  reg.000 - 1519
mt9m111 0-0048: Detected a MT9D131 chip ID 1519
camera 0-0: Found 8 supported formats.
mx2-camera mx2-camera.0: Camera driver detached from camera 0
mx27ipcam_camera_power: 0
mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 625

For example this command should capture several frames
ffmpeg -s qvga -r 30 -t 2 -pix_fmt yuyv422 -f video4linux2 -i
/dev/video0 temp_vid.h263

however there is some problems with dma_contig allocation
mx2-camera mx2-camera.0: dma_alloc_coherent size 155648 failed
[video4linux2 @ 0xfa8c50]mmap: Cannot allocate memory
/dev/video0: Input/output error

...
camera 0-0: mmap called, vma=0xc397fd30
camera 0-0: vma start=0x4014c000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fcd8
camera 0-0: vma start=0x40ee8000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fc80
camera 0-0: vma start=0x40fa4000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fc28
camera 0-0: vma start=0x4109a000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fbd0
camera 0-0: vma start=0x41124000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fb78
camera 0-0: vma start=0x4118a000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fb20
camera 0-0: vma start=0x41241000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fac8
camera 0-0: vma start=0x41277000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fa70
camera 0-0: vma start=0x412c3000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397fa18
camera 0-0: vma start=0x41377000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397f9c0
camera 0-0: vma start=0x41416000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397f968
camera 0-0: vma start=0x4147f000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397f910
camera 0-0: vma start=0x414a5000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397f8b8
camera 0-0: vma start=0x41542000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397f860
camera 0-0: vma start=0x415ba000, size=155648, ret=0
camera 0-0: mmap called, vma=0xc397f808
mx2-camera mx2-camera.0: dma_alloc_coherent size 155648 failed
camera 0-0: vma start=0x41667000, size=155648, ret=-12
mx2-camera mx2-camera.0: Camera driver detached from camera 0
mx27ipcam_camera_power: 0
camera 0-0: camera device close

Check out what arch/arm/mach-imx/mach-pcm037.c does to give some memory
to the camera device.

Best regards
Uwe




--
Tato zpráva byla vytvořena převratným poštovním klientem Opery:  
http://www.opera.com/mail/

--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-07-29 Thread Uwe Kleine-König
Hi Jan,

On Fri, Jul 29, 2011 at 10:59:55AM +0200, Jan Pohanka wrote:
 thank you for answer. You are right I give no memory to camera
 device in mach-imx27ipcam.c. I have tried to do it in same way as it
 is in mach-pcm037.c but no success. Here is my init function
 
 static int __init mx27ipcam_camera_init(void) {
   int dma, ret = -ENOMEM;
   struct platform_device *pdev;
 
   printk(MX2 camera initialization.\n);
 
   pdev = imx27_add_mx2_camera(mx27ipcam_camera);
 
   if (IS_ERR(pdev)) {
   printk(pdev error\n);
   return PTR_ERR(pdev);
   }
 
   dma = dma_declare_coherent_memory(pdev-dev,
   mx2_camera_base, mx2_camera_base,
   MX2_CAMERA_BUF_SIZE,
   DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
   if (!(dma  DMA_MEMORY_MAP))
   goto err;
 
 
   ret = platform_device_add(pdev);
   if (ret) {
   printk(platform_device_add error\n);
 
 err:
   platform_device_put(pdev);
   }
 
   return ret;
 }
and you also have a reserve callback? See commit
90026c8c823bff54172eab33a5e7fcecfd3df635 for all details.

Best regards
Uwe

-- 
Pengutronix e.K.   | Uwe Kleine-König|
Industrial Linux Solutions | http://www.pengutronix.de/  |
--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-07-29 Thread Jan Pohanka

Dear Uwe,
which repository should I search 90026c8c823bff54172eab33a5e7fcecfd3df635  
in? I have not found it in git.pengutronix.de/git/imx/linux-2.6.git nor in  
vanilla sources.


regards Jan

Dne Fri, 29 Jul 2011 11:23:12 +0200 Uwe Kleine-König  
u.kleine-koe...@pengutronix.de napsal(a):



Hi Jan,

On Fri, Jul 29, 2011 at 10:59:55AM +0200, Jan Pohanka wrote:

thank you for answer. You are right I give no memory to camera
device in mach-imx27ipcam.c. I have tried to do it in same way as it
is in mach-pcm037.c but no success. Here is my init function

static int __init mx27ipcam_camera_init(void) {
int dma, ret = -ENOMEM;
struct platform_device *pdev;

printk(MX2 camera initialization.\n);

pdev = imx27_add_mx2_camera(mx27ipcam_camera);

if (IS_ERR(pdev)) {
printk(pdev error\n);
return PTR_ERR(pdev);
}

dma = dma_declare_coherent_memory(pdev-dev,
mx2_camera_base, mx2_camera_base,
MX2_CAMERA_BUF_SIZE,
DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
if (!(dma  DMA_MEMORY_MAP))
goto err;


ret = platform_device_add(pdev);
if (ret) {
printk(platform_device_add error\n);

err:
platform_device_put(pdev);
}

return ret;
}

and you also have a reserve callback? See commit
90026c8c823bff54172eab33a5e7fcecfd3df635 for all details.

Best regards
Uwe




--
Tato zpráva byla vytvořena převratným poštovním klientem Opery:  
http://www.opera.com/mail/

--
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: mx2_camera driver on mx27ipcam: dma_alloc_coherent size failed

2011-07-29 Thread Uwe Kleine-König
Hello Jan,

On Fri, Jul 29, 2011 at 12:14:09PM +0200, Jan Pohanka wrote:
 which repository should I search
 90026c8c823bff54172eab33a5e7fcecfd3df635 in? I have not found it in
 git.pengutronix.de/git/imx/linux-2.6.git nor in vanilla sources.
Seems my copy'n'paste foo isn't optimal.  Commit
dca7c0b4293a06d1ed9387e729a4882896abccc2 is the relevant, it's in
vanilla.

http://git.kernel.org/linus/dca7c0b4293a06d1ed9387e729a4882896abccc2

Best regards
Uwe

-- 
Pengutronix e.K.   | Uwe Kleine-König|
Industrial Linux Solutions | http://www.pengutronix.de/  |
--
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