All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <4C2DA845.7070309@samsung.com>

diff --git a/a/1.1.hdr b/a/1.1.hdr
deleted file mode 100644
index 8121da0..0000000
--- a/a/1.1.hdr
+++ /dev/null
@@ -1,2 +0,0 @@
-Content-type: text/plain; charset=EUC-KR
-Content-transfer-encoding: 7BIT
diff --git a/a/1.2.bin b/a/1.2.bin
deleted file mode 100644
index 38f43cc..0000000
--- a/a/1.2.bin
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-  <meta content="text/html; charset=EUC-KR" http-equiv="Content-Type">
-</head>
-<body bgcolor="#ffffff" text="#000000">
-this patch adds features for supportting MIPI Interface and CPU mode to
-s3c-fb.c<br>
-<br>
-for this, I added following features.<br>
-. add struct fb_cmdmode<br>
-&nbsp; - this structure would be used for cpu interface.<br>
-. add interface_mode to struct s3c_fb_platdata.<br>
-&nbsp; - this variable would be used to distinguishe whether CPU or RGB mode.<br>
-. add two functions for cpu interface.<br>
-&nbsp; - s3c_fb_set_trigger would be used for to send trigger signal to FIMD.<br>
-&nbsp; - s3c_fb_is_i80_frame_done would be used to check framedone status.<br>
-. add a function for setting timing.<br>
-&nbsp; - I added this function because it have to distinguishe interfaces.<br>
-&nbsp;&nbsp;&nbsp; (CPU or RGB mode)<br>
-. add register definitions for using MIPI-DSI mode.<br>
-<br>
-Signed-off-by: InKi Dae &lt;<a href="mailto:p.osciak@samsung.com">inki.dae@samsung.com</a>&gt;<br>
-Signed-off-by: Kyungmin Park &lt;<a
- href="mailto:kyungmin.park@samsung.com">kyungmin.park@samsung.com</a>&gt;<br>
----<br>
-<br>
-<pre>diff --git a/arch/arm/plat-samsung/include/plat/fb.h b/arch/arm/plat-samsung/include/plat/fb.h
-index 27d3b49..b0204f8 100644
---- a/arch/arm/plat-samsung/include/plat/fb.h
-+++ b/arch/arm/plat-samsung/include/plat/fb.h
-@@ -22,6 +22,23 @@
-  */
- #define S3C_FB_MAX_WIN	(5)
- 
-+enum {
-+	FIMD_VIDEO_MODE = 0,
-+	FIMD_COMMAND_MODE
-+};
-+
-+struct fb_cmdmode {
-+	const char *name;	/* optional */
-+	u32 refresh;		/* optional */
-+	u32 xres;
-+	u32 yres;
-+	u32 pixclock;
-+	u32 cs_setup;
-+	u32 wr_setup;
-+	u32 wr_act;
-+	u32 wr_hold;
-+};
-+
- /**
-  * struct s3c_fb_pd_win - per window setup data
-  * @win_mode: The display parameters to initialise (not for window 0)
-@@ -30,6 +47,7 @@
-  */
- struct s3c_fb_pd_win {
- 	struct fb_videomode	win_mode;
-+	struct fb_cmdmode	cmd_mode;
- 
- 	unsigned short		default_bpp;
- 	unsigned short		max_bpp;
-@@ -42,6 +60,7 @@ struct s3c_fb_pd_win {
-  * @setup_gpio: Setup the external GPIO pins to the right state to transfer
-  *		the data from the display system to the connected display
-  *		device.
-+ * @interface_mode: cpu mode or rgb mode.
-  * @vidcon0: The base vidcon0 values to control the panel data format.
-  * @vidcon1: The base vidcon1 values to control the panel data output.
-  * @win: The setup data for each hardware window, or NULL for unused.
-@@ -57,6 +76,7 @@ struct s3c_fb_platdata {
- 	void	(*setup_gpio)(void);
- 
- 	struct s3c_fb_pd_win	*win[S3C_FB_MAX_WIN];
-+	u32			interface_mode;
- 
- 	u32			 vidcon0;
- 	u32			 vidcon1;
-@@ -91,4 +111,10 @@ extern void s5pc100_fb_gpio_setup_24bpp(void);
-  */
- extern void s5pv210_fb_gpio_setup_24bpp(void);
- 
-+struct fb_info;
-+
-+extern void s3c_fb_set_trigger(struct fb_info *info);
-+
-+extern int s3c_fb_is_i80_frame_done(struct fb_info *info);
-+
- #endif /* __PLAT_S3C_FB_H */
-diff --git a/arch/arm/plat-samsung/include/plat/regs-fb-v4.h b/arch/arm/plat-samsung/include/plat/regs-fb-v4.h
-index 0f43599..4d5954b 100644
---- a/arch/arm/plat-samsung/include/plat/regs-fb-v4.h
-+++ b/arch/arm/plat-samsung/include/plat/regs-fb-v4.h
-@@ -135,6 +135,22 @@
- 
- #define WPALCON					(0x1A0)
- 
-+/* For CPU interface. */
-+#define TRIGCON						(0x1a4)
-+#define TRGMODE_I80_ENABLE				(1 &lt;&lt; 0)
-+#define SWTRGCMD_I80_TRIGGER				(1 &lt;&lt; 1)
-+#define SWFRSTATUS_I80					(1 &lt;&lt; 2)
-+
-+#define I80IFCONA0					(0x1b0)
-+#define I80IFEN_ENABLE					(1 &lt;&lt; 0)
-+#define RSPOL_HIGH					(1 &lt;&lt; 2)
-+#define LCD_WR_HOLD(x)					(((x) &amp; 0xf) &lt;&lt; 4)
-+#define LCD_WR_ACT(x)					(((x) &amp; 0xf) &lt;&lt; 8)
-+#define LCD_WR_SETUP(x)					(((x) &amp; 0xf) &lt;&lt; 12)
-+#define LCD_CS_SETUP(x)					(((x) &amp; 0xf) &lt;&lt; 16)
-+
-+#define I80IFCONB0					(0x1b8)
-+
- /* Palette control */
- /* Note for S5PC100: you can still use those macros on WPALCON (aka WPALCON_L),
-  * but make sure that WPALCON_H W2PAL-W4PAL entries are zeroed out */
-diff --git a/arch/arm/plat-samsung/include/plat/regs-fb.h b/arch/arm/plat-samsung/include/plat/regs-fb.h
-index 0ef806e..70342aa 100644
---- a/arch/arm/plat-samsung/include/plat/regs-fb.h
-+++ b/arch/arm/plat-samsung/include/plat/regs-fb.h
-@@ -38,6 +38,7 @@
- #define VIDCON0_VIDOUT_TV			(0x1 &lt;&lt; 26)
- #define VIDCON0_VIDOUT_I80_LDI0			(0x2 &lt;&lt; 26)
- #define VIDCON0_VIDOUT_I80_LDI1			(0x3 &lt;&lt; 26)
-+#define VIDCON0_DSI_EN_ENABLE			(1 &lt;&lt; 30)
- 
- #define VIDCON0_L1_DATA_MASK			(0x7 &lt;&lt; 23)
- #define VIDCON0_L1_DATA_SHIFT			(23)
-diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
-index 9682ecc..28d34ef 100644
---- a/drivers/video/s3c-fb.c
-+++ b/drivers/video/s3c-fb.c
-@@ -255,6 +255,73 @@ static int s3c_fb_align_word(unsigned int bpp, unsigned int pix)
- }
- 
- /**
-+ * s3c_fb_set_trigger - fimd trigger based on cpu interface.
-+ */
-+void s3c_fb_set_trigger(struct fb_info *info)
-+{
-+	struct s3c_fb_win *win = info-&gt;par;
-+	struct s3c_fb *sfb = win-&gt;parent;
-+	void __iomem *regs = sfb-&gt;regs;
-+	u32 reg = 0;
-+
-+	reg = readl(regs + TRIGCON);
-+
-+	reg |= TRGMODE_I80_ENABLE | SWTRGCMD_I80_TRIGGER;
-+
-+	writel(reg, regs + TRIGCON);
-+}
-+
-+/**
-+ * s3c_fb_is_i80_frame_done - get i80 frame done status.
-+ */
-+int s3c_fb_is_i80_frame_done(struct fb_info *info)
-+{
-+	struct s3c_fb_win *win = info-&gt;par;
-+	struct s3c_fb *sfb = win-&gt;parent;
-+	void __iomem *regs = sfb-&gt;regs;
-+	u32 reg = 0;
-+
-+	reg =  readl(regs + TRIGCON);
-+
-+	return (((reg &amp; SWFRSTATUS_I80) == SWFRSTATUS_I80) ? 1 : 0);
-+}
-+
-+/**
-+ * s3c_fb_set_cpu_timing - set cpu timing.
-+ */
-+static void s3c_fb_set_timing(struct s3c_fb *sfb, struct fb_info *info)
-+{
-+	struct s3c_fb_win *win = info-&gt;par;
-+	struct s3c_fb_pd_win *windata = win-&gt;windata;
-+	struct fb_var_screeninfo *var = &amp;info-&gt;var;
-+	void __iomem *regs = sfb-&gt;regs;
-+	u32 reg = 0;
-+
-+	if (sfb-&gt;pdata-&gt;interface_mode == FIMD_VIDEO_MODE) {
-+		reg = VIDTCON0_VBPD(var-&gt;upper_margin - 1) |
-+		       VIDTCON0_VFPD(var-&gt;lower_margin - 1) |
-+		       VIDTCON0_VSPW(var-&gt;vsync_len - 1);
-+
-+		writel(reg, regs + VIDTCON0);
-+
-+		reg = VIDTCON1_HBPD(var-&gt;left_margin - 1) |
-+		       VIDTCON1_HFPD(var-&gt;right_margin - 1) |
-+		       VIDTCON1_HSPW(var-&gt;hsync_len - 1);
-+
-+		writel(reg, regs + VIDTCON1);
-+	} else if (sfb-&gt;pdata-&gt;interface_mode == FIMD_COMMAND_MODE) {
-+		reg = LCD_CS_SETUP(windata-&gt;cmd_mode.cs_setup) |
-+			LCD_WR_SETUP(windata-&gt;cmd_mode.wr_setup) |
-+			LCD_WR_ACT(windata-&gt;cmd_mode.wr_act) |
-+			LCD_WR_HOLD(windata-&gt;cmd_mode.wr_hold) |
-+			I80IFEN_ENABLE;
-+
-+		writel(reg, regs + I80IFCONA0);
-+	} else
-+		dev_warn(sfb-&gt;dev, "wrong interface type.\n");
-+}
-+
-+/**
-  * s3c_fb_set_par() - framebuffer request to set new framebuffer state.
-  * @info: The framebuffer to change.
-  *
-@@ -318,17 +385,7 @@ static int s3c_fb_set_par(struct fb_info *info)
- 		data |= VIDCON0_ENVID | VIDCON0_ENVID_F;
- 		writel(data, regs + VIDCON0);
- 
--		data = VIDTCON0_VBPD(var-&gt;upper_margin - 1) |
--		       VIDTCON0_VFPD(var-&gt;lower_margin - 1) |
--		       VIDTCON0_VSPW(var-&gt;vsync_len - 1);
--
--		writel(data, regs + VIDTCON0);
--
--		data = VIDTCON1_HBPD(var-&gt;left_margin - 1) |
--		       VIDTCON1_HFPD(var-&gt;right_margin - 1) |
--		       VIDTCON1_HSPW(var-&gt;hsync_len - 1);
--
--		writel(data, regs + VIDTCON1);
-+		s3c_fb_set_timing(sfb, info);
- 
- 		data = VIDTCON2_LINEVAL(var-&gt;yres - 1) |
- 		       VIDTCON2_HOZVAL(var-&gt;xres - 1);
-@@ -744,7 +801,8 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
- 				      struct s3c_fb_win **res)
- {
- 	struct fb_var_screeninfo *var;
--	struct fb_videomode *initmode;
-+	struct fb_videomode *videomode;
-+	struct fb_cmdmode *cmdmode;
- 	struct s3c_fb_pd_win *windata;
- 	struct s3c_fb_win *win;
- 	struct fb_info *fbinfo;
-@@ -763,11 +821,20 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
- 	}
- 
- 	windata = sfb-&gt;pdata-&gt;win[win_no];
--	initmode = &amp;windata-&gt;win_mode;
- 
- 	WARN_ON(windata-&gt;max_bpp == 0);
--	WARN_ON(windata-&gt;win_mode.xres == 0);
--	WARN_ON(windata-&gt;win_mode.yres == 0);
-+
-+	if (sfb-&gt;pdata-&gt;interface_mode == FIMD_VIDEO_MODE) {
-+		WARN_ON(windata-&gt;win_mode.xres == 0);
-+		WARN_ON(windata-&gt;win_mode.yres == 0);
-+
-+		videomode = &amp;windata-&gt;win_mode;
-+	} else {
-+		WARN_ON(windata-&gt;cmd_mode.xres == 0);
-+		WARN_ON(windata-&gt;cmd_mode.yres == 0);
-+
-+		cmdmode = &amp;windata-&gt;cmd_mode;
-+	}
- 
- 	win = fbinfo-&gt;par;
- 	var = &amp;fbinfo-&gt;var;
-@@ -777,18 +844,19 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
- 	win-&gt;index = win_no;
- 	win-&gt;palette_buffer = (u32 *)(win + 1);
- 
--	ret = s3c_fb_alloc_memory(sfb, win);
--	if (ret) {
--		dev_err(sfb-&gt;dev, "failed to allocate display memory\n");
--		return ret;
-+	/* setup the initial video or cpu mode from the window */
-+	if (sfb-&gt;pdata-&gt;interface_mode == FIMD_VIDEO_MODE)
-+		fb_videomode_to_var(&amp;fbinfo-&gt;var, videomode);
-+	else {
-+		var-&gt;xres = cmdmode-&gt;xres;
-+		var-&gt;yres = cmdmode-&gt;yres;
-+		var-&gt;xres_virtual = cmdmode-&gt;xres;
-+		var-&gt;yres_virtual = cmdmode-&gt;yres;
-+		var-&gt;xoffset = 0;
-+		var-&gt;yoffset = 0;
-+		var-&gt;pixclock = cmdmode-&gt;pixclock;
- 	}
- 
--	/* setup the r/b/g positions for the window's palette */
--	s3c_fb_init_palette(win_no, &amp;win-&gt;palette);
--
--	/* setup the initial video mode from the window */
--	fb_videomode_to_var(&amp;fbinfo-&gt;var, initmode);
--
- 	fbinfo-&gt;fix.type	= FB_TYPE_PACKED_PIXELS;
- 	fbinfo-&gt;fix.accel	= FB_ACCEL_NONE;
- 	fbinfo-&gt;var.activate	= FB_ACTIVATE_NOW;
-@@ -798,6 +866,15 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
- 	fbinfo-&gt;flags		= FBINFO_FLAG_DEFAULT;
- 	fbinfo-&gt;pseudo_palette  = &amp;win-&gt;pseudo_palette;
- 
-+	ret = s3c_fb_alloc_memory(sfb, win);
-+	if (ret) {
-+		dev_err(sfb-&gt;dev, "failed to allocate display memory\n");
-+		return ret;
-+	}
-+
-+	/* setup the r/b/g positions for the window's palette */
-+	s3c_fb_init_palette(win_no, &amp;win-&gt;palette);
-+
- 	/* prepare to actually start the framebuffer */
- 
- 	ret = s3c_fb_check_var(&amp;fbinfo-&gt;var, fbinfo);
-</pre>
-<br>
-</body>
-</html>
diff --git a/a/1.2.hdr b/a/1.2.hdr
deleted file mode 100644
index 17e3fb4..0000000
--- a/a/1.2.hdr
+++ /dev/null
@@ -1,2 +0,0 @@
-Content-type: text/html; charset=EUC-KR
-Content-transfer-encoding: 7BIT
diff --git a/a/1.1.txt b/N1/1.txt
similarity index 96%
rename from a/1.1.txt
rename to N1/1.txt
index 2058137..47d5ee6 100644
--- a/a/1.1.txt
+++ b/N1/1.txt
@@ -14,8 +14,8 @@ for this, I added following features.
 (CPU or RGB mode)
 . add register definitions for using MIPI-DSI mode.
 
-Signed-off-by: InKi Dae <inki.dae@samsung.com <mailto:p.osciak@samsung.com>>
-Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com
+Signed-off-by: InKi Dae <inki.dae at samsung.com <mailto:p.osciak@samsung.com>>
+Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com
 <mailto:kyungmin.park@samsung.com>>
 ---
 
@@ -298,3 +298,8 @@ index 9682ecc..28d34ef 100644
  	/* prepare to actually start the framebuffer */
  
  	ret = s3c_fb_check_var(&fbinfo->var, fbinfo);
+
+
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100702/c3e9c266/attachment-0001.html>
diff --git a/a/2.hdr b/a/2.hdr
deleted file mode 100644
index 4b86001..0000000
--- a/a/2.hdr
+++ /dev/null
@@ -1,4 +0,0 @@
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
diff --git a/a/2.txt b/a/2.txt
deleted file mode 100644
index 8133cf0..0000000
--- a/a/2.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-_______________________________________________
-linux-arm-kernel mailing list
-linux-arm-kernel@lists.infradead.org
-http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff --git a/a/content_digest b/N1/content_digest
index 2dbb5ba..2bf35ae 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,14 +1,10 @@
  "ref\04C29AF72.6090200@samsung.com\0"
  "ref\04C29B4BA.4090903@samsung.com\0"
- "From\0InKi Dae <inki.dae@samsung.com>\0"
+ "From\0inki.dae@samsung.com (InKi Dae)\0"
  "Subject\0[PATCH 1/2] S5PV210: FB: Add MIPI-DSI and CPU Interface features.\0"
  "Date\0Fri, 02 Jul 2010 17:50:13 +0900\0"
- "To\0linux-arm-kernel@lists.infradead.org"
-  linux-fbdev-devel@lists.sourceforge.net
-  akpm@linux-foundation.org
-  Ben Dooks <ben-linux@fluff.org>
- " kmpark@infradead.org\0"
- "\02:1.1\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
+ "\00:1\0"
  "b\0"
  "this patch adds features for supportting MIPI Interface and CPU mode to\n"
  "s3c-fb.c\n"
@@ -26,8 +22,8 @@
  "(CPU or RGB mode)\n"
  ". add register definitions for using MIPI-DSI mode.\n"
  "\n"
- "Signed-off-by: InKi Dae <inki.dae@samsung.com <mailto:p.osciak@samsung.com>>\n"
- "Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com\n"
+ "Signed-off-by: InKi Dae <inki.dae at samsung.com <mailto:p.osciak@samsung.com>>\n"
+ "Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com\n"
  "<mailto:kyungmin.park@samsung.com>>\n"
  "---\n"
  "\n"
@@ -309,324 +305,11 @@
  "+\n"
  " \t/* prepare to actually start the framebuffer */\n"
  " \n"
- " \tret = s3c_fb_check_var(&fbinfo->var, fbinfo);"
- "\02:1.2\0"
- "b\0"
- "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"
- "<html>\n"
- "<head>\n"
- "  <meta content=\"text/html; charset=EUC-KR\" http-equiv=\"Content-Type\">\n"
- "</head>\n"
- "<body bgcolor=\"#ffffff\" text=\"#000000\">\n"
- "this patch adds features for supportting MIPI Interface and CPU mode to\n"
- "s3c-fb.c<br>\n"
- "<br>\n"
- "for this, I added following features.<br>\n"
- ". add struct fb_cmdmode<br>\n"
- "&nbsp; - this structure would be used for cpu interface.<br>\n"
- ". add interface_mode to struct s3c_fb_platdata.<br>\n"
- "&nbsp; - this variable would be used to distinguishe whether CPU or RGB mode.<br>\n"
- ". add two functions for cpu interface.<br>\n"
- "&nbsp; - s3c_fb_set_trigger would be used for to send trigger signal to FIMD.<br>\n"
- "&nbsp; - s3c_fb_is_i80_frame_done would be used to check framedone status.<br>\n"
- ". add a function for setting timing.<br>\n"
- "&nbsp; - I added this function because it have to distinguishe interfaces.<br>\n"
- "&nbsp;&nbsp;&nbsp; (CPU or RGB mode)<br>\n"
- ". add register definitions for using MIPI-DSI mode.<br>\n"
- "<br>\n"
- "Signed-off-by: InKi Dae &lt;<a href=\"mailto:p.osciak@samsung.com\">inki.dae@samsung.com</a>&gt;<br>\n"
- "Signed-off-by: Kyungmin Park &lt;<a\n"
- " href=\"mailto:kyungmin.park@samsung.com\">kyungmin.park@samsung.com</a>&gt;<br>\n"
- "---<br>\n"
- "<br>\n"
- "<pre>diff --git a/arch/arm/plat-samsung/include/plat/fb.h b/arch/arm/plat-samsung/include/plat/fb.h\n"
- "index 27d3b49..b0204f8 100644\n"
- "--- a/arch/arm/plat-samsung/include/plat/fb.h\n"
- "+++ b/arch/arm/plat-samsung/include/plat/fb.h\n"
- "@@ -22,6 +22,23 @@\n"
- "  */\n"
- " #define S3C_FB_MAX_WIN\t(5)\n"
- " \n"
- "+enum {\n"
- "+\tFIMD_VIDEO_MODE = 0,\n"
- "+\tFIMD_COMMAND_MODE\n"
- "+};\n"
- "+\n"
- "+struct fb_cmdmode {\n"
- "+\tconst char *name;\t/* optional */\n"
- "+\tu32 refresh;\t\t/* optional */\n"
- "+\tu32 xres;\n"
- "+\tu32 yres;\n"
- "+\tu32 pixclock;\n"
- "+\tu32 cs_setup;\n"
- "+\tu32 wr_setup;\n"
- "+\tu32 wr_act;\n"
- "+\tu32 wr_hold;\n"
- "+};\n"
- "+\n"
- " /**\n"
- "  * struct s3c_fb_pd_win - per window setup data\n"
- "  * @win_mode: The display parameters to initialise (not for window 0)\n"
- "@@ -30,6 +47,7 @@\n"
- "  */\n"
- " struct s3c_fb_pd_win {\n"
- " \tstruct fb_videomode\twin_mode;\n"
- "+\tstruct fb_cmdmode\tcmd_mode;\n"
- " \n"
- " \tunsigned short\t\tdefault_bpp;\n"
- " \tunsigned short\t\tmax_bpp;\n"
- "@@ -42,6 +60,7 @@ struct s3c_fb_pd_win {\n"
- "  * @setup_gpio: Setup the external GPIO pins to the right state to transfer\n"
- "  *\t\tthe data from the display system to the connected display\n"
- "  *\t\tdevice.\n"
- "+ * @interface_mode: cpu mode or rgb mode.\n"
- "  * @vidcon0: The base vidcon0 values to control the panel data format.\n"
- "  * @vidcon1: The base vidcon1 values to control the panel data output.\n"
- "  * @win: The setup data for each hardware window, or NULL for unused.\n"
- "@@ -57,6 +76,7 @@ struct s3c_fb_platdata {\n"
- " \tvoid\t(*setup_gpio)(void);\n"
- " \n"
- " \tstruct s3c_fb_pd_win\t*win[S3C_FB_MAX_WIN];\n"
- "+\tu32\t\t\tinterface_mode;\n"
- " \n"
- " \tu32\t\t\t vidcon0;\n"
- " \tu32\t\t\t vidcon1;\n"
- "@@ -91,4 +111,10 @@ extern void s5pc100_fb_gpio_setup_24bpp(void);\n"
- "  */\n"
- " extern void s5pv210_fb_gpio_setup_24bpp(void);\n"
- " \n"
- "+struct fb_info;\n"
- "+\n"
- "+extern void s3c_fb_set_trigger(struct fb_info *info);\n"
- "+\n"
- "+extern int s3c_fb_is_i80_frame_done(struct fb_info *info);\n"
- "+\n"
- " #endif /* __PLAT_S3C_FB_H */\n"
- "diff --git a/arch/arm/plat-samsung/include/plat/regs-fb-v4.h b/arch/arm/plat-samsung/include/plat/regs-fb-v4.h\n"
- "index 0f43599..4d5954b 100644\n"
- "--- a/arch/arm/plat-samsung/include/plat/regs-fb-v4.h\n"
- "+++ b/arch/arm/plat-samsung/include/plat/regs-fb-v4.h\n"
- "@@ -135,6 +135,22 @@\n"
- " \n"
- " #define WPALCON\t\t\t\t\t(0x1A0)\n"
- " \n"
- "+/* For CPU interface. */\n"
- "+#define TRIGCON\t\t\t\t\t\t(0x1a4)\n"
- "+#define TRGMODE_I80_ENABLE\t\t\t\t(1 &lt;&lt; 0)\n"
- "+#define SWTRGCMD_I80_TRIGGER\t\t\t\t(1 &lt;&lt; 1)\n"
- "+#define SWFRSTATUS_I80\t\t\t\t\t(1 &lt;&lt; 2)\n"
- "+\n"
- "+#define I80IFCONA0\t\t\t\t\t(0x1b0)\n"
- "+#define I80IFEN_ENABLE\t\t\t\t\t(1 &lt;&lt; 0)\n"
- "+#define RSPOL_HIGH\t\t\t\t\t(1 &lt;&lt; 2)\n"
- "+#define LCD_WR_HOLD(x)\t\t\t\t\t(((x) &amp; 0xf) &lt;&lt; 4)\n"
- "+#define LCD_WR_ACT(x)\t\t\t\t\t(((x) &amp; 0xf) &lt;&lt; 8)\n"
- "+#define LCD_WR_SETUP(x)\t\t\t\t\t(((x) &amp; 0xf) &lt;&lt; 12)\n"
- "+#define LCD_CS_SETUP(x)\t\t\t\t\t(((x) &amp; 0xf) &lt;&lt; 16)\n"
- "+\n"
- "+#define I80IFCONB0\t\t\t\t\t(0x1b8)\n"
- "+\n"
- " /* Palette control */\n"
- " /* Note for S5PC100: you can still use those macros on WPALCON (aka WPALCON_L),\n"
- "  * but make sure that WPALCON_H W2PAL-W4PAL entries are zeroed out */\n"
- "diff --git a/arch/arm/plat-samsung/include/plat/regs-fb.h b/arch/arm/plat-samsung/include/plat/regs-fb.h\n"
- "index 0ef806e..70342aa 100644\n"
- "--- a/arch/arm/plat-samsung/include/plat/regs-fb.h\n"
- "+++ b/arch/arm/plat-samsung/include/plat/regs-fb.h\n"
- "@@ -38,6 +38,7 @@\n"
- " #define VIDCON0_VIDOUT_TV\t\t\t(0x1 &lt;&lt; 26)\n"
- " #define VIDCON0_VIDOUT_I80_LDI0\t\t\t(0x2 &lt;&lt; 26)\n"
- " #define VIDCON0_VIDOUT_I80_LDI1\t\t\t(0x3 &lt;&lt; 26)\n"
- "+#define VIDCON0_DSI_EN_ENABLE\t\t\t(1 &lt;&lt; 30)\n"
- " \n"
- " #define VIDCON0_L1_DATA_MASK\t\t\t(0x7 &lt;&lt; 23)\n"
- " #define VIDCON0_L1_DATA_SHIFT\t\t\t(23)\n"
- "diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c\n"
- "index 9682ecc..28d34ef 100644\n"
- "--- a/drivers/video/s3c-fb.c\n"
- "+++ b/drivers/video/s3c-fb.c\n"
- "@@ -255,6 +255,73 @@ static int s3c_fb_align_word(unsigned int bpp, unsigned int pix)\n"
- " }\n"
- " \n"
- " /**\n"
- "+ * s3c_fb_set_trigger - fimd trigger based on cpu interface.\n"
- "+ */\n"
- "+void s3c_fb_set_trigger(struct fb_info *info)\n"
- "+{\n"
- "+\tstruct s3c_fb_win *win = info-&gt;par;\n"
- "+\tstruct s3c_fb *sfb = win-&gt;parent;\n"
- "+\tvoid __iomem *regs = sfb-&gt;regs;\n"
- "+\tu32 reg = 0;\n"
- "+\n"
- "+\treg = readl(regs + TRIGCON);\n"
- "+\n"
- "+\treg |= TRGMODE_I80_ENABLE | SWTRGCMD_I80_TRIGGER;\n"
- "+\n"
- "+\twritel(reg, regs + TRIGCON);\n"
- "+}\n"
- "+\n"
- "+/**\n"
- "+ * s3c_fb_is_i80_frame_done - get i80 frame done status.\n"
- "+ */\n"
- "+int s3c_fb_is_i80_frame_done(struct fb_info *info)\n"
- "+{\n"
- "+\tstruct s3c_fb_win *win = info-&gt;par;\n"
- "+\tstruct s3c_fb *sfb = win-&gt;parent;\n"
- "+\tvoid __iomem *regs = sfb-&gt;regs;\n"
- "+\tu32 reg = 0;\n"
- "+\n"
- "+\treg =  readl(regs + TRIGCON);\n"
- "+\n"
- "+\treturn (((reg &amp; SWFRSTATUS_I80) == SWFRSTATUS_I80) ? 1 : 0);\n"
- "+}\n"
- "+\n"
- "+/**\n"
- "+ * s3c_fb_set_cpu_timing - set cpu timing.\n"
- "+ */\n"
- "+static void s3c_fb_set_timing(struct s3c_fb *sfb, struct fb_info *info)\n"
- "+{\n"
- "+\tstruct s3c_fb_win *win = info-&gt;par;\n"
- "+\tstruct s3c_fb_pd_win *windata = win-&gt;windata;\n"
- "+\tstruct fb_var_screeninfo *var = &amp;info-&gt;var;\n"
- "+\tvoid __iomem *regs = sfb-&gt;regs;\n"
- "+\tu32 reg = 0;\n"
- "+\n"
- "+\tif (sfb-&gt;pdata-&gt;interface_mode == FIMD_VIDEO_MODE) {\n"
- "+\t\treg = VIDTCON0_VBPD(var-&gt;upper_margin - 1) |\n"
- "+\t\t       VIDTCON0_VFPD(var-&gt;lower_margin - 1) |\n"
- "+\t\t       VIDTCON0_VSPW(var-&gt;vsync_len - 1);\n"
- "+\n"
- "+\t\twritel(reg, regs + VIDTCON0);\n"
- "+\n"
- "+\t\treg = VIDTCON1_HBPD(var-&gt;left_margin - 1) |\n"
- "+\t\t       VIDTCON1_HFPD(var-&gt;right_margin - 1) |\n"
- "+\t\t       VIDTCON1_HSPW(var-&gt;hsync_len - 1);\n"
- "+\n"
- "+\t\twritel(reg, regs + VIDTCON1);\n"
- "+\t} else if (sfb-&gt;pdata-&gt;interface_mode == FIMD_COMMAND_MODE) {\n"
- "+\t\treg = LCD_CS_SETUP(windata-&gt;cmd_mode.cs_setup) |\n"
- "+\t\t\tLCD_WR_SETUP(windata-&gt;cmd_mode.wr_setup) |\n"
- "+\t\t\tLCD_WR_ACT(windata-&gt;cmd_mode.wr_act) |\n"
- "+\t\t\tLCD_WR_HOLD(windata-&gt;cmd_mode.wr_hold) |\n"
- "+\t\t\tI80IFEN_ENABLE;\n"
- "+\n"
- "+\t\twritel(reg, regs + I80IFCONA0);\n"
- "+\t} else\n"
- "+\t\tdev_warn(sfb-&gt;dev, \"wrong interface type.\\n\");\n"
- "+}\n"
- "+\n"
- "+/**\n"
- "  * s3c_fb_set_par() - framebuffer request to set new framebuffer state.\n"
- "  * @info: The framebuffer to change.\n"
- "  *\n"
- "@@ -318,17 +385,7 @@ static int s3c_fb_set_par(struct fb_info *info)\n"
- " \t\tdata |= VIDCON0_ENVID | VIDCON0_ENVID_F;\n"
- " \t\twritel(data, regs + VIDCON0);\n"
- " \n"
- "-\t\tdata = VIDTCON0_VBPD(var-&gt;upper_margin - 1) |\n"
- "-\t\t       VIDTCON0_VFPD(var-&gt;lower_margin - 1) |\n"
- "-\t\t       VIDTCON0_VSPW(var-&gt;vsync_len - 1);\n"
- "-\n"
- "-\t\twritel(data, regs + VIDTCON0);\n"
- "-\n"
- "-\t\tdata = VIDTCON1_HBPD(var-&gt;left_margin - 1) |\n"
- "-\t\t       VIDTCON1_HFPD(var-&gt;right_margin - 1) |\n"
- "-\t\t       VIDTCON1_HSPW(var-&gt;hsync_len - 1);\n"
- "-\n"
- "-\t\twritel(data, regs + VIDTCON1);\n"
- "+\t\ts3c_fb_set_timing(sfb, info);\n"
- " \n"
- " \t\tdata = VIDTCON2_LINEVAL(var-&gt;yres - 1) |\n"
- " \t\t       VIDTCON2_HOZVAL(var-&gt;xres - 1);\n"
- "@@ -744,7 +801,8 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,\n"
- " \t\t\t\t      struct s3c_fb_win **res)\n"
- " {\n"
- " \tstruct fb_var_screeninfo *var;\n"
- "-\tstruct fb_videomode *initmode;\n"
- "+\tstruct fb_videomode *videomode;\n"
- "+\tstruct fb_cmdmode *cmdmode;\n"
- " \tstruct s3c_fb_pd_win *windata;\n"
- " \tstruct s3c_fb_win *win;\n"
- " \tstruct fb_info *fbinfo;\n"
- "@@ -763,11 +821,20 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,\n"
- " \t}\n"
- " \n"
- " \twindata = sfb-&gt;pdata-&gt;win[win_no];\n"
- "-\tinitmode = &amp;windata-&gt;win_mode;\n"
- " \n"
- " \tWARN_ON(windata-&gt;max_bpp == 0);\n"
- "-\tWARN_ON(windata-&gt;win_mode.xres == 0);\n"
- "-\tWARN_ON(windata-&gt;win_mode.yres == 0);\n"
- "+\n"
- "+\tif (sfb-&gt;pdata-&gt;interface_mode == FIMD_VIDEO_MODE) {\n"
- "+\t\tWARN_ON(windata-&gt;win_mode.xres == 0);\n"
- "+\t\tWARN_ON(windata-&gt;win_mode.yres == 0);\n"
- "+\n"
- "+\t\tvideomode = &amp;windata-&gt;win_mode;\n"
- "+\t} else {\n"
- "+\t\tWARN_ON(windata-&gt;cmd_mode.xres == 0);\n"
- "+\t\tWARN_ON(windata-&gt;cmd_mode.yres == 0);\n"
- "+\n"
- "+\t\tcmdmode = &amp;windata-&gt;cmd_mode;\n"
- "+\t}\n"
- " \n"
- " \twin = fbinfo-&gt;par;\n"
- " \tvar = &amp;fbinfo-&gt;var;\n"
- "@@ -777,18 +844,19 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,\n"
- " \twin-&gt;index = win_no;\n"
- " \twin-&gt;palette_buffer = (u32 *)(win + 1);\n"
- " \n"
- "-\tret = s3c_fb_alloc_memory(sfb, win);\n"
- "-\tif (ret) {\n"
- "-\t\tdev_err(sfb-&gt;dev, \"failed to allocate display memory\\n\");\n"
- "-\t\treturn ret;\n"
- "+\t/* setup the initial video or cpu mode from the window */\n"
- "+\tif (sfb-&gt;pdata-&gt;interface_mode == FIMD_VIDEO_MODE)\n"
- "+\t\tfb_videomode_to_var(&amp;fbinfo-&gt;var, videomode);\n"
- "+\telse {\n"
- "+\t\tvar-&gt;xres = cmdmode-&gt;xres;\n"
- "+\t\tvar-&gt;yres = cmdmode-&gt;yres;\n"
- "+\t\tvar-&gt;xres_virtual = cmdmode-&gt;xres;\n"
- "+\t\tvar-&gt;yres_virtual = cmdmode-&gt;yres;\n"
- "+\t\tvar-&gt;xoffset = 0;\n"
- "+\t\tvar-&gt;yoffset = 0;\n"
- "+\t\tvar-&gt;pixclock = cmdmode-&gt;pixclock;\n"
- " \t}\n"
- " \n"
- "-\t/* setup the r/b/g positions for the window's palette */\n"
- "-\ts3c_fb_init_palette(win_no, &amp;win-&gt;palette);\n"
- "-\n"
- "-\t/* setup the initial video mode from the window */\n"
- "-\tfb_videomode_to_var(&amp;fbinfo-&gt;var, initmode);\n"
- "-\n"
- " \tfbinfo-&gt;fix.type\t= FB_TYPE_PACKED_PIXELS;\n"
- " \tfbinfo-&gt;fix.accel\t= FB_ACCEL_NONE;\n"
- " \tfbinfo-&gt;var.activate\t= FB_ACTIVATE_NOW;\n"
- "@@ -798,6 +866,15 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,\n"
- " \tfbinfo-&gt;flags\t\t= FBINFO_FLAG_DEFAULT;\n"
- " \tfbinfo-&gt;pseudo_palette  = &amp;win-&gt;pseudo_palette;\n"
- " \n"
- "+\tret = s3c_fb_alloc_memory(sfb, win);\n"
- "+\tif (ret) {\n"
- "+\t\tdev_err(sfb-&gt;dev, \"failed to allocate display memory\\n\");\n"
- "+\t\treturn ret;\n"
- "+\t}\n"
- "+\n"
- "+\t/* setup the r/b/g positions for the window's palette */\n"
- "+\ts3c_fb_init_palette(win_no, &amp;win-&gt;palette);\n"
- "+\n"
- " \t/* prepare to actually start the framebuffer */\n"
- " \n"
- " \tret = s3c_fb_check_var(&amp;fbinfo-&gt;var, fbinfo);\n"
- "</pre>\n"
- "<br>\n"
- "</body>\n"
- "</html>\n"
- "\01:2\0"
- "b\0"
- "_______________________________________________\n"
- "linux-arm-kernel mailing list\n"
- "linux-arm-kernel@lists.infradead.org\n"
- http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
+ " \tret = s3c_fb_check_var(&fbinfo->var, fbinfo);\n"
+ "\n"
+ "\n"
+ "-------------- next part --------------\n"
+ "An HTML attachment was scrubbed...\n"
+ URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100702/c3e9c266/attachment-0001.html>
 
-dccf5b851d9d8320658320e339c8b6ac8f0b91ca1fd0dbb9b79a71b4c1ab56b8
+47c7dbdfe0638b2da650ef4af78f4a61b0f587e8496b01f439250f28c5b17ff2

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.