Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d40f29bf authored by Michael Hennerich's avatar Michael Hennerich Committed by Linus Torvalds
Browse files

fbdev: bf54x-lq043fb/bfin-t350mcqb-fb: drop custom mmap() handler



The common Blackfin code implements the get_fb_unmapped_area() function,
so we no longer need to have our own mmap() handler.  The common fb code
will take care of everything for us now.

Signed-off-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 0d3580d4
Loading
Loading
Loading
Loading
+0 −30
Original line number Original line Diff line number Diff line
@@ -82,7 +82,6 @@ struct bfin_bf54xfb_info {
	unsigned char *fb_buffer;	/* RGB Buffer */
	unsigned char *fb_buffer;	/* RGB Buffer */


	dma_addr_t dma_handle;
	dma_addr_t dma_handle;
	int lq043_mmap;
	int lq043_open_cnt;
	int lq043_open_cnt;
	int irq;
	int irq;
	spinlock_t lock;	/* lock */
	spinlock_t lock;	/* lock */
@@ -316,7 +315,6 @@ static int bfin_bf54x_fb_release(struct fb_info *info, int user)
	spin_lock(&fbi->lock);
	spin_lock(&fbi->lock);


	fbi->lq043_open_cnt--;
	fbi->lq043_open_cnt--;
	fbi->lq043_mmap = 0;


	if (fbi->lq043_open_cnt <= 0) {
	if (fbi->lq043_open_cnt <= 0) {


@@ -374,33 +372,6 @@ static int bfin_bf54x_fb_check_var(struct fb_var_screeninfo *var,
	return 0;
	return 0;
}
}


static int bfin_bf54x_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
{

	struct bfin_bf54xfb_info *fbi = info->par;

	if (fbi->lq043_mmap)
		return -1;

	spin_lock(&fbi->lock);
	fbi->lq043_mmap = 1;
	spin_unlock(&fbi->lock);

	vma->vm_start = (unsigned long)(fbi->fb_buffer);

	vma->vm_end = vma->vm_start + info->fix.smem_len;
	/* For those who don't understand how mmap works, go read
	 *   Documentation/nommu-mmap.txt.
	 * For those that do, you will know that the VM_MAYSHARE flag
	 * must be set in the vma->vm_flags structure on noMMU
	 *   Other flags can be set, and are documented in
	 *   include/linux/mm.h
	 */
	vma->vm_flags |=  VM_MAYSHARE | VM_SHARED;

	return 0;
}

int bfin_bf54x_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
int bfin_bf54x_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
{
{
	if (nocursor)
	if (nocursor)
@@ -452,7 +423,6 @@ static struct fb_ops bfin_bf54x_fb_ops = {
	.fb_fillrect = cfb_fillrect,
	.fb_fillrect = cfb_fillrect,
	.fb_copyarea = cfb_copyarea,
	.fb_copyarea = cfb_copyarea,
	.fb_imageblit = cfb_imageblit,
	.fb_imageblit = cfb_imageblit,
	.fb_mmap = bfin_bf54x_fb_mmap,
	.fb_cursor = bfin_bf54x_fb_cursor,
	.fb_cursor = bfin_bf54x_fb_cursor,
	.fb_setcolreg = bfin_bf54x_fb_setcolreg,
	.fb_setcolreg = bfin_bf54x_fb_setcolreg,
};
};
+0 −29
Original line number Original line Diff line number Diff line
@@ -87,7 +87,6 @@ struct bfin_t350mcqbfb_info {
	struct device *dev;
	struct device *dev;
	unsigned char *fb_buffer;	/* RGB Buffer */
	unsigned char *fb_buffer;	/* RGB Buffer */
	dma_addr_t dma_handle;
	dma_addr_t dma_handle;
	int lq043_mmap;
	int lq043_open_cnt;
	int lq043_open_cnt;
	int irq;
	int irq;
	spinlock_t lock;	/* lock */
	spinlock_t lock;	/* lock */
@@ -235,7 +234,6 @@ static int bfin_t350mcqb_fb_release(struct fb_info *info, int user)
	spin_lock(&fbi->lock);
	spin_lock(&fbi->lock);


	fbi->lq043_open_cnt--;
	fbi->lq043_open_cnt--;
	fbi->lq043_mmap = 0;


	if (fbi->lq043_open_cnt <= 0) {
	if (fbi->lq043_open_cnt <= 0) {
		bfin_t350mcqb_disable_ppi();
		bfin_t350mcqb_disable_ppi();
@@ -293,32 +291,6 @@ static int bfin_t350mcqb_fb_check_var(struct fb_var_screeninfo *var,
	return 0;
	return 0;
}
}


static int bfin_t350mcqb_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
{
	struct bfin_t350mcqbfb_info *fbi = info->par;

	if (fbi->lq043_mmap)
		return -1;

	spin_lock(&fbi->lock);
	fbi->lq043_mmap = 1;
	spin_unlock(&fbi->lock);

	vma->vm_start = (unsigned long)(fbi->fb_buffer + ACTIVE_VIDEO_MEM_OFFSET);

	vma->vm_end = vma->vm_start + info->fix.smem_len;
	/* For those who don't understand how mmap works, go read
	 *   Documentation/nommu-mmap.txt.
	 * For those that do, you will know that the VM_MAYSHARE flag
	 * must be set in the vma->vm_flags structure on noMMU
	 *   Other flags can be set, and are documented in
	 *   include/linux/mm.h
	 */
	vma->vm_flags |= VM_MAYSHARE | VM_SHARED;

	return 0;
}

int bfin_t350mcqb_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
int bfin_t350mcqb_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
{
{
	if (nocursor)
	if (nocursor)
@@ -370,7 +342,6 @@ static struct fb_ops bfin_t350mcqb_fb_ops = {
	.fb_fillrect = cfb_fillrect,
	.fb_fillrect = cfb_fillrect,
	.fb_copyarea = cfb_copyarea,
	.fb_copyarea = cfb_copyarea,
	.fb_imageblit = cfb_imageblit,
	.fb_imageblit = cfb_imageblit,
	.fb_mmap = bfin_t350mcqb_fb_mmap,
	.fb_cursor = bfin_t350mcqb_fb_cursor,
	.fb_cursor = bfin_t350mcqb_fb_cursor,
	.fb_setcolreg = bfin_t350mcqb_fb_setcolreg,
	.fb_setcolreg = bfin_t350mcqb_fb_setcolreg,
};
};