From 98189e348b053b7c48c591a66b03188ede4f5776 Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Fri, 23 Apr 2010 10:31:13 -0600 Subject: [PATCH] --- yaml --- r: 193569 b: refs/heads/master c: c2b12cd496bbe5eff6a48bc669fe6b0c56f2b3d9 h: refs/heads/master i: 193567: 845ee188d3632fb5ce69649f0e35cf3d753a6020 v: v3 --- [refs] | 2 +- trunk/drivers/video/via/accel.c | 16 ++++++++++++++++ trunk/drivers/video/via/via-core.h | 10 ++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 078a7bc2f90e..b667bea00a8f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3d28eb42c52a799c806082e6d856f634ed1db902 +refs/heads/master: c2b12cd496bbe5eff6a48bc669fe6b0c56f2b3d9 diff --git a/trunk/drivers/video/via/accel.c b/trunk/drivers/video/via/accel.c index e77746857c8f..189aba41f9b9 100644 --- a/trunk/drivers/video/via/accel.c +++ b/trunk/drivers/video/via/accel.c @@ -370,6 +370,22 @@ int viafb_init_engine(struct fb_info *info) viapar->shared->vq_vram_addr = viapar->fbmem_free; viapar->fbmem_used += VQ_SIZE; +#if defined(CONFIG_FB_VIA_CAMERA) || defined(CONFIG_FB_VIA_CAMERA_MODULE) + /* + * Set aside a chunk of framebuffer memory for the camera + * driver. Someday this driver probably needs a proper allocator + * for fbmem; for now, we just have to do this before the + * framebuffer initializes itself. + * + * As for the size: the engine can handle three frames, + * 16 bits deep, up to VGA resolution. + */ + viapar->shared->vdev->camera_fbmem_size = 3*VGA_HEIGHT*VGA_WIDTH*2; + viapar->fbmem_free -= viapar->shared->vdev->camera_fbmem_size; + viapar->fbmem_used += viapar->shared->vdev->camera_fbmem_size; + viapar->shared->vdev->camera_fbmem_offset = viapar->fbmem_free; +#endif + /* Init AGP and VQ regs */ switch (chip_name) { case UNICHROME_K8M890: diff --git a/trunk/drivers/video/via/via-core.h b/trunk/drivers/video/via/via-core.h index 3d03141d6074..087c562abaec 100644 --- a/trunk/drivers/video/via/via-core.h +++ b/trunk/drivers/video/via/via-core.h @@ -78,6 +78,10 @@ struct viafb_dev { unsigned long fbmem_start; long fbmem_len; void __iomem *fbmem; +#if defined(CONFIG_FB_VIA_CAMERA) || defined(CONFIG_FB_VIA_CAMERA_MODULE) + long camera_fbmem_offset; + long camera_fbmem_size; +#endif /* * The MMIO region for device registers. */ @@ -160,4 +164,10 @@ int viafb_dma_copy_out_sg(unsigned int offset, struct scatterlist *sg, int nsg); #define VDMA_DPRH0 0xe38 #define VDMA_PMR0 (0xe00 + 0x134) /* Pitch mode */ +/* + * Useful stuff that probably belongs somewhere global. + */ +#define VGA_WIDTH 640 +#define VGA_HEIGHT 480 + #endif /* __VIA_CORE_H__ */