All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] video: s3c-fb: Add window positioning support
@ 2011-08-25 19:51 ` Ajay Kumar
  0 siblings, 0 replies; 35+ messages in thread
From: Ajay Kumar @ 2011-08-25 13:54 UTC (permalink / raw)
  To: linux-arm-kernel

These patches are created against "for-next" branch of Kukjin Kim's tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git

This patch adds support for positioning of the FB windows on the LCD screen.

This patchset creates an ioctl and defines a data structure which are
specific to samsung SOCs, to hold the window position.

Just as a note, there are many drivers like mx3fb.c, au1200fb.c and OMAP
seem to be doing window/plane positioning in their driver code.
Is it possible to have this window positioning support at a common place?

For instance, we can have a common struture and ioctl number in 
include/linux/fb.h as below:

	#define FBIOPOS_OVERLAY_WIN    _IOW('F', 0x21, struct fb_overlay_win_pos)

	struct fb_overlay_win_pos {
		__u32 win_pos_x;  /* x-offset of window from LCD(0,0) */
		__u32 win_pos_y;  /* y-offset of window from LCD(0,0) */
	};

where LCD(0,0) means the first pixel of the LCD screen.
Individual drivers can have implementation for this ioctl.

To Kukjin Kim,
  [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for s3c-fb driver

To Paul Mundt, Florian Tobias Schandinat
  [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window positioning

 arch/arm/plat-samsung/include/plat/fb.h |   14 +++++++++++
 drivers/video/s3c-fb.c                  |   37 ++++++++++++++++++++++++++----
 2 files changed, 46 insertions(+), 5 deletions(-)


^ permalink raw reply	[flat|nested] 35+ messages in thread
* RE: [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window positioning
  2011-08-25 19:51   ` Ajay Kumar
@ 2011-08-26  0:44 ` JinGoo Han
  -1 siblings, 0 replies; 35+ messages in thread
From: JinGoo Han @ 2011-08-26  0:44 UTC (permalink / raw)
  To: AJAY KUMAR RAMAKRISHNA SHYMALAMMA,
	linux-samsung-soc@vger.kernel.org, linux-fbdev@vger.kernel.org
  Cc: FlorianSchandinat@gmx.de, lethal@linux-sh.org, Marek Szyprowski,
	ben-linux@fluff.org, BANAJIT GOSWAMI

Hi, Ajay.
> -----Original Message-----
> From: Ajay Kumar [mailto:ajaykumar.rs@samsung.com]
> Sent: Friday, August 26, 2011 4:52 AM
> To: linux-samsung-soc@vger.kernel.org; linux-fbdev@vger.kernel.org; linux-
> arm-kernel@lists.infradead.org
> Cc: FlorianSchandinat@gmx.de; lethal@linux-sh.org; jg1.han@samsung.com;
> m.szyprowski@samsung.com; ben-linux@fluff.org; banajit.g@samsung.com
> Subject: [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window
> positioning
> 
> This patch modifies the existing s3c-fb driver to provide
> flexibility to the user to reposition the framebuffer windows.
> 
> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> Signed-off-by: Banajit Goswami <banajit.g@samsung.com>
> ---
>  drivers/video/s3c-fb.c |   37 ++++++++++++++++++++++++++++++++-----
>  1 files changed, 32 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
> index 0fda252..41179d7 100644
> --- a/drivers/video/s3c-fb.c
> +++ b/drivers/video/s3c-fb.c
> @@ -442,6 +442,7 @@ static int s3c_fb_set_par(struct fb_info *info)
>  	struct fb_var_screeninfo *var = &info->var;
>  	struct s3c_fb_win *win = info->par;
>  	struct s3c_fb *sfb = win->parent;
> +	struct s3cfb_window_pos *winpos = &win->windata->winpos;
>  	void __iomem *regs = sfb->regs;
>  	void __iomem *buf = regs;
>  	int win_no = win->index;
> @@ -539,12 +540,13 @@ static int s3c_fb_set_par(struct fb_info *info)
> 
>  	/* write 'OSD' registers to control position of framebuffer */
> 
> -	data = VIDOSDxA_TOPLEFT_X(0) | VIDOSDxA_TOPLEFT_Y(0);
> +	data = VIDOSDxA_TOPLEFT_X(winpos->win_pos_x) |
> +	       VIDOSDxA_TOPLEFT_Y(winpos->win_pos_y);
>  	writel(data, regs + VIDOSD_A(win_no, sfb->variant));
> 
> -	data = VIDOSDxB_BOTRIGHT_X(s3c_fb_align_word(var->bits_per_pixel,
> -						     var->xres - 1)) |
> -	       VIDOSDxB_BOTRIGHT_Y(var->yres - 1);
> +	data = VIDOSDxB_BOTRIGHT_X((s3c_fb_align_word(var->bits_per_pixel,
> +	       (winpos->win_pos_x + var->xres - 1)))) |
> +	       VIDOSDxB_BOTRIGHT_Y((winpos->win_pos_y + var->yres - 1));
> 
>  	writel(data, regs + VIDOSD_B(win_no, sfb->variant));
> 
> @@ -999,8 +1001,10 @@ static int s3c_fb_ioctl(struct fb_info *info,
> unsigned int cmd,
>  {
>  	struct s3c_fb_win *win = info->par;
>  	struct s3c_fb *sfb = win->parent;
> -	int ret;
> +	struct s3cfb_window_pos *winpos = &win->windata->winpos;
> +	int ret = 0;
>  	u32 crtc;
> +	u32 data;
> 
>  	switch (cmd) {
>  	case FBIO_WAITFORVSYNC:
> @@ -1011,6 +1015,29 @@ static int s3c_fb_ioctl(struct fb_info *info,
> unsigned int cmd,
> 
>  		ret = s3c_fb_wait_for_vsync(sfb, crtc);
>  		break;
> +	case S3CFB_WIN_POSITION:
> +		if (copy_from_user(winpos, (u32 __user *)arg,
> +					sizeof(struct s3cfb_window_pos))) {
> +			ret = -EFAULT;
> +			break;
> +		}
> +
> +		shadow_protect_win(win, 1);
> +
> +		/* write 'OSD' registers to set position of the window */
> +		data = VIDOSDxA_TOPLEFT_X(winpos->win_pos_x) |
> +		       VIDOSDxA_TOPLEFT_Y(winpos->win_pos_y);
> +		writel(data, sfb->regs + VIDOSD_A(win->index, sfb->variant));
> +
> +		data = VIDOSDxB_BOTRIGHT_X(
> +				s3c_fb_align_word(info->var.bits_per_pixel,
> +				(winpos->win_pos_x + info->var.xres - 1)));
> +		data |=	VIDOSDxB_BOTRIGHT_Y(winpos->win_pos_y +
> +				info->var.yres - 1);
> +		writel(data, sfb->regs + VIDOSD_B(win->index, sfb->variant));
> +
> +		shadow_protect_win(win, 0);
> +		break;
Can you move this to separate function?
In my opinion, it would be better for readability and consistency.
Also, FBIO_WAITFORVSYNC has been implemented in this way.
		ret = s3c_fb_wait_for_vsync(sfb, crtc);
How about adding a function 's3c_fb_set_window_position' for this as belows?
+int s3c_fb_set_window_position(struct fb_info *info,
+				struct s3cfb_window_pos winpos)
		........
+	case S3CFB_WIN_POSITION:
+		if (copy_from_user(winpos, (u32 __user *)arg,
+					sizeof(struct s3cfb_window_pos))) {
+			ret = -EFAULT;
+			break;
+		}
+		ret = s3c_fb_set_window_position(info, winpos);
+		break;
>  	default:
>  		ret = -ENOTTY;
>  	}
> --
> 1.7.0.4



^ permalink raw reply	[flat|nested] 35+ messages in thread
* RE: [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for s3c-fb driver
  2011-08-25 19:51   ` Ajay Kumar
@ 2011-08-26  5:56 ` Jingoo Han
  -1 siblings, 0 replies; 35+ messages in thread
From: Jingoo Han @ 2011-08-26  5:56 UTC (permalink / raw)
  To: AJAY KUMAR RAMAKRISHNA SHYMALAMMA
  Cc: linux-samsung-soc@vger.kernel.org, linux-fbdev@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, FlorianSchandinat@gmx.de,
	lethal@linux-sh.org, Jingoo Han, Marek Szyprowski,
	ben-linux@fluff.org, BANAJIT GOSWAMI


Hi, Ajay.
> -----Original Message-----
> From: Ajay Kumar [mailto:ajaykumar.rs@samsung.com]
> Sent: Friday, August 26, 2011 4:52 AM
> To: linux-samsung-soc@vger.kernel.org; linux-fbdev@vger.kernel.org; linux-
> arm-kernel@lists.infradead.org
> Cc: FlorianSchandinat@gmx.de; lethal@linux-sh.org; jg1.han@samsung.com;
> m.szyprowski@samsung.com; ben-linux@fluff.org; banajit.g@samsung.com
> Subject: [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for s3c-
> fb driver
> 
> This patch:
> 	--adds a data-structure to hold the current position of windows.
> 	--adds an ioctl number to support dynamic positioning the windows.
> 
> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> Signed-off-by: Banajit Goswami <banajit.g@samsung.com>
> ---
>  arch/arm/plat-samsung/include/plat/fb.h |   14 ++++++++++++++
>  1 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/plat-samsung/include/plat/fb.h b/arch/arm/plat-
> samsung/include/plat/fb.h
> index bd79c0a..77ed75c 100644
> --- a/arch/arm/plat-samsung/include/plat/fb.h
> +++ b/arch/arm/plat-samsung/include/plat/fb.h
> @@ -22,6 +22,18 @@
>   */
>  #define S3C_FB_MAX_WIN	(5)
> 
> +/* struct s3cfb_window_pos
> + * @win_pos_x: X-coordinate of window from the left.
> + * @win_pos_y: Y-coordinate of window from the top.
> + */
> +struct s3cfb_window_pos {
> +	int	win_pos_x;
> +	int	win_pos_y;
> +};
> +
> +/* Custom ioctl */
> +#define S3CFB_WIN_POSITION	_IOW('F', 1, struct s3cfb_window_pos)
Can you change the number from 1 to 203 as follows?
+#define S3CFB_WIN_POSITION	_IOW('F', 203, struct s3cfb_window_pos)
We already use this number as S3CFB_WIN_POSITION.
> +
>  /**
>   * struct s3c_fb_pd_win - per window setup data
>   * @win_mode: The display parameters to initialise (not for window 0)
> @@ -35,6 +47,8 @@ struct s3c_fb_pd_win {
>  	unsigned short		max_bpp;
>  	unsigned short		virtual_x;
>  	unsigned short		virtual_y;
> +
> +	struct s3cfb_window_pos		winpos;
>  };
> 
>  /**
> --
> 1.7.0.4



^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2011-09-18 20:39 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-25 13:54 [PATCH 0/2] video: s3c-fb: Add window positioning support Ajay Kumar
2011-08-25 19:51 ` Ajay Kumar
2011-08-25 19:51 ` Ajay Kumar
2011-08-25 13:54 ` [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for s3c-fb Ajay Kumar
2011-08-25 19:51   ` [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for s3c-fb driver Ajay Kumar
2011-08-25 19:51   ` Ajay Kumar
2011-08-25 13:54 ` [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window Ajay Kumar
2011-08-25 19:51   ` [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window positioning Ajay Kumar
2011-08-25 19:51   ` Ajay Kumar
2011-09-01 16:45 ` [PATCH 0/2] video: s3c-fb: Add window positioning support Florian Tobias Schandinat
2011-09-01 16:45   ` Florian Tobias Schandinat
2011-09-01 16:45   ` Florian Tobias Schandinat
2011-09-02  9:58   ` Tomi Valkeinen
2011-09-02  9:58     ` Tomi Valkeinen
2011-09-02  9:58     ` Tomi Valkeinen
2011-09-06 14:16   ` Ajay kumar
2011-09-06 14:28     ` Ajay kumar
2011-09-06 14:16     ` Ajay kumar
2011-09-07 15:31   ` Laurent Pinchart
2011-09-07 15:31     ` Laurent Pinchart
2011-09-07 15:31     ` Laurent Pinchart
2011-09-07 15:31     ` Laurent Pinchart
2011-09-18 19:29     ` Florian Tobias Schandinat
2011-09-18 19:29       ` Florian Tobias Schandinat
2011-09-18 19:29       ` Florian Tobias Schandinat
2011-09-18 20:39       ` Laurent Pinchart
2011-09-18 20:39         ` Laurent Pinchart
2011-09-18 20:39         ` Laurent Pinchart
  -- strict thread matches above, loose matches on Subject: below --
2011-08-26  0:44 [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window positioning JinGoo Han
2011-08-26  0:44 ` [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window JinGoo Han
2011-08-26  5:21 ` [PATCH 2/2] video: s3c-fb: Modify s3c-fb driver to support window positioning Ajay kumar
2011-08-26  5:33   ` Ajay kumar
2011-08-26  5:21   ` Ajay kumar
2011-08-26  5:56 [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for s3c-fb driver Jingoo Han
2011-08-26  5:56 ` [PATCH 1/2] ARM: SAMSUNG: Add Window Positioning Support for Jingoo Han

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.