public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 2.6.19] omap camera builds again; Mistral hooks
@ 2006-12-07  3:45 David Brownell
  2006-12-07  4:58 ` Marek Vašut
  0 siblings, 1 reply; 5+ messages in thread
From: David Brownell @ 2006-12-07  3:45 UTC (permalink / raw)
  To: linux-omap-open-source

Support the camera connector on the OSK Mistral add-on board:
  
  - define muxing for both camera controllers
  - mux both of them for Mistral 
  - teach ov9640 glue about mistral powerup/powerdown

Fix some bitrot, including basic build/load functionality:

  - ov9640 code had syntax errors (!) and referenced missing fields
  - camera core included all kinds of crap, but not the v4l2 stuff
  - both omap16xx and 17xx used the wrong base clock
  - 16xx oopsed because its base clock did not exist
  - misuse of machine_is_omap_h3() in place of cpu_is_omap1710()
  - several exported symbols were goofed up
  - used bad call to reserve mem region
  - didn't destroy platform device correctly
  - ov9640 needed MODULE_LICENSE("GPL")

It's probably best to think of this as just making the camera code
build again, load/unload as modules, stop oopsing on 16xx, and be
a smidgeon cleaner ... since my (early/prototype) Mistral board won't
actually get to UBoot when a camera is connected.  :(

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>


Index: osk2/include/asm-arm/arch-omap/mux.h
===================================================================
--- osk2.orig/include/asm-arm/arch-omap/mux.h	2006-12-06 12:57:52.000000000 -0800
+++ osk2/include/asm-arm/arch-omap/mux.h	2006-12-06 12:58:14.000000000 -0800
@@ -406,6 +406,29 @@ enum omap1xxx_index {
 	V10_1610_CF_IREQ,
 	W10_1610_CF_RESET,
 	W11_1610_CF_CD1,
+
+	/* parallel camera */
+	J15_1610_CAM_LCLK,
+	J18_1610_CAM_D7,
+	J19_1610_CAM_D6,
+	J14_1610_CAM_D5,
+	K18_1610_CAM_D4,
+	K19_1610_CAM_D3,
+	K15_1610_CAM_D2,
+	K14_1610_CAM_D1,
+	L19_1610_CAM_D0,
+	L18_1610_CAM_VS,
+	L15_1610_CAM_HS,
+	M19_1610_CAM_RSTZ,
+	Y15_1610_CAM_OUTCLK,
+
+	/* serial camera */
+	H19_1610_CAM_EXCLK,
+	Y12_1610_CCP_CLKP,
+	W13_1610_CCP_CLKM,
+	W14_1610_CCP_DATAP,
+	Y14_1610_CCP_DATAM,
+
 };
 
 enum omap24xx_index {
Index: osk2/arch/arm/mach-omap1/mux.c
===================================================================
--- osk2.orig/arch/arm/mach-omap1/mux.c	2006-12-06 12:57:52.000000000 -0800
+++ osk2/arch/arm/mach-omap1/mux.c	2006-12-06 12:58:14.000000000 -0800
@@ -283,6 +283,30 @@ MUX_CFG("R11_1610_CF_IOIS16",	 B,    0, 
 MUX_CFG("V10_1610_CF_IREQ",	 A,   24,    3,	  2,   14,   0,	  2,	 0,  1)
 MUX_CFG("W10_1610_CF_RESET",	 A,   18,    3,	  2,   12,   1,	  2,	 1,  1)
 MUX_CFG("W11_1610_CF_CD1",	10,   15,    3,	  3,    8,   1,	  3,	 1,  1)
+
+/* parallel camera */
+MUX_CFG("J15_1610_CAM_LCLK",	 4,   24,    0,   0,  18,   1,    0,     0,  0)
+MUX_CFG("J18_1610_CAM_D7",	 4,   27,    0,   0,  19,   1,    0,     0,  0)
+MUX_CFG("J19_1610_CAM_D6",	 5,    0,    0,   0,  20,   1,    0,     0,  0)
+MUX_CFG("J14_1610_CAM_D5",	 5,    3,    0,   0,  21,   1,    0,     0,  0)
+MUX_CFG("K18_1610_CAM_D4",	 5,    6,    0,   0,  22,   1,    0,     0,  0)
+MUX_CFG("K19_1610_CAM_D3",	 5,    9,    0,   0,  23,   1,    0,     0,  0)
+MUX_CFG("K15_1610_CAM_D2",	 5,   12,    0,   0,  24,   1,    0,     0,  0)
+MUX_CFG("K14_1610_CAM_D1",	 5,   15,    0,   0,  25,   1,    0,     0,  0)
+MUX_CFG("L19_1610_CAM_D0",	 5,   18,    0,   0,  26,   1,    0,     0,  0)
+MUX_CFG("L18_1610_CAM_VS",	 5,   21,    0,   0,  27,   1,    0,     0,  0)
+MUX_CFG("L15_1610_CAM_HS",	 5,   24,    0,   0,  28,   1,    0,     0,  0)
+MUX_CFG("M19_1610_CAM_RSTZ",	 5,   27,    0,   0,  29,   0,    0,     0,  0)
+MUX_CFG("Y15_1610_CAM_OUTCLK",	 A,    0,    6,   2,   6,   0,    2,     0,  0)
+
+/* serial camera */
+MUX_CFG("H19_1610_CAM_EXCLK",	 4,   21,    0,   0,  17,   0,    0,     0,  0)
+	/* REVISIT 5912 spec sez CCP_* can't pullup or pulldown ... ? */
+MUX_CFG("Y12_1610_CCP_CLKP",	 8,   18,    6,   1,  24,   1,    1,     0,  0)
+MUX_CFG("W13_1610_CCP_CLKM",	 9,    0,    6,   1,  28,   1,    1,     0,  0)
+MUX_CFG("W14_1610_CCP_DATAP",	 9,   24,    6,   2,   4,   1,    2,     0,  0)
+MUX_CFG("Y14_1610_CCP_DATAM",	 9,   21,    6,   2,   3,   1,    2,     0,  0)
+
 };
 #endif	/* CONFIG_ARCH_OMAP15XX || CONFIG_ARCH_OMAP16XX */
 
Index: osk2/arch/arm/mach-omap1/board-osk.c
===================================================================
--- osk2.orig/arch/arm/mach-omap1/board-osk.c	2006-12-06 12:57:52.000000000 -0800
+++ osk2/arch/arm/mach-omap1/board-osk.c	2006-12-06 12:58:14.000000000 -0800
@@ -342,6 +342,38 @@ static void __init osk_mistral_init(void
 	 * can't talk to the ads or even the i2c eeprom.
 	 */
 
+	/* parallel camera interface */
+	omap_cfg_reg(J15_1610_CAM_LCLK);
+	omap_cfg_reg(J18_1610_CAM_D7);
+	omap_cfg_reg(J19_1610_CAM_D6);
+	omap_cfg_reg(J14_1610_CAM_D5);
+	omap_cfg_reg(K18_1610_CAM_D4);
+	omap_cfg_reg(K19_1610_CAM_D3);
+	omap_cfg_reg(K15_1610_CAM_D2);
+	omap_cfg_reg(K14_1610_CAM_D1);
+	omap_cfg_reg(L19_1610_CAM_D0);
+	omap_cfg_reg(L18_1610_CAM_VS);
+	omap_cfg_reg(L15_1610_CAM_HS);
+	omap_cfg_reg(M19_1610_CAM_RSTZ);
+	omap_cfg_reg(Y15_1610_CAM_OUTCLK);
+
+	/* serial camera interface */
+	omap_cfg_reg(H19_1610_CAM_EXCLK);
+	omap_cfg_reg(W13_1610_CCP_CLKM);
+	omap_cfg_reg(Y12_1610_CCP_CLKP);
+	/* CCP_DATAM CONFLICTS WITH UART1.TX (and serial console) */
+	// omap_cfg_reg(Y14_1610_CCP_DATAM);
+	omap_cfg_reg(W14_1610_CCP_DATAP);
+
+	/* CAM_PWDN */
+	if (omap_request_gpio(11) == 0) {
+		omap_cfg_reg(N20_1610_GPIO11);
+		omap_set_gpio_direction(11, 0 /* out */);
+		omap_set_gpio_dataout(11, 0 /* off */);
+	} else
+		pr_debug("OSK+Mistral: CAM_PWDN is awol\n");
+
+
 	// omap_cfg_reg(P19_1610_GPIO6);	// BUSY
 	omap_cfg_reg(P20_1610_GPIO4);	// PENIRQ
 	set_irq_type(OMAP_GPIO_IRQ(4), IRQT_FALLING);
Index: osk2/drivers/media/video/omap/omap16xxcam.c
===================================================================
--- osk2.orig/drivers/media/video/omap/omap16xxcam.c	2006-12-06 12:57:52.000000000 -0800
+++ osk2/drivers/media/video/omap/omap16xxcam.c	2006-12-06 12:58:14.000000000 -0800
@@ -38,7 +38,8 @@
 #include "omap16xxcam.h"
 #include "camera_hw_if.h"
 #include "camera_core.h"
-  
+ 
+
 #define CONF_CAMERAIF_RESET_R 5
 #define EN_PER	  0
 
@@ -68,7 +69,9 @@ struct omap16xxcam {
 	unsigned long iobase_phys;
 
 	/* frequncy (in Hz) of camera interface functional clock (ocp_clk) */
-	unsigned long ocp_clk; 
+	unsigned long ocp_clk;
+
+	struct clk *func_clk;
 
 	/* dma related stuff */
 	spinlock_t dma_lock;
@@ -79,7 +82,7 @@ struct omap16xxcam {
 	int dma_channel_number2;
 
 	wait_queue_head_t vsync_wait;
-	
+
 	int new;
 };
 static struct omap16xxcam hardware_data;
@@ -124,15 +127,10 @@ omap16xx_cam_init(void)
 			OMAP1610_RESET_CONTROL);
     
 	/* Enable peripheral reset */
-	omap_writew(omap_readw(ARM_RSTCT2) | (1 << EN_PER), ARM_RSTCT2); 
+	omap_writew(omap_readw(ARM_RSTCT2) | (1 << EN_PER), ARM_RSTCT2);
 
 	/* enable peripheral clock */
-	if (machine_is_omap_h3())
-		clk_enable(clk_get(0, "tc2_ck"));
-	else {
-		clk_enable(clk_get(0, "armper_ck"));
-		clk_enable(clk_get(0, "armxor_ck"));
-	}		
+	clk_enable(hardware_data.func_clk);
 }
 
 static void
@@ -321,8 +319,8 @@ omap16xxcam_start_dma(struct sgdma_state
 	data->camdma[count].callback = callback;
 	data->camdma[count].arg1 = arg1;
 	data->camdma[count].arg2 = arg2;
-	
-	if (machine_is_omap_h3())
+
+	if (cpu_is_omap1710())
 		omap_set_dma_src_params(dmach, OMAP_DMA_PORT_OCP_T1,
 			    OMAP_DMA_AMODE_CONSTANT, CAM_CAMDATA_REG,
 			    0, 0);
@@ -507,19 +505,25 @@ omap16xxcam_cleanup(void *priv)
 {
 	struct omap16xxcam *data = (struct omap16xxcam *) priv;
 
+	if (!data->camera_regs)
+		return -EINVAL;
+
 	omap16xxcam_disable(data);
-	if (machine_is_omap_h3()) {
-		if (data->camera_regs) {	
-			iounmap((void *)data->camera_regs);
-			data->camera_regs= NULL;
-		}
-	}
+	if (cpu_is_omap1710())
+		iounmap((void *)data->camera_regs);
+	data->camera_regs= NULL;
 
 	if (data->iobase_phys) {
 		release_mem_region(data->iobase_phys, CAMERA_IOSIZE);
 		data->iobase_phys = 0;
 	}
 
+	if (hardware_data.func_clk) {
+		clk_disable(hardware_data.func_clk);
+		clk_put(hardware_data.func_clk);
+		hardware_data.func_clk = NULL;
+	}
+
 	return 0;
 }
 
@@ -529,13 +533,15 @@ omap16xxcam_init(void)
 {
 	unsigned long cam_iobase;
 
-	if (!request_region(CAMERA_BASE, CAMERA_IOSIZE, "OAMP16xx Camera")) {
-		printk ("OMAP16XX Parallel Camera Interface is already in use\n");
+	if (!request_mem_region(CAMERA_BASE, CAMERA_IOSIZE,
+				camera_hardware_if.name)) {
+		pr_debug("%s is already in use\n", camera_hardware_if.name);
 		return NULL;
 	}
 
-	if (machine_is_omap_h3()) {
-		cam_iobase = (unsigned long) ioremap (CAMERA_BASE, CAMERA_IOSIZE);
+	if (cpu_is_omap1710()) {
+		cam_iobase = (unsigned long) ioremap (CAMERA_BASE,
+				CAMERA_IOSIZE);
 		if (!cam_iobase) {
 			printk("CANNOT MAP CAMERA REGISTER\n");
 			return NULL;
@@ -547,11 +553,13 @@ omap16xxcam_init(void)
 	/* Set the base address of the camera registers */
 	hardware_data.camera_regs = (camera_regs_t *)cam_iobase;
 	hardware_data.iobase_phys = (unsigned long) CAMERA_BASE;
- 	/* get the input clock value to camera interface and store it */
-	if (machine_is_omap_h3())
-		hardware_data.ocp_clk = clk_get_rate(clk_get(0, "tc_ck"));
+
+	/* get the input clock value to camera interface and store it */
+	if (cpu_is_omap1710())
+		hardware_data.func_clk = clk_get(0, "tc2_ck");
 	else
-		hardware_data.ocp_clk = clk_get_rate(clk_get(0, "mpuper_ck"));
+		hardware_data.func_clk = clk_get(0, "armper_ck");
+	hardware_data.ocp_clk = clk_get_rate(hardware_data.func_clk);
 
 	/* Init the camera IF */
 	omap16xx_cam_init();
@@ -566,7 +574,7 @@ omap16xxcam_init(void)
 
 struct camera_hardware camera_hardware_if = {
 	.version	= 0x01,
-	.name		= "OMAP16xx Camera Parallel",
+	.name		= "OMAP16xx Parallel Camera",
 	.init		= omap16xxcam_init,
 	.cleanup	= omap16xxcam_cleanup,
 	.open		= omap16xxcam_open,
Index: osk2/drivers/media/video/omap/sensor_ov9640.c
===================================================================
--- osk2.orig/drivers/media/video/omap/sensor_ov9640.c	2006-12-06 12:57:52.000000000 -0800
+++ osk2/drivers/media/video/omap/sensor_ov9640.c	2006-12-06 12:58:14.000000000 -0800
@@ -20,14 +20,13 @@
 #include <media/video-buf.h>
 #include <linux/delay.h>
 #include <asm/mach-types.h>
+#include <asm/arch/gpio.h>
 
 #include "sensor_if.h"
 #include "ov9640.h"
 #include "h3sensorpower.h"
 #include "h4sensorpower.h"
 
-#define CAMERA_OV9640
-#ifdef CAMERA_OV9640
 
 struct ov9640_sensor {
 	/* I2C parameters */
@@ -696,6 +695,11 @@ ov9640_powerup(void)
 	if (machine_is_omap_h2())
 		return 0;
 
+#ifdef	CONFIG_OMAP_OSK_MISTRAL
+	if (machine_is_omap_osk())
+		omap_set_gpio_dataout(11, 1);
+#endif
+
 	if (machine_is_omap_h3()) {
 		err = h3_sensor_powerup();
 		if (err)
@@ -718,6 +722,11 @@ ov9640_powerdown(void)
 	if (machine_is_omap_h2())
 		return 0;
 
+#ifdef	CONFIG_OMAP_OSK_MISTRAL
+	if (machine_is_omap_osk())
+		omap_set_gpio_dataout(11, 0);
+#endif
+
 	if (machine_is_omap_h3()) {
 		err = h3_sensor_powerdown();
 		if (err)
@@ -806,6 +815,7 @@ ov9640_i2c_attach_client(struct i2c_adap
 	client->addr = addr;
 	client->driver = &ov9640sensor_i2c_driver;
 	client->adapter = adap;
+	strcpy(client->name, ov9640sensor_i2c_driver.driver.name);
 
 	err = i2c_attach_client(client);
 	if (err) {
@@ -1125,7 +1135,7 @@ ov9640sensor_cleanup(void *priv)
 
 
 static struct i2c_driver ov9640sensor_i2c_driver = {
-	.driver {
+	.driver = {
 		.name		= "ov9640",
 	},
 	.id		= I2C_DRIVERID_MISC, /*FIXME:accroding to i2c-ids.h */
@@ -1180,10 +1190,6 @@ ov9640sensor_init(struct v4l2_pix_format
 struct omap_camera_sensor camera_sensor_if = {
 	.version	= 0x01,
 	.name		= "OV9640",
-	.parallel_mode	= PAR_MODE_NOBT8,
-	.hs_polarity	= SYNC_ACTIVE_HIGH,
-	.vs_polarity	= SYNC_ACTIVE_LOW,
-	.image_swap 	= 0,
 	.init		= ov9640sensor_init,
 	.cleanup	= ov9640sensor_cleanup,
 	.enum_pixformat = ov9640sensor_enum_pixformat,
@@ -1196,7 +1202,11 @@ struct omap_camera_sensor camera_sensor_
 	.power_on	= ov9640sensor_power_on,
 	.power_off	= ov9640sensor_power_off,
 };
+EXPORT_SYMBOL_GPL(camera_sensor_if);
 
+MODULE_LICENSE("GPL");
+
+#if 0
 void print_ov9640_regs(void *priv)
 {
 	struct ov9640_sensor *sensor = (struct ov9640_sensor *) priv;
@@ -1207,5 +1217,4 @@ void print_ov9640_regs(void *priv)
 		else
 			printk("reg %x = %x\n", reg, val);	 
 }
-
-#endif	/* ifdef CAMERA_OV9640 */
+#endif
Index: osk2/drivers/media/video/omap/camera_core.c
===================================================================
--- osk2.orig/drivers/media/video/omap/camera_core.c	2006-12-06 12:57:52.000000000 -0800
+++ osk2/drivers/media/video/omap/camera_core.c	2006-12-06 12:58:14.000000000 -0800
@@ -20,40 +20,24 @@
  * History:
  *   27/03/05   Vladimir Barinov - Added support for power management
  */
- 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
-#include <linux/fs.h>
-#include <linux/vmalloc.h>
-#include <linux/slab.h>
-#include <linux/proc_fs.h>
-#include <linux/ctype.h>
-#include <linux/pagemap.h>
-#include <linux/mm.h>
 #include <linux/platform_device.h>
-#include <linux/delay.h>
-#include <linux/interrupt.h>
-#include <linux/videodev.h>
-#include <linux/pci.h>
 #include <linux/version.h>
-#include <asm/semaphore.h>
-#include <asm/processor.h>
 #include <linux/dma-mapping.h>
 #include <linux/fb.h>
 
+#include <media/v4l2-common.h>
+
 #include <asm/io.h>
-#include <asm/byteorder.h>
-#include <asm/irq.h>
 
 #include "sensor_if.h"
 #include "camera_hw_if.h"
 #include "camera_core.h"
- 
-struct camera_device *camera_dev;
-extern struct omap_camera_sensor camera_sensor_if;
-extern struct camera_hardware camera_hardware_if;
- 
+
+
+static struct camera_device *camera_dev;
 static void camera_core_sgdma_process(struct camera_device *cam);
 
 /* module parameters */
@@ -1165,39 +1149,40 @@ static struct platform_driver camera_cor
 #endif
 };
 
-static struct platform_device camera_core_device = {
-	.name	= CAM_NAME,
-	.dev	= {
-			.release 	= NULL,
-		  },
-	.id	= 0,
-};
 
-void __exit
+/* FIXME register omap16xx or omap24xx camera device in arch/arm/...
+ * system init code, with its resources and mux setup, NOT here.
+ * Then MODULE_ALIAS(CAM_NAME) so it hotplugs and coldplugs; this
+ * "legacy" driver style is trouble.
+ */
+static struct platform_device *cam;
+
+static void __exit
 camera_core_cleanup(void)
 {
 	platform_driver_unregister(&camera_core_driver);
-	platform_device_unregister(&camera_core_device);
 
-	return;
+	platform_device_unregister(cam);
 }
 
 static char banner[] __initdata = KERN_INFO "OMAP Camera driver initialzing\n";
 
-int __init 
+static int __init
 camera_core_init(void)
 {
 
 	printk(banner);
-	platform_device_register(&camera_core_device);
 	platform_driver_register(&camera_core_driver);
 
+	cam = platform_device_register_simple(CAM_NAME, -1, NULL, 0);
+
 	return 0;
 }
 
 MODULE_AUTHOR("Texas Instruments.");
 MODULE_DESCRIPTION("OMAP Video for Linux camera driver");
 MODULE_LICENSE("GPL");
+
 module_param(video_nr, int, 0);
 MODULE_PARM_DESC(video_nr, 
 		"Minor number for video device (-1 ==> auto assign)");
Index: osk2/drivers/media/video/omap/sensor_if.h
===================================================================
--- osk2.orig/drivers/media/video/omap/sensor_if.h	2006-12-06 12:57:52.000000000 -0800
+++ osk2/drivers/media/video/omap/sensor_if.h	2006-12-06 12:58:14.000000000 -0800
@@ -44,5 +44,7 @@ struct omap_camera_sensor {
 	int (*set_control)(struct v4l2_control *, void *);
 
 };
-	
+
+extern struct omap_camera_sensor camera_sensor_if;
+
 #endif
Index: osk2/drivers/media/video/omap/camera_core.h
===================================================================
--- osk2.orig/drivers/media/video/omap/camera_core.h	2006-12-06 12:57:52.000000000 -0800
+++ osk2/drivers/media/video/omap/camera_core.h	2006-12-06 12:58:14.000000000 -0800
@@ -151,6 +151,6 @@ struct camera_fh {
 	struct videobuf_queue vbq;
 };
 
-#define CAM_NAME "omap-camera"
+#define CAM_NAME "omap_camera"
 
 #endif /* CAMERA_CORE__H */
Index: osk2/drivers/media/video/omap/camera_hw_if.h
===================================================================
--- osk2.orig/drivers/media/video/omap/camera_hw_if.h	2006-12-06 12:57:52.000000000 -0800
+++ osk2/drivers/media/video/omap/camera_hw_if.h	2006-12-06 12:58:14.000000000 -0800
@@ -44,5 +44,7 @@ struct camera_hardware {
 			void *, void *, void *);
 	int (*finish_dma)(void *);
 };
- 
+
+extern struct camera_hardware camera_hardware_if;
+
 #endif /* OMAP_CAMERA_HW_IF_H */

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

* Re: [patch 2.6.19] omap camera builds again; Mistral hooks
  2006-12-07  3:45 [patch 2.6.19] omap camera builds again; Mistral hooks David Brownell
@ 2006-12-07  4:58 ` Marek Vašut
  2006-12-11 22:21   ` tony
  0 siblings, 1 reply; 5+ messages in thread
From: Marek Vašut @ 2006-12-07  4:58 UTC (permalink / raw)
  To: linux-omap-open-source

Hi, just a small typo ...
static char banner[] __initdata = KERN_INFO "OMAP Camera driver 
initialzing\n"; ... should be initializing ;-)

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

* Re: [patch 2.6.19] omap camera builds again; Mistral hooks
  2006-12-07  4:58 ` Marek Vašut
@ 2006-12-11 22:21   ` tony
  2006-12-14 20:39     ` David Brownell
  0 siblings, 1 reply; 5+ messages in thread
From: tony @ 2006-12-11 22:21 UTC (permalink / raw)
  To: Marek Vašut; +Cc: linux-omap-open-source

* Marek Vašut <marek.vasut@gmail.com> [061206 20:59]:
> Hi, just a small typo ...
> static char banner[] __initdata = KERN_INFO "OMAP Camera driver 
> initialzing\n"; ... should be initializing ;-)

Pushed in two parts, one for the core changes, and the other patch
for the driver. I had to manually apply some parts of the driver
patch. Dave, can you please check that your changes got applied?

Tony

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

* Re: [patch 2.6.19] omap camera builds again; Mistral hooks
  2006-12-11 22:21   ` tony
@ 2006-12-14 20:39     ` David Brownell
  2006-12-21 22:57       ` Tony Lindgren
  0 siblings, 1 reply; 5+ messages in thread
From: David Brownell @ 2006-12-14 20:39 UTC (permalink / raw)
  To: linux-omap-open-source

On Monday 11 December 2006 2:21 pm, tony@atomide.com wrote:
> * Marek Vašut <marek.vasut@gmail.com> [061206 20:59]:
> > Hi, just a small typo ...
> > static char banner[] __initdata = KERN_INFO "OMAP Camera driver 
> > initialzing\n"; ... should be initializing ;-)
> 
> Pushed in two parts, one for the core changes, and the other patch
> for the driver. I had to manually apply some parts of the driver
> patch. Dave, can you please check that your changes got applied?

I can "patch -R" my version with only a reject on the last half of
the camera_core.c changes ... and eyeballing that, I didn't see
any obvious breakage, I think it's whitespace.  It still says it's
getting its "initial zing" though.  ;)

- Dave

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

* Re: [patch 2.6.19] omap camera builds again; Mistral hooks
  2006-12-14 20:39     ` David Brownell
@ 2006-12-21 22:57       ` Tony Lindgren
  0 siblings, 0 replies; 5+ messages in thread
From: Tony Lindgren @ 2006-12-21 22:57 UTC (permalink / raw)
  To: David Brownell; +Cc: linux-omap-open-source

* David Brownell <david-b@pacbell.net> [061214 12:40]:
> On Monday 11 December 2006 2:21 pm, tony@atomide.com wrote:
> > * Marek Vašut <marek.vasut@gmail.com> [061206 20:59]:
> > > Hi, just a small typo ...
> > > static char banner[] __initdata = KERN_INFO "OMAP Camera driver 
> > > initialzing\n"; ... should be initializing ;-)
> > 
> > Pushed in two parts, one for the core changes, and the other patch
> > for the driver. I had to manually apply some parts of the driver
> > patch. Dave, can you please check that your changes got applied?
> 
> I can "patch -R" my version with only a reject on the last half of
> the camera_core.c changes ... and eyeballing that, I didn't see
> any obvious breakage, I think it's whitespace.  It still says it's
> getting its "initial zing" though.  ;)

Fixing today :)

Tony

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

end of thread, other threads:[~2006-12-21 22:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-07  3:45 [patch 2.6.19] omap camera builds again; Mistral hooks David Brownell
2006-12-07  4:58 ` Marek Vašut
2006-12-11 22:21   ` tony
2006-12-14 20:39     ` David Brownell
2006-12-21 22:57       ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox