diff options
author | Koen Kooi <koen@openembedded.org> | 2010-05-03 22:53:37 +0200 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2010-05-04 07:35:50 +0200 |
commit | b8bc13a12d46d461c0a0ace1d9dce37dc816e741 (patch) | |
tree | c240e584e5dd171ed8dcfe439b73c06d9f8b3435 | |
parent | 4b90bc3e1bc9fbd2796de43e4eec6fbede5b4949 (diff) |
linux-omap-psp 26.32: sync with beagleboard validation kernel again
This adds back support for the ds1307 RTC and adds support for the AT24 eeprom
50 files changed, 255 insertions, 2812 deletions
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch b/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch index 52d88a8d6e..5e81a16357 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch @@ -1,4 +1,4 @@ -From 0d26a081f4f4c6a44dcee0253e82307cc5020108 Mon Sep 17 00:00:00 2001 +From 6942ec9d19faef80770ae0f2302790d8ec73a9a7 Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Fri, 30 Apr 2010 11:12:24 +0200 Subject: [PATCH 01/45] Revert "omap3: beagle: Fix compile-time errors" diff --git a/recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch b/recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch index 203f62ccd7..da4fc189d7 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch @@ -1,4 +1,4 @@ -From 1e5fa90b1ae86f063be692093d7816fb9e49ebf2 Mon Sep 17 00:00:00 2001 +From c5438f97d0ace3b414b13ef59a58427b9fd5b94b Mon Sep 17 00:00:00 2001 From: Koen Kooi <k-kooi@ti.com> Date: Sat, 30 Jan 2010 15:49:15 +0100 Subject: [PATCH 02/45] board-omap3touchbook: make it build against TI linux-omap 2.6.32-PSP diff --git a/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch b/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch index 3e4cb27fac..ba280ff546 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch @@ -1,4 +1,4 @@ -From 6f9bf44ddbcc2a6b90f27f58b72882207947ecdc Mon Sep 17 00:00:00 2001 +From 48e1df47cf683e4640ec3ae403b2e6dea7432d0c Mon Sep 17 00:00:00 2001 From: Steve Sakoman <sakoman@gmail.com> Date: Tue, 15 Dec 2009 15:34:29 -0800 Subject: [PATCH 03/45] ARM: OMAP: add support for TCT Zippy to Beagle board file diff --git a/recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch b/recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch index 0692c19324..ab88739b73 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch @@ -1,4 +1,4 @@ -From d31ec0c1e37e00cf8d9076fdb7e20e3be43061fc Mon Sep 17 00:00:00 2001 +From 97113a211c7fa07bc4fd34ea8fbe87551eec635d Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 12:40:24 -0800 Subject: [PATCH 04/45] ARM: OMAP: Make beagle u-boot partition writable diff --git a/recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch b/recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch index 8f76c36333..01d95566ca 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch @@ -1,4 +1,4 @@ -From 754d5858dc66c523490172796a9217a5ce171a56 Mon Sep 17 00:00:00 2001 +From 48e9baa773af0d99e5f9121da26bb92a391e2853 Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 10 Feb 2010 15:07:36 +0100 Subject: [PATCH 05/45] board-omap3-beagle: add DSS2 support diff --git a/recipes/linux/linux-omap-psp-2.6.32/0006-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch b/recipes/linux/linux-omap-psp-2.6.32/0006-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch index f777b315f2..4371aad924 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0006-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0006-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch @@ -1,4 +1,4 @@ -From 2186b66d5eeb3028d7c87a8dbdab626797d5bbbe Mon Sep 17 00:00:00 2001 +From 5be3bc924fbb66f7604763c617eecc4c5b009cb5 Mon Sep 17 00:00:00 2001 From: Koen Kooi <k-kooi@ti.com> Date: Wed, 27 Jan 2010 21:57:13 +0100 Subject: [PATCH 06/45] beagleboard: omap3_<foo>_rate_table -> omap35x_<foo>_rate_table diff --git a/recipes/linux/linux-omap-psp-2.6.32/0007-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch b/recipes/linux/linux-omap-psp-2.6.32/0007-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch index d3925d32ac..83ada2b602 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0007-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0007-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch @@ -1,4 +1,4 @@ -From ee1d0dcae9e02b451e66c68977482b1f33f8e76f Mon Sep 17 00:00:00 2001 +From 81f13d0f20e50503eb6baef9bb28a3ed2210154a Mon Sep 17 00:00:00 2001 From: Koen Kooi <k-kooi@ti.com> Date: Mon, 8 Feb 2010 16:30:59 +0100 Subject: [PATCH 07/45] board-omap3beagle: prepare for DM3730 based BeagleboardXM diff --git a/recipes/linux/linux-omap-psp-2.6.32/0010-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch b/recipes/linux/linux-omap-psp-2.6.32/0008-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch index 46bbf3fd16..a1ffaeeba1 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0010-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0008-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch @@ -1,17 +1,17 @@ -From 431a2624ebd41da4157caa3f52d6d0d6365f2a2c Mon Sep 17 00:00:00 2001 +From e97c34409d2b503f695586f613a447799e98fea8 Mon Sep 17 00:00:00 2001 From: Koen Kooi <k-kooi@ti.com> Date: Thu, 11 Feb 2010 20:23:01 +0100 -Subject: [PATCH 10/45] board-omap3beagle: turn on power to camera on boot and add some comments +Subject: [PATCH 08/45] board-omap3beagle: turn on power to camera on boot and add some comments --- arch/arm/mach-omap2/board-omap3beagle.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c -index e63bec6..91d835a 100644 +index accf80d..429dacb 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c -@@ -327,9 +327,14 @@ static int beagle_twl_gpio_setup(struct device *dev, +@@ -321,9 +321,14 @@ static int beagle_twl_gpio_setup(struct device *dev, */ if (cpu_is_omap3630()) { diff --git a/recipes/linux/linux-omap-psp-2.6.32/0008-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch b/recipes/linux/linux-omap-psp-2.6.32/0008-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch deleted file mode 100644 index e5a62ee7b5..0000000000 --- a/recipes/linux/linux-omap-psp-2.6.32/0008-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch +++ /dev/null @@ -1,2394 +0,0 @@ -From 915292ecac5fb947e51dc3eb192fdb3670dfc45f Mon Sep 17 00:00:00 2001 -From: Koen Kooi <k-kooi@ti.com> -Date: Tue, 9 Feb 2010 17:16:13 +0100 -Subject: [PATCH 08/45] mt9t111: first stab at merging sensor driver based on a patch by Leopard Imaging - ---- - drivers/media/video/Kconfig | 8 + - drivers/media/video/Makefile | 1 + - drivers/media/video/mt9t111.c | 883 ++++++++++++++++++++++++ - drivers/media/video/mt9t111_reg.h | 1364 +++++++++++++++++++++++++++++++++++++ - include/media/mt9t111.h | 79 +++ - 5 files changed, 2335 insertions(+), 0 deletions(-) - create mode 100644 drivers/media/video/mt9t111.c - create mode 100644 drivers/media/video/mt9t111_reg.h - create mode 100644 include/media/mt9t111.h - -diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig -index 41e39a7..f67ed46 100644 ---- a/drivers/media/video/Kconfig -+++ b/drivers/media/video/Kconfig -@@ -344,6 +344,14 @@ config VIDEO_MT9P012 - MT9P012 camera. It is currently working with the TI OMAP3 - camera controller. - -+config VIDEO_MT9T111 -+ tristate "Micron MT9T111 raw sensor driver (3MP)" -+ depends on I2C && VIDEO_V4L2 -+ ---help--- -+ This is a Video4Linux2 sensor-level driver for the Micron -+ MT9T111 camera. It is currently working with the TI OMAP3 -+ camera controller. -+ - config VIDEO_DW9710 - tristate "Lens driver for DW9710" - depends on I2C && VIDEO_V4L2 -diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile -index 88e8ec1..31688bf 100644 ---- a/drivers/media/video/Makefile -+++ b/drivers/media/video/Makefile -@@ -127,6 +127,7 @@ obj-$(CONFIG_VIDEO_CAFE_CCIC) += cafe_ccic.o - obj-y += isp/ - obj-$(CONFIG_VIDEO_OMAP3) += omap34xxcam.o - obj-$(CONFIG_VIDEO_MT9P012) += mt9p012.o -+obj-$(CONFIG_VIDEO_MT9T111) += mt9t111.o - obj-$(CONFIG_VIDEO_DW9710) += dw9710.o - obj-$(CONFIG_VIDEO_TPS61059) += tps61059.o - obj-$(CONFIG_VIDEO_OV3640) += ov3640.o -diff --git a/drivers/media/video/mt9t111.c b/drivers/media/video/mt9t111.c -new file mode 100644 -index 0000000..ecc5115 ---- /dev/null -+++ b/drivers/media/video/mt9t111.c -@@ -0,0 +1,883 @@ -+/* -+ * drivers/media/video/mt9t111.c -+ * -+ * mt9t111 sensor driver -+ * -+ * Copyright (C) 2009 Leopard Imaging -+ * -+ * This file is licensed under the terms of the GNU General Public License -+ * version 2. This program is licensed "as is" without any warranty of any -+ * kind, whether express or implied. -+ */ -+ -+#include <linux/i2c.h> -+#include <linux/delay.h> -+#include <media/v4l2-int-device.h> -+ -+#include <media/mt9t111.h> -+#include "mt9t111_reg.h" -+ -+#define USE_RAW // YCbCr mode does not work yet -+//#define COLOR_BAR // Create a Color bar test pattern, Blue, Green, Red, Grey -+ -+#define SENSOR_DETECTED 1 -+#define SENSOR_NOT_DETECTED 0 -+ -+static void mt9t111_loaddefault(struct i2c_client *client); -+ -+/* -+* as a place holder for further development -+*/ -+static void debug_dummy(char *in_msg) -+{ -+ -+} -+ -+/* list of image formats supported by mt9t111 sensor */ -+const static struct v4l2_fmtdesc mt9t111_formats[] = { -+#ifdef USE_RAW -+ { -+ .description = "RAW ", -+ .pixelformat = V4L2_PIX_FMT_SGRBG10, -+ }, -+#else -+ { -+ .description = "YUV 422 ", -+ .pixelformat = V4L2_PIX_FMT_YUYV, -+ }, -+#endif -+}; -+ -+#define NUM_CAPTURE_FORMATS ARRAY_SIZE(mt9t111_formats) -+ -+/* -+ * Array of image sizes supported by MT9T111. These must be ordered from -+ * smallest image size to largest. -+ */ -+const static struct capture_size mt9t111_sizes[] = { -+ { 640, 480 }, -+// { 2048, 1536} -+}; -+ -+#define NUM_CAPTURE_SIZE ARRAY_SIZE(mt9t111_sizes) -+ -+ -+const struct v4l2_fract mt9t111_frameintervals[] = { -+ { .numerator = 1, .denominator = 10 } -+}; -+ -+#define NUM_CAPTURE_FRAMEINTERVALS ARRAY_SIZE(mt9t111_frameintervals) -+ -+/** -+ * struct mt9t111_sensor - main structure for storage of sensor information -+ * @pdata: access functions and data for platform level information -+ * @v4l2_int_device: V4L2 device structure structure -+ * @i2c_client: iic client device structure -+ * @pix: V4L2 pixel format information structure -+ * @timeperframe: time per frame expressed as V4L fraction -+ * @scaler: -+ * @ver: mt9t111 chip version -+ * @fps: frames per second value -+ */ -+struct mt9t111_sensor { -+ const struct mt9t111_platform_data *pdata; -+ struct v4l2_int_device *v4l2_int_device; -+ struct i2c_client *i2c_client; -+ struct v4l2_pix_format pix; -+ struct v4l2_fract timeperframe; -+ int scaler; -+ int ver; -+ int fps; -+ int state; -+}; -+ -+static struct mt9t111_sensor mt9t111 = { -+ .timeperframe = { -+ .numerator = 1, -+ .denominator = 10, -+ }, -+ .state = SENSOR_NOT_DETECTED, -+}; -+ -+/** -+ * mt9t111_read_reg - Read a value from a register in an mt9t111 sensor device -+ * @client: i2c driver client structure -+ * @data_length: length of data to be read -+ * @reg: register address / offset -+ * @val: stores the value that gets read -+ * -+ * Read a value from a register in an mt9t111 sensor device. -+ * The value is returned in 'val'. -+ * Returns zero if successful, or non-zero otherwise. -+ */ -+static int -+mt9t111_read_reg(struct i2c_client *client, u16 reg, u16 *val) -+{ -+ struct i2c_msg msg[1]; -+ u8 data[4]; -+ int err; -+ -+ msg->addr = client->addr; -+ msg->flags = 0; -+ msg->len = 2; -+ msg->buf = data; -+ data[0] = (reg & 0xff00) >> 8; -+ data[1] = (reg & 0x00ff); -+ err = i2c_transfer(client->adapter, msg, 1); -+ if (err >= 0) { -+ msg->flags = I2C_M_RD; -+ msg->len = 2; /* 2 byte read */ -+ err = i2c_transfer(client->adapter, msg, 1); -+ if (err >= 0) { -+ *val = ((data[0] & 0x00ff) << 8) -+ | (data[1] & 0x00ff); -+ return 0; -+ } -+ } -+ return err; -+} -+ -+/** -+ * mt9t111_write_reg - Write a value to a register in an mt9t111 sensor device -+ * @client: i2c driver client structure -+ * @data_length: length of data to be read -+ * @reg: register address / offset -+ * @val: value to be written to specified register -+ * -+ * Write a value to a register in an mt9t111 sensor device. -+ * Returns zero if successful, or non-zero otherwise. -+ */ -+static int -+mt9t111_write_reg(struct i2c_client *client, u16 reg, u16 val) -+{ -+ struct i2c_msg msg[1]; -+ u8 data[20]; -+ int err; -+ -+ msg->addr = client->addr; -+ msg->flags = 0; -+ msg->len = 4; -+ msg->buf = data; -+ data[0] = (u8)((reg & 0xff00) >> 8); -+ data[1] = (u8)(reg & 0x00ff); -+ data[2] = (u8)((val & 0xff00) >> 8); -+ data[3] = (u8)(val & 0x00ff); -+ err = i2c_transfer(client->adapter, msg, 1); -+ -+ return err; -+} -+ -+/** -+ * mt9t111_write_regs - Write registers to an mt9t111 sensor device -+ * @client: i2c driver client structure -+ * @reg_in: pointer to registers to write -+ * @cnt: the number of registers -+ * -+ * Write registers . -+ * Returns zero if successful, or non-zero otherwise. -+ */ -+static int -+mt9t111_write_regs(struct i2c_client *client, mt9t111_regs *reg_in, int cnt) -+{ -+ int err = 0; -+ int i; -+ mt9t111_regs *reg = reg_in; -+ -+ for (i=0;i<cnt;i++) { -+ if (reg->delay_time == 0) { -+ err |= mt9t111_write_reg(client, reg->addr, reg->data); -+ } else if (reg->addr != 0 || reg->data != 0) { -+ err |= mt9t111_write_reg(client, reg->addr, reg->data); -+ mdelay(reg->delay_time); -+ } else -+ mdelay(reg->delay_time); -+ -+ if (err < 0) { -+ dev_warn(&client->dev, "write reg error, addr = 0x%x, data = 0x%x \n", \ -+ reg->addr, reg->data); -+ return err; -+ } -+ reg++; -+ } -+ return err; -+} -+ -+/** -+ * mt9t111_detect - Detect if an mt9t111 is present, and if so which revision -+ * @client: pointer to the i2c client driver structure -+ * -+ * Detect if an mt9t111 is present -+ * Returns a negative error number if no device is detected, or the -+ * non-negative value of the version ID register if a device is detected. -+ */ -+static int -+mt9t111_detect(struct i2c_client *client) -+{ -+ u16 val; -+ -+ /* chip ID is at address 0 */ -+ if (mt9t111_read_reg(client, MT9T111_CHIP_ID, &val) < 0) -+ return -ENODEV; -+ dev_info(&client->dev, "model id detected 0x%x\n", val); -+ -+ if (val != MT9T111_CHIP_ID_VALUE) { -+ dev_warn(&client->dev, "model id mismatch received 0x%x expecting 0x%x\n", -+ val, MT9T111_CHIP_ID_VALUE); -+ -+ return -ENODEV; -+ } -+ -+ return 0; -+ -+} -+ -+/** -+ * mt9t111_configure - Configure the mt9t111 for the specified image mode -+ * @s: pointer to standard V4L2 device structure -+ * -+ * Configure the mt9t111 for a specified image size, pixel format, and frame -+ * period. xclk is the frequency (in Hz) of the xclk input to the mt9t111. -+ * fper is the frame period (in seconds) expressed as a fraction. -+ * Returns zero if successful, or non-zero otherwise. -+ * The actual frame period is returned in fper. -+ */ -+static int mt9t111_configure(struct v4l2_int_device *s) -+{ -+ debug_dummy("debug_dummy -- to set imager mode"); -+ -+ return 0; -+} -+ -+/** -+ * ioctl_enum_framesizes - V4L2 sensor if handler for vidioc_int_enum_framesizes -+ * @s: pointer to standard V4L2 device structure -+ * @frms: pointer to standard V4L2 framesizes enumeration structure -+ * -+ * Returns possible framesizes depending on choosen pixel format -+ **/ -+static int ioctl_enum_framesizes(struct v4l2_int_device *s, -+ struct v4l2_frmsizeenum *frms) -+{ -+ int ifmt; -+ -+ for (ifmt = 0; ifmt < NUM_CAPTURE_FORMATS; ifmt++) { -+ if (frms->pixel_format == mt9t111_formats[ifmt].pixelformat) -+ break; -+ } -+ /* Is requested pixelformat not found on sensor? */ -+ if (ifmt == NUM_CAPTURE_FORMATS) -+ return -EINVAL; -+ -+ /* Do we already reached all discrete framesizes? */ -+ if (frms->index >= NUM_CAPTURE_SIZE) -+ return -EINVAL; -+ -+ frms->type = V4L2_FRMSIZE_TYPE_DISCRETE; -+ frms->discrete.width = mt9t111_sizes[frms->index].width; -+ frms->discrete.height = mt9t111_sizes[frms->index].height; -+ -+ return 0; -+ -+} -+ -+static int ioctl_enum_frameintervals(struct v4l2_int_device *s, -+ struct v4l2_frmivalenum *frmi) -+{ -+ int ifmt; -+ -+printk(KERN_INFO "entering ioctl_enum_frameintervals\n"); -+printk(KERN_INFO "index = %d, pixel_format = 0x%x, width = %d, height = %d\n", -+ frmi->index, frmi->pixel_format, frmi->width, frmi->height); -+printk(KERN_INFO "mt9t111 format = 0x%x\n", mt9t111_formats[0].pixelformat); -+ -+ if (frmi->index >= NUM_CAPTURE_FRAMEINTERVALS) -+ return -EINVAL; -+ -+ for (ifmt = 0; ifmt < NUM_CAPTURE_FORMATS; ifmt++) { -+ if (frmi->pixel_format == mt9t111_formats[ifmt].pixelformat) -+ break; -+ } -+ /* Is requested pixelformat not found on sensor? */ -+ if (ifmt == NUM_CAPTURE_FORMATS) -+ return -EINVAL; -+ -+ frmi->type = V4L2_FRMSIZE_TYPE_DISCRETE; -+ frmi->discrete.numerator = -+ mt9t111_frameintervals[frmi->index].numerator; -+ frmi->discrete.denominator = -+ mt9t111_frameintervals[frmi->index].denominator; -+ return 0; -+} -+ -+/** -+ * ioctl_init - V4L2 sensor interface handler for VIDIOC_INT_INIT -+ * @s: pointer to standard V4L2 device structure -+ * -+ * Initialize the sensor device (call mt9t111_configure()) -+ */ -+static int ioctl_init(struct v4l2_int_device *s) -+{ -+ return 0; -+} -+ -+/** -+ * ioctl_dev_exit - V4L2 sensor interface handler for vidioc_int_dev_exit_num -+ * @s: pointer to standard V4L2 device structure -+ * -+ * Delinitialise the dev. at slave detach. The complement of ioctl_dev_init. -+ */ -+static int ioctl_dev_exit(struct v4l2_int_device *s) -+{ -+ return 0; -+} -+ -+/** -+ * ioctl_dev_init - V4L2 sensor interface handler for vidioc_int_dev_init_num -+ * @s: pointer to standard V4L2 device structure -+ * -+ * Initialise the device when slave attaches to the master. Returns 0 if -+ * mt9t111 device could be found, otherwise returns appropriate error. -+ */ -+static int ioctl_dev_init(struct v4l2_int_device *s) -+{ -+ return 0; -+} -+ -+/** -+ * ioctl_s_power - V4L2 sensor interface handler for vidioc_int_s_power_num -+ * @s: pointer to standard V4L2 device structure -+ * @on: power state to which device is to be set -+ * -+ * Sets devices power state to requrested state, if possible. -+ */ -+static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on) -+{ -+ struct mt9t111_sensor *sensor = s->priv; -+ struct i2c_client *c = sensor->i2c_client; -+ int rval; -+ -+ if ((on == V4L2_POWER_STANDBY) && (sensor->state == SENSOR_DETECTED)) -+ debug_dummy("debug_dummy -- put to standby\n"); -+ -+ if (on != V4L2_POWER_ON) -+ debug_dummy("debug_dummy -- stop master clock\n"); -+ else -+ debug_dummy("debug_dummy -- enable clock\n");; -+ -+ rval = sensor->pdata->power_set(on); -+ if (rval < 0) { -+ dev_err(&c->dev, "Unable to set the power state: " "mt9t111" -+ " sensor\n"); -+ //sensor->pdata->set_xclk(0); -+ return rval; -+ } -+ -+ if ((on == V4L2_POWER_ON) && (sensor->state == SENSOR_DETECTED)) -+ mt9t111_configure(s); -+ -+ if ((on == V4L2_POWER_ON) && (sensor->state == SENSOR_NOT_DETECTED)) { -+ rval = mt9t111_detect(c); -+ if (rval < 0) { -+ dev_err(&c->dev, "Unable to detect " "mt9t111" -+ " sensor\n"); -+ sensor->state = SENSOR_NOT_DETECTED; -+ return rval; -+ } -+ mt9t111_loaddefault(c); -+ sensor->state = SENSOR_DETECTED; -+ sensor->ver = rval; -+ pr_info("mt9t111" " chip version 0x%02x detected\n", -+ sensor->ver); -+ } -+ return 0; -+} -+ -+/** -+ * ioctl_g_priv - V4L2 sensor interface handler for vidioc_int_g_priv_num -+ * @s: pointer to standard V4L2 device structure -+ * @p: void pointer to hold sensor's private data address -+ * -+ * Returns device's (sensor's) private data area address in p parameter -+ */ -+static int ioctl_g_priv(struct v4l2_int_device *s, void *p) -+{ -+ struct mt9t111_sensor *sensor = s->priv; -+ -+ return sensor->pdata->priv_data_set(p); -+} -+ -+/** -+ * ioctl_s_parm - V4L2 sensor interface handler for VIDIOC_S_PARM ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @a: pointer to standard V4L2 VIDIOC_S_PARM ioctl structure -+ * -+ * Configures the sensor to use the input parameters, if possible. If -+ * not possible, reverts to the old parameters and returns the -+ * appropriate error code. -+ */ -+static int ioctl_s_parm(struct v4l2_int_device *s, -+ struct v4l2_streamparm *a) -+{ -+ //TODO: set paramters -+ debug_dummy("debug_dummy -- VIDIOC_S_PARM "); -+ return 0; -+} -+ -+/** -+ * ioctl_g_parm - V4L2 sensor interface handler for VIDIOC_G_PARM ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @a: pointer to standard V4L2 VIDIOC_G_PARM ioctl structure -+ * -+ * Returns the sensor's video CAPTURE parameters. -+ */ -+static int ioctl_g_parm(struct v4l2_int_device *s, -+ struct v4l2_streamparm *a) -+{ -+ struct mt9t111_sensor *sensor = s->priv; -+ struct v4l2_captureparm *cparm = &a->parm.capture; -+ -+ if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) -+ return -EINVAL; -+ -+ memset(a, 0, sizeof(*a)); -+ a->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; -+ -+ cparm->capability = V4L2_CAP_TIMEPERFRAME; -+ cparm->timeperframe = sensor->timeperframe; -+ -+ return 0; -+} -+ -+/** -+ * ioctl_g_fmt_cap - V4L2 sensor interface handler for ioctl_g_fmt_cap -+ * @s: pointer to standard V4L2 device structure -+ * @f: pointer to standard V4L2 v4l2_format structure -+ * -+ * Returns the sensor's current pixel format in the v4l2_format -+ * parameter. -+ */ -+static int ioctl_g_fmt_cap(struct v4l2_int_device *s, -+ struct v4l2_format *f) -+{ -+ struct mt9t111_sensor *sensor = s->priv; -+ f->fmt.pix = sensor->pix; -+ -+ return 0; -+} -+ -+/** -+ * ioctl_try_fmt_cap - Implement the CAPTURE buffer VIDIOC_TRY_FMT ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @f: pointer to standard V4L2 VIDIOC_TRY_FMT ioctl structure -+ * -+ * Implement the VIDIOC_TRY_FMT ioctl for the CAPTURE buffer type. This -+ * ioctl is used to negotiate the image capture size and pixel format -+ * without actually making it take effect. -+ */ -+static int ioctl_try_fmt_cap(struct v4l2_int_device *s, -+ struct v4l2_format *f) -+{ -+ struct v4l2_pix_format *pix = &f->fmt.pix; -+ struct mt9t111_sensor *sensor = s->priv; -+ struct v4l2_pix_format *pix2 = &sensor->pix; -+ -+ pix->width = 640; -+ pix->height = 480; -+#ifdef USE_RAW -+ pix->pixelformat = V4L2_PIX_FMT_SGRBG10; -+ pix->bytesperline = pix->width; -+ pix->colorspace = V4L2_COLORSPACE_SRGB; -+#else -+ pix->pixelformat = V4L2_PIX_FMT_YUYV; -+ pix->bytesperline = pix->width * 2; -+ pix->colorspace = V4L2_COLORSPACE_JPEG; -+#endif -+ pix->field = V4L2_FIELD_NONE; -+ -+ pix->sizeimage = pix->bytesperline * pix->height; -+ pix->priv = 0; -+ *pix2 = *pix; -+ return 0; -+} -+ -+/** -+ * ioctl_s_fmt_cap - V4L2 sensor interface handler for VIDIOC_S_FMT ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @f: pointer to standard V4L2 VIDIOC_S_FMT ioctl structure -+ * -+ * If the requested format is supported, configures the HW to use that -+ * format, returns error code if format not supported or HW can't be -+ * correctly configured. -+ */ -+static int ioctl_s_fmt_cap(struct v4l2_int_device *s, -+ struct v4l2_format *f) -+{ -+ struct mt9t111_sensor *sensor = s->priv; -+ struct v4l2_pix_format *pix = &f->fmt.pix; -+ int rval; -+ -+ rval = ioctl_try_fmt_cap(s, f); -+ if (!rval) -+ sensor->pix = *pix; -+ -+ return rval; -+} -+ -+/** -+ * ioctl_enum_fmt_cap - Implement the CAPTURE buffer VIDIOC_ENUM_FMT ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @fmt: standard V4L2 VIDIOC_ENUM_FMT ioctl structure -+ * -+ * Implement the VIDIOC_ENUM_FMT ioctl for the CAPTURE buffer type. -+ */ -+static int ioctl_enum_fmt_cap(struct v4l2_int_device *s, -+ struct v4l2_fmtdesc *fmt) -+{ -+ int index = fmt->index; -+ enum v4l2_buf_type type = fmt->type; -+ -+ memset(fmt, 0, sizeof(*fmt)); -+ fmt->index = index; -+ fmt->type = type; -+ -+ switch (fmt->type) { -+ case V4L2_BUF_TYPE_VIDEO_CAPTURE: -+ if (index >= NUM_CAPTURE_FORMATS) -+ return -EINVAL; -+ break; -+ default: -+ return -EINVAL; -+ } -+ -+ fmt->flags = mt9t111_formats[index].flags; -+ strlcpy(fmt->description, mt9t111_formats[index].description, -+ sizeof(fmt->description)); -+ fmt->pixelformat = mt9t111_formats[index].pixelformat; -+ -+ return 0; -+} -+ -+/** -+ * ioctl_s_ctrl - V4L2 sensor interface handler for VIDIOC_S_CTRL ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @vc: standard V4L2 VIDIOC_S_CTRL ioctl structure -+ * -+ * If the requested control is supported, sets the control's current -+ * value in HW (and updates the video_control[] array). Otherwise, -+ * returns -EINVAL if the control is not supported. -+ */ -+static int ioctl_s_ctrl(struct v4l2_int_device *s, -+ struct v4l2_control *vc) -+{ -+ debug_dummy("debug_dummy -- s ctrl\n"); -+ return 0; -+} -+ -+/** -+ * ioctl_g_ctrl - V4L2 sensor interface handler for VIDIOC_G_CTRL ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @vc: standard V4L2 VIDIOC_G_CTRL ioctl structure -+ * -+ * If the requested control is supported, returns the control's current -+ * value from the video_control[] array. Otherwise, returns -EINVAL -+ * if the control is not supported. -+ */ -+static int ioctl_g_ctrl(struct v4l2_int_device *s, -+ struct v4l2_control *vc) -+{ -+ debug_dummy("debug_dummy -- g ctrl\n"); -+ return 0; -+} -+ -+/** -+ * ioctl_queryctrl - V4L2 sensor interface handler for VIDIOC_QUERYCTRL ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @qc: standard V4L2 VIDIOC_QUERYCTRL ioctl structure -+ * -+ * If the requested control is supported, returns the control information -+ * from the video_control[] array. Otherwise, returns -EINVAL if the -+ * control is not supported. -+ */ -+static int ioctl_queryctrl(struct v4l2_int_device *s, -+ struct v4l2_queryctrl *qc) -+{ -+ debug_dummy("debug_dummy -- query ctrl\n"); -+ return-EINVAL; -+} -+ -+/** -+ * ioctl_s_routing - V4L2 decoder interface handler for VIDIOC_S_INPUT ioctl -+ * @s: pointer to standard V4L2 device structure -+ * @index: number of the input -+ * -+ * If index is valid, selects the requested input. Otherwise, returns -EINVAL if -+ * the input is not supported or there is no active signal present in the -+ * selected input. -+ */ -+static int ioctl_s_routing(struct v4l2_int_device *s, -+ struct v4l2_routing *route) -+{ -+ return 0; -+} -+ -+/** -+ * ioctl_g_ifparm - V4L2 decoder interface handler for vidioc_int_g_ifparm_num -+ * @s: pointer to standard V4L2 device structure -+ * @p: pointer to standard V4L2 vidioc_int_g_ifparm_num ioctl structure -+ * -+ * Gets slave interface parameters. -+ * Calculates the required xclk value to support the requested -+ * clock parameters in p. This value is returned in the p -+ * parameter. -+ */ -+static int ioctl_g_ifparm(struct v4l2_int_device *s, struct v4l2_ifparm *p) -+{ -+ struct mt9t111_sensor *sensor = s->priv; -+ int rval; -+ -+ if (p == NULL) -+ return -EINVAL; -+ -+ if (NULL == sensor->pdata->ifparm) -+ return -EINVAL; -+ -+ rval = sensor->pdata->ifparm(p); -+ if (rval) { -+ v4l_err(sensor->i2c_client, "g_ifparm.Err[%d]\n", rval); -+ return rval; -+ } -+ -+ p->u.ycbcr.clock_curr = 40*1000000; // temporal value -+ -+ return 0; -+} -+ -+ -+static struct v4l2_int_ioctl_desc mt9t111_ioctl_desc[] = { -+ { .num = vidioc_int_enum_framesizes_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_enum_framesizes }, -+ { .num = vidioc_int_enum_frameintervals_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_enum_frameintervals }, -+ { .num = vidioc_int_dev_init_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_dev_init }, -+ { .num = vidioc_int_dev_exit_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_dev_exit }, -+ { .num = vidioc_int_s_power_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_s_power }, -+ { .num = vidioc_int_g_priv_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_g_priv }, -+ {vidioc_int_g_ifparm_num, -+ .func = (v4l2_int_ioctl_func*) ioctl_g_ifparm}, -+ { .num = vidioc_int_init_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_init }, -+ { .num = vidioc_int_enum_fmt_cap_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_enum_fmt_cap }, -+ { .num = vidioc_int_try_fmt_cap_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_try_fmt_cap }, -+ { .num = vidioc_int_g_fmt_cap_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_g_fmt_cap }, -+ { .num = vidioc_int_s_fmt_cap_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_s_fmt_cap }, -+ { .num = vidioc_int_g_parm_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_g_parm }, -+ { .num = vidioc_int_s_parm_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_s_parm }, -+ { .num = vidioc_int_queryctrl_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_queryctrl }, -+ { .num = vidioc_int_g_ctrl_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_g_ctrl }, -+ { .num = vidioc_int_s_ctrl_num, -+ .func = (v4l2_int_ioctl_func *)ioctl_s_ctrl }, -+ {.num = vidioc_int_s_video_routing_num, -+ .func = (v4l2_int_ioctl_func *) ioctl_s_routing}, -+}; -+ -+static void mt9t111_refresh(struct i2c_client *client){ -+ int i; -+ unsigned short value; -+ // MCU_ADDRESS [SEQ_CMD] -- refresh -+ mt9t111_write_reg(client, 0x098E, 0x8400); -+ mt9t111_write_reg(client, 0x0990, 0x0006); -+ for (i=0;i<100;i++){ -+ mt9t111_write_reg(client, 0x098E, 0x8400); -+ mt9t111_read_reg(client,0x0990,&value); -+ if ( value == 0) -+ break; -+ mdelay(5); -+ } -+} -+ -+#ifdef COLOR_BAR -+static void mt9t111_color_bar(struct i2c_client *client) -+{ -+ mt9t111_write_reg(client, 0x3210, 0x01B0); // disable lens correction -+ -+ mt9t111_write_reg(client, 0x098E, 0x6003); -+ mt9t111_write_reg(client, 0x0990, 0x0100); -+ mt9t111_write_reg(client, 0x098E, 0x6025); -+ mt9t111_write_reg(client, 0x0990, 0x0003); -+} -+#endif -+ -+static void mt9t111_bayer_format(struct i2c_client *client) -+{ -+ mt9t111_write_regs(client, bayer_pattern_regs, sizeof(bayer_pattern_regs)/sizeof(mt9t111_regs)); -+} -+ -+static void mt9t111_enable_pll(struct i2c_client *client) -+{ -+ int i; -+ unsigned short value; -+ -+ mt9t111_write_regs(client, pll_regs1, sizeof(pll_regs1)/sizeof(mt9t111_regs)); -+ for (i=0;i<100;i++){ -+ mt9t111_read_reg(client,0x0014,&value); -+ if (( value & 0x8000) != 0) -+ break; -+ mdelay(2); -+ } -+ mt9t111_write_regs(client, pll_regs2, sizeof(pll_regs2)/sizeof(mt9t111_regs)); -+} -+ -+ -+static void mt9t111_loaddefault(struct i2c_client *client) -+{ -+ mt9t111_write_reg(client, 0x001A, 0x0219); -+ mt9t111_write_reg(client, 0x001A, 0x0218); -+ -+ mt9t111_enable_pll(client); -+ mt9t111_write_regs(client, def_regs1, sizeof(def_regs1)/sizeof(mt9t111_regs)); -+ mt9t111_write_regs(client, patch_rev6, sizeof(patch_rev6)/sizeof(mt9t111_regs)); -+ mt9t111_write_regs(client, def_regs2, sizeof(def_regs2)/sizeof(mt9t111_regs)); -+ -+#ifdef USE_RAW -+ mt9t111_bayer_format(client); -+#endif -+ -+#ifdef COLOR_BAR -+ mt9t111_color_bar(client); -+#endif -+ -+ mt9t111_refresh(client); -+} -+ -+static struct v4l2_int_slave mt9t111_slave = { -+ .ioctls = mt9t111_ioctl_desc, -+ .num_ioctls = ARRAY_SIZE(mt9t111_ioctl_desc), -+}; -+ -+static struct v4l2_int_device mt9t111_int_device = { -+ .module = THIS_MODULE, -+ .name = "mt9t111", -+ .priv = &mt9t111, -+ .type = v4l2_int_type_slave, -+ .u = { -+ .slave = &mt9t111_slave, -+ }, -+}; -+ -+/** -+ * mt9t111_probe - sensor driver i2c probe handler -+ * @client: i2c driver client device structure -+ * -+ * Register sensor as an i2c client device and V4L2 -+ * device. -+ */ -+static int -+mt9t111_probe(struct i2c_client *client, const struct i2c_device_id *id) -+{ -+ struct mt9t111_sensor *sensor = &mt9t111; -+ int err; -+ -+ if (i2c_get_clientdata(client)) -+ return -EBUSY; -+ -+ sensor->pdata = client->dev.platform_data; -+ -+ if (!sensor->pdata) { -+ dev_err(&client->dev, "no platform data?\n"); -+ return -ENODEV; -+ } -+ -+ sensor->v4l2_int_device = &mt9t111_int_device; -+ sensor->i2c_client = client; -+ -+ i2c_set_clientdata(client, sensor); -+ -+ sensor->pix.width = 640; -+ sensor->pix.height = 480; -+#ifdef USE_RAW -+ sensor->pix.pixelformat = V4L2_PIX_FMT_SGRBG10; -+#else -+ sensor->pix.pixelformat = V4L2_PIX_FMT_YUYV; -+#endif -+ err = v4l2_int_device_register(sensor->v4l2_int_device); -+ if (err) -+ i2c_set_clientdata(client, NULL); -+ return err; -+} -+ -+/** -+ * mt9t111_remove - sensor driver i2c remove handler -+ * @client: i2c driver client device structure -+ * -+ * Unregister sensor as an i2c client device and V4L2 -+ * device. Complement of mt9t111_probe(). -+ */ -+static int __exit -+mt9t111_remove(struct i2c_client *client) -+{ -+ struct mt9t111_sensor *sensor = i2c_get_clientdata(client); -+ -+ if (!client->adapter) -+ return -ENODEV; /* our client isn't attached */ -+ -+ v4l2_int_device_unregister(sensor->v4l2_int_device); -+ i2c_set_clientdata(client, NULL); -+ -+ return 0; -+} -+ -+static const struct i2c_device_id mt9t111_id[] = { -+ { "mt9t111", 0 }, -+ { }, -+}; -+MODULE_DEVICE_TABLE(i2c, mt9t111_id); -+ -+static struct i2c_driver mt9t111sensor_i2c_driver = { -+ .driver = { -+ .name = "mt9t111", -+ .owner = THIS_MODULE, -+ }, -+ .probe = mt9t111_probe, -+ .remove = __exit_p(mt9t111_remove), -+ .id_table = mt9t111_id, -+}; -+ -+/** -+ * mt9t111sensor_init - sensor driver module_init handler -+ * -+ * Registers driver as an i2c client driver. Returns 0 on success, -+ * error code otherwise. -+ */ -+static int __init mt9t111sensor_init(void) -+{ -+printk(KERN_INFO "entering mt9t111sensor_init\n"); -+ return i2c_add_driver(&mt9t111sensor_i2c_driver); -+} -+module_init(mt9t111sensor_init); -+ -+/** -+ * mt9t111sensor_cleanup - sensor driver module_exit handler -+ * -+ * Unregisters/deletes driver as an i2c client driver. -+ * Complement of mt9t111sensor_init. -+ */ -+static void __exit mt9t111sensor_cleanup(void) -+{ -+ i2c_del_driver(&mt9t111sensor_i2c_driver); -+} -+module_exit(mt9t111sensor_cleanup); -+ -+MODULE_LICENSE("GPL"); -+MODULE_DESCRIPTION("mt9t111 camera sensor driver"); -diff --git a/drivers/media/video/mt9t111_reg.h b/drivers/media/video/mt9t111_reg.h -new file mode 100644 -index 0000000..e012eeb ---- /dev/null -+++ b/drivers/media/video/mt9t111_reg.h -@@ -0,0 +1,1364 @@ -+/* -+ * drivers/media/video/mt9t111_reg.h -+ * -+ * mt9t111 sensor driver header file -+ * -+ * Copyright (C) 2009 Leopard Imaging -+ * -+ * This file is licensed under the terms of the GNU General Public License -+ * version 2. This program is licensed "as is" without any warranty of any -+ * kind, whether express or implied. -+ */ -+ -+#ifndef MT9T111_REG_H -+#define MT9T111_REG_H -+ -+/* register addr */ -+#define MT9T111_CHIP_ID (0x0000) -+ -+/* register value */ -+#define MT9T111_CHIP_ID_VALUE (0x2680) -+ -+typedef struct { -+ u16 delay_time; -+ u16 addr; -+ u16 data; -+} mt9t111_regs; -+ -+mt9t111_regs patch_rev6[] ={ -+ {0, 0x0982, 0x0}, -+ {0, 0x098A, 0xCE7}, -+ {0, 0x0990, 0x3C3C}, -+ {0, 0x0992, 0x3C3C}, -+ {0, 0x0994, 0x3C5F}, -+ {0, 0x0996, 0x4F30}, -+ {0, 0x0998, 0xED08}, -+ {0, 0x099a, 0xBD61}, -+ {0, 0x099c, 0xD5CE}, -+ {0, 0x099e, 0x4CD}, -+ {0, 0x098A, 0xCF7}, -+ {0, 0x0990, 0x1F17}, -+ {0, 0x0992, 0x211}, -+ {0, 0x0994, 0xCC33}, -+ {0, 0x0996, 0x2E30}, -+ {0, 0x0998, 0xED02}, -+ {0, 0x099a, 0xCCFF}, -+ {0, 0x099c, 0xFDED}, -+ {0, 0x099e, 0xCC}, -+ {0, 0x098A, 0xD07}, -+ {0, 0x0990, 0x2}, -+ {0, 0x0992, 0xBD70}, -+ {0, 0x0994, 0x6D18}, -+ {0, 0x0996, 0xDE1F}, -+ {0, 0x0998, 0x181F}, -+ {0, 0x099a, 0x8E01}, -+ {0, 0x099c, 0x10CC}, -+ {0, 0x099e, 0x3C52}, -+ {0, 0x098A, 0xD17}, -+ {0, 0x0990, 0x30ED}, -+ {0, 0x0992, 0x18}, -+ {0, 0x0994, 0xECA0}, -+ {0, 0x0996, 0xC4FD}, -+ {0, 0x0998, 0xBD70}, -+ {0, 0x099a, 0x2120}, -+ {0, 0x099c, 0x1ECC}, -+ {0, 0x099e, 0x3C52}, -+ {0, 0x098A, 0xD27}, -+ {0, 0x0990, 0x30ED}, -+ {0, 0x0992, 0xDE}, -+ {0, 0x0994, 0x1FEC}, -+ {0, 0x0996, 0xA0BD}, -+ {0, 0x0998, 0x7021}, -+ {0, 0x099a, 0xCC3C}, -+ {0, 0x099c, 0x5230}, -+ {0, 0x099e, 0xED02}, -+ {0, 0x098A, 0xD37}, -+ {0, 0x0990, 0xCCFF}, -+ {0, 0x0992, 0xFCED}, -+ {0, 0x0994, 0xCC}, -+ {0, 0x0996, 0x2}, -+ {0, 0x0998, 0xBD70}, -+ {0, 0x099a, 0x6DFC}, -+ {0, 0x099c, 0x4E1}, -+ {0, 0x099e, 0x1A83}, -+ {0, 0x098A, 0xD47}, -+ {0, 0x0990, 0x1}, -+ {0, 0x0992, 0x2720}, -+ {0, 0x0994, 0x1A83}, -+ {0, 0x0996, 0x4}, -+ {0, 0x0998, 0x271E}, -+ {0, 0x099a, 0x1A83}, -+ {0, 0x099c, 0x8}, -+ {0, 0x099e, 0x271C}, -+ {0, 0x098A, 0xD57}, -+ {0, 0x0990, 0x1A83}, -+ {0, 0x0992, 0x10}, -+ {0, 0x0994, 0x271A}, -+ {0, 0x0996, 0x1A83}, -+ {0, 0x0998, 0x20}, -+ {0, 0x099a, 0x2718}, -+ {0, 0x099c, 0x1A83}, -+ {0, 0x099e, 0x40}, -+ {0, 0x098A, 0xD67}, -+ {0, 0x0990, 0x2716}, -+ {0, 0x0992, 0x2019}, -+ {0, 0x0994, 0xC61E}, -+ {0, 0x0996, 0x2012}, -+ {0, 0x0998, 0xC622}, -+ {0, 0x099a, 0x200E}, -+ {0, 0x099c, 0xC621}, -+ {0, 0x099e, 0x200A}, -+ {0, 0x098A, 0xD77}, -+ {0, 0x0990, 0xC620}, -+ {0, 0x0992, 0x2006}, -+ {0, 0x0994, 0xC62A}, -+ {0, 0x0996, 0x2002}, -+ {0, 0x0998, 0xC62B}, -+ {0, 0x099a, 0x30ED}, -+ {0, 0x099c, 0x8CC}, -+ {0, 0x099e, 0x3400}, -+ {0, 0x098A, 0xD87}, -+ {0, 0x0990, 0x30ED}, -+ {0, 0x0992, 0x34}, -+ {0, 0x0994, 0xBD6F}, -+ {0, 0x0996, 0xD184}, -+ {0, 0x0998, 0x330}, -+ {0, 0x099a, 0xED07}, -+ {0, 0x099c, 0xA60A}, -+ {0, 0x099e, 0x4848}, -+ {0, 0x098A, 0xD97}, -+ {0, 0x0990, 0x5FED}, -+ {0, 0x0992, 0x5EA}, -+ {0, 0x0994, 0x8AA}, -+ {0, 0x0996, 0x731}, -+ {0, 0x0998, 0xBD70}, -+ {0, 0x099a, 0x2130}, -+ {0, 0x099c, 0xC60A}, -+ {0, 0x099e, 0x3A35}, -+ {0, 0x098A, 0xDA7}, -+ {0, 0x0990, 0x3937}, -+ {0, 0x0992, 0x3C3C}, -+ {0, 0x0994, 0x3C34}, -+ {0, 0x0996, 0xDE2F}, -+ {0, 0x0998, 0xEE0E}, -+ {0, 0x099a, 0xAD00}, -+ {0, 0x099c, 0x7D13}, -+ {0, 0x099e, 0xEF27}, -+ {0, 0x098A, 0xDB7}, -+ {0, 0x0990, 0x7CCE}, -+ {0, 0x0992, 0x13E0}, -+ {0, 0x0994, 0x1E05}, -+ {0, 0x0996, 0x1060}, -+ {0, 0x0998, 0xE60E}, -+ {0, 0x099a, 0x4FC3}, -+ {0, 0x099c, 0x13F0}, -+ {0, 0x099e, 0x8FE6}, -+ {0, 0x098A, 0xDC7}, -+ {0, 0x0990, 0x30}, -+ {0, 0x0992, 0xE107}, -+ {0, 0x0994, 0x2216}, -+ {0, 0x0996, 0xF613}, -+ {0, 0x0998, 0xEE4F}, -+ {0, 0x099a, 0xC313}, -+ {0, 0x099c, 0xF38F}, -+ {0, 0x099e, 0xE600}, -+ {0, 0x098A, 0xDD7}, -+ {0, 0x0990, 0x30E1}, -+ {0, 0x0992, 0x725}, -+ {0, 0x0994, 0x7F6}, -+ {0, 0x0996, 0x13EE}, -+ {0, 0x0998, 0xC103}, -+ {0, 0x099a, 0x253C}, -+ {0, 0x099c, 0x7F13}, -+ {0, 0x099e, 0xEEF6}, -+ {0, 0x098A, 0xDE7}, -+ {0, 0x0990, 0x13EF}, -+ {0, 0x0992, 0xE706}, -+ {0, 0x0994, 0xCC13}, -+ {0, 0x0996, 0xF0ED}, -+ {0, 0x0998, 0x4CC}, -+ {0, 0x099a, 0x13F3}, -+ {0, 0x099c, 0x200F}, -+ {0, 0x099e, 0x7C13}, -+ {0, 0x098A, 0xDF7}, -+ {0, 0x0990, 0xEEEC}, -+ {0, 0x0992, 0x4C3}, -+ {0, 0x0994, 0x1}, -+ {0, 0x0996, 0xED04}, -+ {0, 0x0998, 0xEC02}, -+ {0, 0x099a, 0xC300}, -+ {0, 0x099c, 0x1ED}, -+ {0, 0x099e, 0x2F6}, -+ {0, 0x098A, 0xE07}, -+ {0, 0x0990, 0x13EE}, -+ {0, 0x0992, 0xE106}, -+ {0, 0x0994, 0x2412}, -+ {0, 0x0996, 0xEE04}, -+ {0, 0x0998, 0xE600}, -+ {0, 0x099a, 0x30E1}, -+ {0, 0x099c, 0x722}, -+ {0, 0x099e, 0xDFEE}, -+ {0, 0x098A, 0xE17}, -+ {0, 0x0990, 0x2E6}, -+ {0, 0x0992, 0x30}, -+ {0, 0x0994, 0xE107}, -+ {0, 0x0996, 0x25D6}, -+ {0, 0x0998, 0xDE49}, -+ {0, 0x099a, 0xEE08}, -+ {0, 0x099c, 0xAD00}, -+ {0, 0x099e, 0xCC13}, -+ {0, 0x098A, 0xE27}, -+ {0, 0x0990, 0xF630}, -+ {0, 0x0992, 0xED00}, -+ {0, 0x0994, 0xDE2F}, -+ {0, 0x0996, 0xEE10}, -+ {0, 0x0998, 0xCC13}, -+ {0, 0x099a, 0xFAAD}, -+ {0, 0x099c, 0x38}, -+ {0, 0x099e, 0x3838}, -+ {0, 0x098A, 0xE37}, -+ {0, 0x0990, 0x3839}, -+ {0, 0x098A, 0x1000}, -+ {0, 0x0990, 0xCC10}, -+ {0, 0x0992, 0x9BD}, -+ {0, 0x0994, 0x4224}, -+ {0, 0x0996, 0x7E10}, -+ {0, 0x0998, 0x9C6}, -+ {0, 0x099a, 0x1F7}, -+ {0, 0x099c, 0x18A}, -+ {0, 0x099e, 0xC606}, -+ {0, 0x098A, 0x1010}, -+ {0, 0x0990, 0xF701}, -+ {0, 0x0992, 0x8BDE}, -+ {0, 0x0994, 0x3F18}, -+ {0, 0x0996, 0xCE0B}, -+ {0, 0x0998, 0xF1CC}, -+ {0, 0x099a, 0x11}, -+ {0, 0x099c, 0xBDD7}, -+ {0, 0x099e, 0xCC}, -+ {0, 0x098A, 0x1020}, -+ {0, 0x0990, 0xBF1}, -+ {0, 0x0992, 0xDD3F}, -+ {0, 0x0994, 0xDE35}, -+ {0, 0x0996, 0x18CE}, -+ {0, 0x0998, 0xC03}, -+ {0, 0x099a, 0xCC00}, -+ {0, 0x099c, 0x3FBD}, -+ {0, 0x099e, 0xD700}, -+ {0, 0x098A, 0x1030}, -+ {0, 0x0990, 0xCC0C}, -+ {0, 0x0992, 0x3DD}, -+ {0, 0x0994, 0x35DE}, -+ {0, 0x0996, 0x4718}, -+ {0, 0x0998, 0xCE0C}, -+ {0, 0x099a, 0x43CC}, -+ {0, 0x099c, 0x15}, -+ {0, 0x099e, 0xBDD7}, -+ {0, 0x098A, 0x1040}, -+ {0, 0x0990, 0xCC}, -+ {0, 0x0992, 0xC43}, -+ {0, 0x0994, 0xDD47}, -+ {0, 0x0996, 0xFE00}, -+ {0, 0x0998, 0x3318}, -+ {0, 0x099a, 0xCE0C}, -+ {0, 0x099c, 0x59CC}, -+ {0, 0x099e, 0x9}, -+ {0, 0x098A, 0x1050}, -+ {0, 0x0990, 0xBDD7}, -+ {0, 0x0992, 0xCC}, -+ {0, 0x0994, 0xC59}, -+ {0, 0x0996, 0xFD00}, -+ {0, 0x0998, 0x33DE}, -+ {0, 0x099a, 0x4118}, -+ {0, 0x099c, 0xCE0C}, -+ {0, 0x099e, 0x63CC}, -+ {0, 0x098A, 0x1060}, -+ {0, 0x0990, 0xD}, -+ {0, 0x0992, 0xBDD7}, -+ {0, 0x0994, 0xCC}, -+ {0, 0x0996, 0xC63}, -+ {0, 0x0998, 0xDD41}, -+ {0, 0x099a, 0xFE00}, -+ {0, 0x099c, 0x3118}, -+ {0, 0x099e, 0xCE0C}, -+ {0, 0x098A, 0x1070}, -+ {0, 0x0990, 0x71CC}, -+ {0, 0x0992, 0x29}, -+ {0, 0x0994, 0xBDD7}, -+ {0, 0x0996, 0xCC}, -+ {0, 0x0998, 0xC71}, -+ {0, 0x099a, 0xFD00}, -+ {0, 0x099c, 0x31DE}, -+ {0, 0x099e, 0x3918}, -+ {0, 0x098A, 0x1080}, -+ {0, 0x0990, 0xCE0C}, -+ {0, 0x0992, 0x9BCC}, -+ {0, 0x0994, 0x23}, -+ {0, 0x0996, 0xBDD7}, -+ {0, 0x0998, 0xCC}, -+ {0, 0x099a, 0xC9B}, -+ {0, 0x099c, 0xDD39}, -+ {0, 0x099e, 0xDE49}, -+ {0, 0x098A, 0x1090}, -+ {0, 0x0990, 0x18CE}, -+ {0, 0x0992, 0xCBF}, -+ {0, 0x0994, 0xCC00}, -+ {0, 0x0996, 0xDBD}, -+ {0, 0x0998, 0xD700}, -+ {0, 0x099a, 0xCC0C}, -+ {0, 0x099c, 0xBFDD}, -+ {0, 0x099e, 0x49CC}, -+ {0, 0x098A, 0x10A0}, -+ {0, 0x0990, 0x1162}, -+ {0, 0x0992, 0xFD0B}, -+ {0, 0x0994, 0xFDCC}, -+ {0, 0x0996, 0xCE7}, -+ {0, 0x0998, 0xFD0C}, -+ {0, 0x099a, 0x1FCC}, -+ {0, 0x099c, 0x1245}, -+ {0, 0x099e, 0xFD0C}, -+ {0, 0x098A, 0x10B0}, -+ {0, 0x0990, 0x51CC}, -+ {0, 0x0992, 0x110B}, -+ {0, 0x0994, 0xFD0C}, -+ {0, 0x0996, 0x5BCC}, -+ {0, 0x0998, 0x1108}, -+ {0, 0x099a, 0xFD0C}, -+ {0, 0x099c, 0x65CC}, -+ {0, 0x099e, 0x10D0}, -+ {0, 0x098A, 0x10C0}, -+ {0, 0x0990, 0xFD0C}, -+ {0, 0x0992, 0x7BCC}, -+ {0, 0x0994, 0x12DE}, -+ {0, 0x0996, 0xFD0C}, -+ {0, 0x0998, 0xA7CC}, -+ {0, 0x099a, 0xDA8}, -+ {0, 0x099c, 0xFD0C}, -+ {0, 0x099e, 0xCB39}, -+ {0, 0x098A, 0x10D0}, -+ {0, 0x0990, 0x37DE}, -+ {0, 0x0992, 0x1DEC}, -+ {0, 0x0994, 0xC5F}, -+ {0, 0x0996, 0x8402}, -+ {0, 0x0998, 0x4416}, -+ {0, 0x099a, 0x4FF7}, -+ {0, 0x099c, 0xCCD}, -+ {0, 0x099e, 0xE60B}, -+ {0, 0x098A, 0x10E0}, -+ {0, 0x0990, 0xC407}, -+ {0, 0x0992, 0xF70C}, -+ {0, 0x0994, 0xCE7F}, -+ {0, 0x0996, 0x30C4}, -+ {0, 0x0998, 0xEC25}, -+ {0, 0x099a, 0xFD30}, -+ {0, 0x099c, 0xC5FC}, -+ {0, 0x099e, 0x6D6}, -+ {0, 0x098A, 0x10F0}, -+ {0, 0x0990, 0xFD30}, -+ {0, 0x0992, 0xC701}, -+ {0, 0x0994, 0xFC30}, -+ {0, 0x0996, 0xC0FD}, -+ {0, 0x0998, 0xBED}, -+ {0, 0x099a, 0xFC30}, -+ {0, 0x099c, 0xC2FD}, -+ {0, 0x099e, 0xBEF}, -+ {0, 0x098A, 0x1100}, -+ {0, 0x0990, 0x30E6}, -+ {0, 0x0992, 0xBD}, -+ {0, 0x0994, 0x5203}, -+ {0, 0x0996, 0x3139}, -+ {0, 0x0998, 0x7E9E}, -+ {0, 0x099a, 0x143C}, -+ {0, 0x099c, 0x3C3C}, -+ {0, 0x099e, 0x2101}, -+ {0, 0x098A, 0x1110}, -+ {0, 0x0990, 0xCC00}, -+ {0, 0x0992, 0x18BD}, -+ {0, 0x0994, 0x6FD1}, -+ {0, 0x0996, 0xC504}, -+ {0, 0x0998, 0x26F5}, -+ {0, 0x099a, 0xDC25}, -+ {0, 0x099c, 0x30ED}, -+ {0, 0x099e, 0x420}, -+ {0, 0x098A, 0x1120}, -+ {0, 0x0990, 0x12EE}, -+ {0, 0x0992, 0x43C}, -+ {0, 0x0994, 0x1838}, -+ {0, 0x0996, 0xE621}, -+ {0, 0x0998, 0x18E7}, -+ {0, 0x099a, 0xBE30}, -+ {0, 0x099c, 0xEE04}, -+ {0, 0x099e, 0xEC1D}, -+ {0, 0x098A, 0x1130}, -+ {0, 0x0990, 0x30ED}, -+ {0, 0x0992, 0x4EC}, -+ {0, 0x0994, 0x426}, -+ {0, 0x0996, 0xEACC}, -+ {0, 0x0998, 0x1A}, -+ {0, 0x099a, 0xED02}, -+ {0, 0x099c, 0xCCFB}, -+ {0, 0x099e, 0xFFED}, -+ {0, 0x098A, 0x1140}, -+ {0, 0x0990, 0xCC}, -+ {0, 0x0992, 0x400}, -+ {0, 0x0994, 0xBD70}, -+ {0, 0x0996, 0x6DCC}, -+ {0, 0x0998, 0x1A}, -+ {0, 0x099a, 0x30ED}, -+ {0, 0x099c, 0x2CC}, -+ {0, 0x099e, 0xFBFF}, -+ {0, 0x098A, 0x1150}, -+ {0, 0x0990, 0xED00}, -+ {0, 0x0992, 0x5F4F}, -+ {0, 0x0994, 0xBD70}, -+ {0, 0x0996, 0x6D5F}, -+ {0, 0x0998, 0xBD5B}, -+ {0, 0x099a, 0x17BD}, -+ {0, 0x099c, 0x558B}, -+ {0, 0x099e, 0x3838}, -+ {0, 0x098A, 0x1160}, -+ {0, 0x0990, 0x3839}, -+ {0, 0x0992, 0x3C3C}, -+ {0, 0x0994, 0xC640}, -+ {0, 0x0996, 0xF730}, -+ {0, 0x0998, 0xC4FC}, -+ {0, 0x099a, 0xBED}, -+ {0, 0x099c, 0xFD30}, -+ {0, 0x099e, 0xC0FC}, -+ {0, 0x098A, 0x1170}, -+ {0, 0x0990, 0xBEF}, -+ {0, 0x0992, 0xFD30}, -+ {0, 0x0994, 0xC2DE}, -+ {0, 0x0996, 0x1DEC}, -+ {0, 0x0998, 0x25FD}, -+ {0, 0x099a, 0x30C5}, -+ {0, 0x099c, 0x101}, -+ {0, 0x099e, 0x1FC}, -+ {0, 0x098A, 0x1180}, -+ {0, 0x0990, 0x30C2}, -+ {0, 0x0992, 0xFD06}, -+ {0, 0x0994, 0xD6EC}, -+ {0, 0x0996, 0xC5F}, -+ {0, 0x0998, 0x8402}, -+ {0, 0x099a, 0x4416}, -+ {0, 0x099c, 0x4F30}, -+ {0, 0x099e, 0xE703}, -+ {0, 0x098A, 0x1190}, -+ {0, 0x0990, 0xF10C}, -+ {0, 0x0992, 0xCD27}, -+ {0, 0x0994, 0x15F1}, -+ {0, 0x0996, 0xCCD}, -+ {0, 0x0998, 0x2309}, -+ {0, 0x099a, 0xFC06}, -+ {0, 0x099c, 0xD604}, -+ {0, 0x099e, 0xFD06}, -+ {0, 0x098A, 0x11A0}, -+ {0, 0x0990, 0xD620}, -+ {0, 0x0992, 0x7FC}, -+ {0, 0x0994, 0x6D6}, -+ {0, 0x0996, 0x5FD}, -+ {0, 0x0998, 0x6D6}, -+ {0, 0x099a, 0xDE1D}, -+ {0, 0x099c, 0xE60B}, -+ {0, 0x099e, 0xC407}, -+ {0, 0x098A, 0x11B0}, -+ {0, 0x0990, 0x30E7}, -+ {0, 0x0992, 0x2F1}, -+ {0, 0x0994, 0xCCE}, -+ {0, 0x0996, 0x272C}, -+ {0, 0x0998, 0x7D0C}, -+ {0, 0x099a, 0xCE27}, -+ {0, 0x099c, 0x275D}, -+ {0, 0x099e, 0x2724}, -+ {0, 0x098A, 0x11C0}, -+ {0, 0x0990, 0x7F30}, -+ {0, 0x0992, 0xC4FC}, -+ {0, 0x0994, 0x6D6}, -+ {0, 0x0996, 0xFD30}, -+ {0, 0x0998, 0xC5F6}, -+ {0, 0x099a, 0xCCE}, -+ {0, 0x099c, 0x4FFD}, -+ {0, 0x099e, 0x30C7}, -+ {0, 0x098A, 0x11D0}, -+ {0, 0x0990, 0xC640}, -+ {0, 0x0992, 0xF730}, -+ {0, 0x0994, 0xC4E6}, -+ {0, 0x0996, 0x24F}, -+ {0, 0x0998, 0xFD30}, -+ {0, 0x099a, 0xC501}, -+ {0, 0x099c, 0x101}, -+ {0, 0x099e, 0xFC30}, -+ {0, 0x098A, 0x11E0}, -+ {0, 0x0990, 0xC2FD}, -+ {0, 0x0992, 0x6D6}, -+ {0, 0x0994, 0x7D06}, -+ {0, 0x0996, 0xCB27}, -+ {0, 0x0998, 0x2EC6}, -+ {0, 0x099a, 0x40F7}, -+ {0, 0x099c, 0x30C4}, -+ {0, 0x099e, 0xFC06}, -+ {0, 0x098A, 0x11F0}, -+ {0, 0x0990, 0xC104}, -+ {0, 0x0992, 0xF306}, -+ {0, 0x0994, 0xD6ED}, -+ {0, 0x0996, 0x5F}, -+ {0, 0x0998, 0x6D00}, -+ {0, 0x099a, 0x2A01}, -+ {0, 0x099c, 0x5317}, -+ {0, 0x099e, 0xFD30}, -+ {0, 0x098A, 0x1200}, -+ {0, 0x0990, 0xC0EC}, -+ {0, 0x0992, 0xFD}, -+ {0, 0x0994, 0x30C2}, -+ {0, 0x0996, 0xFC06}, -+ {0, 0x0998, 0xC1FD}, -+ {0, 0x099a, 0x30C5}, -+ {0, 0x099c, 0x101}, -+ {0, 0x099e, 0x1FC}, -+ {0, 0x098A, 0x1210}, -+ {0, 0x0990, 0x30C2}, -+ {0, 0x0992, 0xFD06}, -+ {0, 0x0994, 0xC720}, -+ {0, 0x0996, 0x227F}, -+ {0, 0x0998, 0x30C4}, -+ {0, 0x099a, 0xDE1D}, -+ {0, 0x099c, 0xEC25}, -+ {0, 0x099e, 0xFD30}, -+ {0, 0x098A, 0x1220}, -+ {0, 0x0990, 0xC5FC}, -+ {0, 0x0992, 0x6D6}, -+ {0, 0x0994, 0xFD30}, -+ {0, 0x0996, 0xC701}, -+ {0, 0x0998, 0xFC30}, -+ {0, 0x099a, 0xC0FD}, -+ {0, 0x099c, 0x6D0}, -+ {0, 0x099e, 0xFC30}, -+ {0, 0x098A, 0x1230}, -+ {0, 0x0990, 0xC2FD}, -+ {0, 0x0992, 0x6D2}, -+ {0, 0x0994, 0xEC25}, -+ {0, 0x0996, 0xFD06}, -+ {0, 0x0998, 0xC3BD}, -+ {0, 0x099a, 0x953C}, -+ {0, 0x099c, 0xDE3F}, -+ {0, 0x099e, 0xEE10}, -+ {0, 0x098A, 0x1240}, -+ {0, 0x0990, 0xAD00}, -+ {0, 0x0992, 0x3838}, -+ {0, 0x0994, 0x3930}, -+ {0, 0x0996, 0x8FC3}, -+ {0, 0x0998, 0xFFE9}, -+ {0, 0x099a, 0x8F35}, -+ {0, 0x099c, 0xBDAD}, -+ {0, 0x099e, 0x1530}, -+ {0, 0x098A, 0x1250}, -+ {0, 0x0990, 0x6F16}, -+ {0, 0x0992, 0x18DE}, -+ {0, 0x0994, 0x1918}, -+ {0, 0x0996, 0x8FC3}, -+ {0, 0x0998, 0x14B}, -+ {0, 0x099a, 0x188F}, -+ {0, 0x099c, 0x18EC}, -+ {0, 0x099e, 0xFD}, -+ {0, 0x098A, 0x1260}, -+ {0, 0x0990, 0x50E}, -+ {0, 0x0992, 0x18EC}, -+ {0, 0x0994, 0x2FD}, -+ {0, 0x0996, 0x510}, -+ {0, 0x0998, 0xE616}, -+ {0, 0x099a, 0x4FED}, -+ {0, 0x099c, 0x418}, -+ {0, 0x099e, 0x8FC3}, -+ {0, 0x098A, 0x1270}, -+ {0, 0x0990, 0xFFCB}, -+ {0, 0x0992, 0xE304}, -+ {0, 0x0994, 0x8FE6}, -+ {0, 0x0996, 0xF7}, -+ {0, 0x0998, 0x514}, -+ {0, 0x099a, 0x18DE}, -+ {0, 0x099c, 0x1930}, -+ {0, 0x099e, 0xE616}, -+ {0, 0x098A, 0x1280}, -+ {0, 0x0990, 0x4FED}, -+ {0, 0x0992, 0x418}, -+ {0, 0x0994, 0x8FC3}, -+ {0, 0x0996, 0x119}, -+ {0, 0x0998, 0xE304}, -+ {0, 0x099a, 0x8FE6}, -+ {0, 0x099c, 0xF7}, -+ {0, 0x099e, 0x515}, -+ {0, 0x098A, 0x1290}, -+ {0, 0x0990, 0xFC05}, -+ {0, 0x0992, 0x5BFD}, -+ {0, 0x0994, 0x512}, -+ {0, 0x0996, 0xDE37}, -+ {0, 0x0998, 0xEE08}, -+ {0, 0x099a, 0xAD00}, -+ {0, 0x099c, 0x30E6}, -+ {0, 0x099e, 0x164F}, -+ {0, 0x098A, 0x12A0}, -+ {0, 0x0990, 0x5ED}, -+ {0, 0x0992, 0x48F}, -+ {0, 0x0994, 0xC300}, -+ {0, 0x0996, 0x630}, -+ {0, 0x0998, 0xE304}, -+ {0, 0x099a, 0x8FF6}, -+ {0, 0x099c, 0x516}, -+ {0, 0x099e, 0x4FED}, -+ {0, 0x098A, 0x12B0}, -+ {0, 0x0990, 0x30}, -+ {0, 0x0992, 0x6C16}, -+ {0, 0x0994, 0xE616}, -+ {0, 0x0996, 0xC103}, -+ {0, 0x0998, 0x2598}, -+ {0, 0x099a, 0xCC32}, -+ {0, 0x099c, 0x8EED}, -+ {0, 0x099e, 0xEC}, -+ {0, 0x098A, 0x12C0}, -+ {0, 0x0990, 0x6BD}, -+ {0, 0x0992, 0x7021}, -+ {0, 0x0994, 0xCC32}, -+ {0, 0x0996, 0x6C30}, -+ {0, 0x0998, 0xED02}, -+ {0, 0x099a, 0xCCF8}, -+ {0, 0x099c, 0xED}, -+ {0, 0x099e, 0xA6}, -+ {0, 0x098A, 0x12D0}, -+ {0, 0x0990, 0x9E3}, -+ {0, 0x0992, 0xA84}, -+ {0, 0x0994, 0x7BD}, -+ {0, 0x0996, 0x706D}, -+ {0, 0x0998, 0x30C6}, -+ {0, 0x099a, 0x173A}, -+ {0, 0x099c, 0x3539}, -+ {0, 0x099e, 0x3CBD}, -+ {0, 0x098A, 0x12E0}, -+ {0, 0x0990, 0x776D}, -+ {0, 0x0992, 0xCC32}, -+ {0, 0x0994, 0x5C30}, -+ {0, 0x0996, 0xED00}, -+ {0, 0x0998, 0xFC13}, -+ {0, 0x099a, 0x8683}, -+ {0, 0x099c, 0x1}, -+ {0, 0x099e, 0xBD70}, -+ {0, 0x098A, 0x12F0}, -+ {0, 0x0990, 0x21CC}, -+ {0, 0x0992, 0x325E}, -+ {0, 0x0994, 0x30ED}, -+ {0, 0x0996, 0xFC}, -+ {0, 0x0998, 0x1388}, -+ {0, 0x099a, 0x8300}, -+ {0, 0x099c, 0x1BD}, -+ {0, 0x099e, 0x7021}, -+ {0, 0x098A, 0x1300}, -+ {0, 0x0990, 0x3839}, -+ {0, 0x098E, 0x0010}, -+ {0, 0x0990, 0x1000}, -+ {0, 0x098E, 0x0003}, -+ {100, 0x0990, 0x0004} -+}; -+ -+mt9t111_regs def_regs1[] ={ -+ {0, 0x001A, 0x0218}, -+ {0, 0x001E, 0x0777}, -+ {0, 0x3084, 0x2409}, -+ {0, 0x3092, 0x0A49}, -+ {0, 0x3094, 0x4949}, -+ {0, 0x3096, 0x4950}, -+ {0, 0x0018, 0x402D}, -+ {100, 0x0018, 0x402C}, -+ {0, 0x098E, 0x6800}, -+ {0, 0x0990, 0x0280}, -+ {0, 0x098E, 0x6802}, -+ {0, 0x0990, 0x01E0}, -+ {0, 0x098E, 0xE88E}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x68A0}, -+ {0, 0x0990, 0x082D}, -+ {0, 0x098E, 0x4802}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x4804}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x4806}, -+ {0, 0x0990, 0x060D}, -+ {0, 0x098E, 0x4808}, -+ {0, 0x0990, 0x080D}, -+ {0, 0x098E, 0x480A}, -+ {0, 0x0990, 0x0111}, -+ {0, 0x098E, 0x480C}, -+ {0, 0x0990, 0x046C}, -+ {0, 0x098E, 0x480F}, -+ {0, 0x0990, 0x00CC}, -+ {0, 0x098E, 0x4811}, -+ {0, 0x0990, 0x0381}, -+ {0, 0x098E, 0x4813}, -+ {0, 0x0990, 0x024F}, -+ {0, 0x098E, 0x481D}, -+ {0, 0x0990, 0x05AE}, -+ {0, 0x098E, 0x481F}, -+ {0, 0x0990, 0x05D0}, -+ {0, 0x098E, 0x4825}, -+ {0, 0x0990, 0x07AC}, -+ {0, 0x098E, 0x6C00}, -+ {0, 0x0990, 0x0800}, -+ {0, 0x098E, 0x6C02}, -+ {0, 0x0990, 0x0600}, -+ {0, 0x098E, 0xEC8E}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x6CA0}, -+ {0, 0x0990, 0x082D}, -+ {0, 0x098E, 0x484A}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x484C}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x484E}, -+ {0, 0x0990, 0x060D}, -+ {0, 0x098E, 0x4850}, -+ {0, 0x0990, 0x080D}, -+ {0, 0x098E, 0x4852}, -+ {0, 0x0990, 0x0111}, -+ {0, 0x098E, 0x4854}, -+ {0, 0x0990, 0x146C}, -+ {0, 0x098E, 0x4857}, -+ {0, 0x0990, 0x00CC}, -+ {0, 0x098E, 0x4859}, -+ {0, 0x0990, 0x0381}, -+ {0, 0x098E, 0x485B}, -+ {0, 0x0990, 0x024F}, -+ {0, 0x098E, 0x4865}, -+ {0, 0x0990, 0x05AE}, -+ {0, 0x098E, 0x4867}, -+ {0, 0x0990, 0x05D0}, -+ {0, 0x098E, 0x486D}, -+ {0, 0x0990, 0x07AC}, -+ {0, 0x098E, 0xC8A5}, -+ {0, 0x0990, 0x001D}, -+ {0, 0x098E, 0xC8A6}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0xC8A7}, -+ {0, 0x0990, 0x0023}, -+ {0, 0x098E, 0xC8A8}, -+ {0, 0x0990, 0x0026}, -+ {0, 0x098E, 0xC844}, -+ {0, 0x0990, 0x0091}, -+ {0, 0x098E, 0xC92F}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xC845}, -+ {0, 0x0990, 0x0079}, -+ {0, 0x098E, 0xC92D}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xC88C}, -+ {0, 0x0990, 0x0091}, -+ {0, 0x098E, 0xC930}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xC88D}, -+ {0, 0x0990, 0x0079}, -+ {0, 0x098E, 0xC92E}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xA002}, -+ {0, 0x0990, 0x0010}, -+ {0, 0x098E, 0xA009}, -+ {0, 0x0990, 0x0002}, -+ {0, 0x098E, 0xA00A}, -+ {0, 0x0990, 0x0003}, -+ {0, 0x098E, 0xA00C}, -+ {0, 0x0990, 0x000A}, -+ {0, 0x098E, 0x4846}, -+ {0, 0x0990, 0x0014}, -+ {0, 0x098E, 0x68AA}, -+ {0, 0x0990, 0x0278}, -+ {0, 0x098E, 0x488E}, -+ {0, 0x0990, 0x0014}, -+ {0, 0x098E, 0x6CAA}, -+ {0, 0x0990, 0x0218}, -+ {0, 0x098E, 0x8400}, -+ {0, 0x0990, 0x0006}, -+ {0, 0x098E, 0x8400}, -+ {0, 0x0990, 0x0005}, -+ {0, 0x3C20, 0x0001}, -+ {0, 0x364A, 0x7D2F}, -+ {0, 0x364C, 0x79EB}, -+ {0, 0x364E, 0x18D2}, -+ {0, 0x3650, 0x9F8F}, -+ {0, 0x3652, 0xA7D2}, -+ {0, 0x368A, 0x460C}, -+ {0, 0x368C, 0x14F0}, -+ {0, 0x368E, 0x946F}, -+ {0, 0x3690, 0xC471}, -+ {0, 0x3692, 0x04B1}, -+ {0, 0x36CA, 0x0433}, -+ {0, 0x36CC, 0x680D}, -+ {0, 0x36CE, 0xEEF3}, -+ {0, 0x36D0, 0x4850}, -+ {0, 0x36D2, 0xF233}, -+ {0, 0x370A, 0xB2AF}, -+ {0, 0x370C, 0x2CF0}, -+ {0, 0x370E, 0x3F10}, -+ {0, 0x3710, 0xC673}, -+ {0, 0x3712, 0xA972}, -+ {0, 0x374A, 0x0590}, -+ {0, 0x374C, 0xAFB3}, -+ {0, 0x374E, 0x93D7}, -+ {0, 0x3750, 0x8D12}, -+ {0, 0x3752, 0x2539}, -+ {0, 0x3640, 0x0350}, -+ {0, 0x3642, 0x322C}, -+ {0, 0x3644, 0x77D1}, -+ {0, 0x3646, 0xA26F}, -+ {0, 0x3648, 0xC872}, -+ {0, 0x3680, 0x0C4C}, -+ {0, 0x3682, 0x9510}, -+ {0, 0x3684, 0x110E}, -+ {0, 0x3686, 0x4331}, -+ {0, 0x3688, 0xC1CF}, -+ {0, 0x36C0, 0x6152}, -+ {0, 0x36C2, 0x038E}, -+ {0, 0x36C4, 0x9AF4}, -+ {0, 0x36C6, 0xE12F}, -+ {0, 0x36C8, 0x09F3}, -+ {0, 0x3700, 0xC5AF}, -+ {0, 0x3702, 0xCA90}, -+ {0, 0x3704, 0x5D0F}, -+ {0, 0x3706, 0x3293}, -+ {0, 0x3708, 0x2B92}, -+ {0, 0x3740, 0xC590}, -+ {0, 0x3742, 0x8133}, -+ {0, 0x3744, 0xE0F6}, -+ {0, 0x3746, 0x0254}, -+ {0, 0x3748, 0x10B9}, -+ {0, 0x3654, 0x7F8F}, -+ {0, 0x3656, 0x6F6C}, -+ {0, 0x3658, 0x5971}, -+ {0, 0x365A, 0x9A0F}, -+ {0, 0x365C, 0xA1B2}, -+ {0, 0x3694, 0xB00C}, -+ {0, 0x3696, 0xEBCF}, -+ {0, 0x3698, 0x06AD}, -+ {0, 0x369A, 0x4D31}, -+ {0, 0x369C, 0x2A4E}, -+ {0, 0x36D4, 0x4752}, -+ {0, 0x36D6, 0x724D}, -+ {0, 0x36D8, 0xAD34}, -+ {0, 0x36DA, 0x1350}, -+ {0, 0x36DC, 0x4E94}, -+ {0, 0x3714, 0xA06E}, -+ {0, 0x3716, 0x9152}, -+ {0, 0x3718, 0x1F53}, -+ {0, 0x371A, 0x3933}, -+ {0, 0x371C, 0xBA94}, -+ {0, 0x3754, 0x1233}, -+ {0, 0x3756, 0xA032}, -+ {0, 0x3758, 0xE936}, -+ {0, 0x375A, 0xBE34}, -+ {0, 0x375C, 0x02D9}, -+ {0, 0x365E, 0x7DEF}, -+ {0, 0x3660, 0x434B}, -+ {0, 0x3662, 0x69F1}, -+ {0, 0x3664, 0x8A0F}, -+ {0, 0x3666, 0xBDB2}, -+ {0, 0x369E, 0x290D}, -+ {0, 0x36A0, 0x42CF}, -+ {0, 0x36A2, 0xDC6D}, -+ {0, 0x36A4, 0x91B1}, -+ {0, 0x36A6, 0x9DE9}, -+ {0, 0x36DE, 0x70B2}, -+ {0, 0x36E0, 0x02AC}, -+ {0, 0x36E2, 0x9714}, -+ {0, 0x36E4, 0xF3CF}, -+ {0, 0x36E6, 0x6BD1}, -+ {0, 0x371E, 0xE42E}, -+ {0, 0x3720, 0x1D32}, -+ {0, 0x3722, 0xCC31}, -+ {0, 0x3724, 0xAE94}, -+ {0, 0x3726, 0x6413}, -+ {0, 0x375E, 0xE290}, -+ {0, 0x3760, 0x8F53}, -+ {0, 0x3762, 0xF936}, -+ {0, 0x3764, 0x4614}, -+ {0, 0x3766, 0x1B59}, -+ {0, 0x3784, 0x0404}, -+ {0, 0x3782, 0x0304}, -+ {0, 0x3210, 0x01B8}, -+ {0, 0x098E, 0xC913}, -+ {0, 0x0990, 0x000A}, -+ {0, 0x098E, 0x686B}, -+ {0, 0x0990, 0x05DC}, -+ {0, 0x098E, 0x686D}, -+ {0, 0x0990, 0x0BB8}, -+ {0, 0x098E, 0x6C6B}, -+ {0, 0x0990, 0x05DC}, -+ {0, 0x098E, 0x6C6D}, -+ {0, 0x0990, 0x0BB8}, -+ {0, 0x098E, 0x3439}, -+ {0, 0x0990, 0x05DC}, -+ {0, 0x098E, 0x343B}, -+ {0, 0x0990, 0x0BB8}, -+ {0, 0x098E, 0x4926}, -+ {0, 0x0990, 0x0001}, -+ {0, 0x098E, 0x4928}, -+ {0, 0x0990, 0x0002}, -+ {0, 0x098E, 0x492A}, -+ {0, 0x0990, 0x0656}, -+ {0, 0x098E, 0x4D26}, -+ {0, 0x0990, 0x0001}, -+ {0, 0x098E, 0x4D28}, -+ {0, 0x0990, 0x0002}, -+ {0, 0x098E, 0x4D2A}, -+ {0, 0x0990, 0x0656}, -+ {0, 0x33F4, 0x040B}, -+ {0, 0x098E, 0xC916}, -+ {0, 0x0990, 0x0014}, -+ {0, 0x098E, 0xC919}, -+ {0, 0x0990, 0x0028}, -+ {0, 0x098E, 0xC917}, -+ {0, 0x0990, 0x0004}, -+ {0, 0x098E, 0xC918}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xC91A}, -+ {0, 0x0990, 0x0001}, -+ {0, 0x098E, 0xC91B}, -+ {0, 0x0990, 0x0009}, -+ {0, 0x326C, 0x0C00}, -+ {0, 0x098E, 0x494B}, -+ {0, 0x0990, 0x0042}, -+ {0, 0x098E, 0x494D}, -+ {0, 0x0990, 0x012C}, -+ {0, 0x098E, 0xC91E}, -+ {0, 0x0990, 0x0012}, -+ {0, 0x098E, 0xC91F}, -+ {0, 0x0990, 0x000A}, -+ {0, 0x098E, 0xC920}, -+ {0, 0x0990, 0x0012}, -+ {0, 0x098E, 0xC921}, -+ {0, 0x0990, 0x000A}, -+ {0, 0x098E, 0xC922}, -+ {0, 0x0990, 0x0026}, -+ {0, 0x098E, 0xC923}, -+ {0, 0x0990, 0x001E}, -+ {0, 0x098E, 0xC924}, -+ {0, 0x0990, 0x0026}, -+ {0, 0x098E, 0xC925}, -+ {0, 0x0990, 0x0026}, -+ {0, 0x098E, 0xBC02}, -+ {0, 0x0990, 0x0003}, -+ {0, 0x098E, 0xBC05}, -+ {0, 0x0990, 0x000E}, -+ {0, 0x098E, 0xC950}, -+ {0, 0x0990, 0x0064}, -+ {0, 0x098E, 0xC94F}, -+ {0, 0x0990, 0x0038}, -+ {0, 0x098E, 0xC952}, -+ {0, 0x0990, 0x0064}, -+ {0, 0x098E, 0xC951}, -+ {0, 0x0990, 0x0051}, -+ {0, 0x098E, 0xC954}, -+ {0, 0x0990, 0x0010}, -+ {0, 0x098E, 0xC953}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0xC956}, -+ {0, 0x0990, 0x0010}, -+ {0, 0x098E, 0xC955}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0xC958}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0xC957}, -+ {0, 0x0990, 0x0014}, -+ {0, 0x098E, 0xC95A}, -+ {0, 0x0990, 0x001D}, -+ {0, 0x098E, 0xC959}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0xC95C}, -+ {0, 0x0990, 0x000C}, -+ {0, 0x098E, 0xC95B}, -+ {0, 0x0990, 0x0008}, -+ {0, 0x098E, 0xC95E}, -+ {0, 0x0990, 0x000C}, -+ {0, 0x098E, 0xC95D}, -+ {0, 0x0990, 0x0008}, -+ {0, 0x098E, 0xC95F}, -+ {0, 0x0990, 0x0064}, -+ {0, 0x098E, 0x48DC}, -+ {0, 0x0990, 0x004D}, -+ {0, 0x098E, 0x48DE}, -+ {0, 0x0990, 0x0096}, -+ {0, 0x098E, 0x48E0}, -+ {0, 0x0990, 0x001D}, -+ {0, 0x098E, 0x48E2}, -+ {0, 0x0990, 0x004D}, -+ {0, 0x098E, 0x48E4}, -+ {0, 0x0990, 0x0096}, -+ {0, 0x098E, 0x48E6}, -+ {0, 0x0990, 0x001D}, -+ {0, 0x098E, 0x48E8}, -+ {0, 0x0990, 0x004D}, -+ {0, 0x098E, 0x48EA}, -+ {0, 0x0990, 0x0096}, -+ {0, 0x098E, 0x48EC}, -+ {0, 0x0990, 0x001D}, -+ {0, 0x098E, 0xDC2A}, -+ {0, 0x0990, 0x000B}, -+ {0, 0x098E, 0xDC2B}, -+ {0, 0x0990, 0x0017}, -+ {0, 0x098E, 0xBC0B}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xBC0C}, -+ {0, 0x0990, 0x001B}, -+ {0, 0x098E, 0xBC0D}, -+ {0, 0x0990, 0x002A}, -+ {0, 0x098E, 0xBC0E}, -+ {0, 0x0990, 0x003E}, -+ {0, 0x098E, 0xBC0F}, -+ {0, 0x0990, 0x005A}, -+ {0, 0x098E, 0xBC10}, -+ {0, 0x0990, 0x0070}, -+ {0, 0x098E, 0xBC11}, -+ {0, 0x0990, 0x0081}, -+ {0, 0x098E, 0xBC12}, -+ {0, 0x0990, 0x0090}, -+ {0, 0x098E, 0xBC13}, -+ {0, 0x0990, 0x009E}, -+ {0, 0x098E, 0xBC14}, -+ {0, 0x0990, 0x00AB}, -+ {0, 0x098E, 0xBC15}, -+ {0, 0x0990, 0x00B6}, -+ {0, 0x098E, 0xBC16}, -+ {0, 0x0990, 0x00C1}, -+ {0, 0x098E, 0xBC17}, -+ {0, 0x0990, 0x00CB}, -+ {0, 0x098E, 0xBC18}, -+ {0, 0x0990, 0x00D5}, -+ {0, 0x098E, 0xBC19}, -+ {0, 0x0990, 0x00DE}, -+ {0, 0x098E, 0xBC1A}, -+ {0, 0x0990, 0x00E7}, -+ {0, 0x098E, 0xBC1B}, -+ {0, 0x0990, 0x00EF}, -+ {0, 0x098E, 0xBC1C}, -+ {0, 0x0990, 0x00F7}, -+ {0, 0x098E, 0xBC1D}, -+ {0, 0x0990, 0x00FF}, -+ {0, 0x098E, 0xBC1E}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xBC1F}, -+ {0, 0x0990, 0x001B}, -+ {0, 0x098E, 0xBC20}, -+ {0, 0x0990, 0x002A}, -+ {0, 0x098E, 0xBC21}, -+ {0, 0x0990, 0x003E}, -+ {0, 0x098E, 0xBC22}, -+ {0, 0x0990, 0x005A}, -+ {0, 0x098E, 0xBC23}, -+ {0, 0x0990, 0x0070}, -+ {0, 0x098E, 0xBC24}, -+ {0, 0x0990, 0x0081}, -+ {0, 0x098E, 0xBC25}, -+ {0, 0x0990, 0x0090}, -+ {0, 0x098E, 0xBC26}, -+ {0, 0x0990, 0x009E}, -+ {0, 0x098E, 0xBC27}, -+ {0, 0x0990, 0x00AB}, -+ {0, 0x098E, 0xBC28}, -+ {0, 0x0990, 0x00B6}, -+ {0, 0x098E, 0xBC29}, -+ {0, 0x0990, 0x00C1}, -+ {0, 0x098E, 0xBC2A}, -+ {0, 0x0990, 0x00CB}, -+ {0, 0x098E, 0xBC2B}, -+ {0, 0x0990, 0x00D5}, -+ {0, 0x098E, 0xBC2C}, -+ {0, 0x0990, 0x00DE}, -+ {0, 0x098E, 0xBC2D}, -+ {0, 0x0990, 0x00E7}, -+ {0, 0x098E, 0xBC2E}, -+ {0, 0x0990, 0x00EF}, -+ {0, 0x098E, 0xBC2F}, -+ {0, 0x0990, 0x00F7}, -+ {0, 0x098E, 0xBC30}, -+ {0, 0x0990, 0x00FF}, -+ {0, 0x098E, 0xBC31}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xBC32}, -+ {0, 0x0990, 0x000D}, -+ {0, 0x098E, 0xBC33}, -+ {0, 0x0990, 0x0019}, -+ {0, 0x098E, 0xBC34}, -+ {0, 0x0990, 0x0030}, -+ {0, 0x098E, 0xBC35}, -+ {0, 0x0990, 0x0056}, -+ {0, 0x098E, 0xBC36}, -+ {0, 0x0990, 0x0070}, -+ {0, 0x098E, 0xBC37}, -+ {0, 0x0990, 0x0081}, -+ {0, 0x098E, 0xBC38}, -+ {0, 0x0990, 0x0090}, -+ {0, 0x098E, 0xBC39}, -+ {0, 0x0990, 0x009E}, -+ {0, 0x098E, 0xBC3A}, -+ {0, 0x0990, 0x00AB}, -+ {0, 0x098E, 0xBC3B}, -+ {0, 0x0990, 0x00B6}, -+ {0, 0x098E, 0xBC3C}, -+ {0, 0x0990, 0x00C1}, -+ {0, 0x098E, 0xBC3D}, -+ {0, 0x0990, 0x00CB}, -+ {0, 0x098E, 0xBC3E}, -+ {0, 0x0990, 0x00D5}, -+ {0, 0x098E, 0xBC3F}, -+ {0, 0x0990, 0x00DE}, -+ {0, 0x098E, 0xBC40}, -+ {0, 0x0990, 0x00E7}, -+ {0, 0x098E, 0xBC41}, -+ {0, 0x0990, 0x00EF}, -+ {0, 0x098E, 0xBC42}, -+ {0, 0x0990, 0x00F7}, -+ {0, 0x098E, 0xBC43}, -+ {0, 0x0990, 0x00FF}, -+ {0, 0x098E, 0x6865}, -+ {0, 0x0990, 0x00E0}, -+ {0, 0x098E, 0x6867}, -+ {0, 0x0990, 0x00F4}, -+ {0, 0x098E, 0x8400}, -+ {0, 0x0990, 0x0006}, -+ {0, 0x098E, 0xBC4A}, -+ {0, 0x0990, 0x007F}, -+ {0, 0x098E, 0xBC4B}, -+ {0, 0x0990, 0x007F}, -+ {0, 0x098E, 0xBC4C}, -+ {0, 0x0990, 0x007F}, -+ {0, 0x3542, 0x0010}, -+ {0, 0x3544, 0x0030}, -+ {0, 0x3546, 0x0040}, -+ {0, 0x3548, 0x0080}, -+ {0, 0x354A, 0x0100}, -+ {0, 0x354C, 0x0200}, -+ {0, 0x354E, 0x0300}, -+ {0, 0x3550, 0x0010}, -+ {0, 0x3552, 0x0030}, -+ {0, 0x3554, 0x0040}, -+ {0, 0x3556, 0x0080}, -+ {0, 0x3558, 0x012C}, -+ {0, 0x355A, 0x0320}, -+ {0, 0x355C, 0x03E8}, -+ {0, 0x3560, 0x0040}, -+ {0, 0x3562, 0x0020}, -+ {0, 0x3564, 0x0040}, -+ {0, 0x3566, 0x0010}, -+ {0, 0x3568, 0x0008}, -+ {0, 0x356A, 0x0004}, -+ {0, 0x356C, 0x0004}, -+ {0, 0x356E, 0x0004}, -+ {0, 0x098E, 0x3C4D}, -+ {0, 0x0990, 0x0DAC}, -+ {0, 0x098E, 0x3C4F}, -+ {0, 0x0990, 0x148A}, -+ {0, 0x098E, 0xC911}, -+ {0, 0x0990, 0x00C8}, -+ {0, 0x098E, 0xC8F4}, -+ {0, 0x0990, 0x0004}, -+ {0, 0x098E, 0xC8F5}, -+ {0, 0x0990, 0x0002}, -+ {0, 0x098E, 0x48F6}, -+ {0, 0x0990, 0x3B4D}, -+ {0, 0x098E, 0x48F8}, -+ {0, 0x0990, 0x6380}, -+ {0, 0x098E, 0x48FA}, -+ {0, 0x0990, 0x9B18}, -+ {0, 0x098E, 0x48FC}, -+ {0, 0x0990, 0x5D51}, -+ {0, 0x098E, 0x48FE}, -+ {0, 0x0990, 0xEDE8}, -+ {0, 0x098E, 0x4900}, -+ {0, 0x0990, 0xE515}, -+ {0, 0x098E, 0x4902}, -+ {0, 0x0990, 0xBFF4}, -+ {0, 0x098E, 0x4904}, -+ {0, 0x0990, 0x001E}, -+ {0, 0x098E, 0x4906}, -+ {0, 0x0990, 0x0026}, -+ {0, 0x098E, 0x4908}, -+ {0, 0x0990, 0x0033}, -+ {0, 0x098E, 0xE84A}, -+ {0, 0x0990, 0x0083}, -+ {0, 0x098E, 0xE84D}, -+ {0, 0x0990, 0x0083}, -+ {0, 0x098E, 0xE84C}, -+ {0, 0x0990, 0x0080}, -+ {0, 0x098E, 0xE84F}, -+ {0, 0x0990, 0x0080}, -+ {0, 0x098E, 0x8400}, -+ {0, 0x0990, 0x0006}, -+ {0, 0x098E, 0x48B0}, -+ {0, 0x0990, 0x0180}, -+ {0, 0x098E, 0x48B2}, -+ {0, 0x0990, 0xFF7A}, -+ {0, 0x098E, 0x48B4}, -+ {0, 0x0990, 0x0018}, -+ {0, 0x098E, 0x48B6}, -+ {0, 0x0990, 0xFFCA}, -+ {0, 0x098E, 0x48B8}, -+ {0, 0x0990, 0x017C}, -+ {0, 0x098E, 0x48BA}, -+ {0, 0x0990, 0xFFCC}, -+ {0, 0x098E, 0x48BC}, -+ {0, 0x0990, 0x000C}, -+ {0, 0x098E, 0x48BE}, -+ {0, 0x0990, 0xFF1F}, -+ {0, 0x098E, 0x48C0}, -+ {0, 0x0990, 0x01E8}, -+ {0, 0x098E, 0x48C2}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0x48C4}, -+ {0, 0x0990, 0x0044}, -+ {0, 0x098E, 0x48C6}, -+ {0, 0x0990, 0x0079}, -+ {0, 0x098E, 0x48C8}, -+ {0, 0x0990, 0xFFAD}, -+ {0, 0x098E, 0x48CA}, -+ {0, 0x0990, 0xFFE2}, -+ {0, 0x098E, 0x48CC}, -+ {0, 0x0990, 0x0033}, -+ {0, 0x098E, 0x48CE}, -+ {0, 0x0990, 0x002A}, -+ {0, 0x098E, 0x48D0}, -+ {0, 0x0990, 0xFFAA}, -+ {0, 0x098E, 0x48D2}, -+ {0, 0x0990, 0x0017}, -+ {0, 0x098E, 0x48D4}, -+ {0, 0x0990, 0x004B}, -+ {0, 0x098E, 0x48D6}, -+ {0, 0x0990, 0xFFA5}, -+ {0, 0x098E, 0x48D8}, -+ {0, 0x0990, 0x0015}, -+ {0, 0x098E, 0x48DA}, -+ {0, 0x0990, 0xFFE2}, -+ {0, 0x35A2, 0x0014}, -+ {0, 0x098E, 0xC949}, -+ {0, 0x0990, 0x0024}, -+ {0, 0x35A4, 0x0596}, -+ {0, 0x098E, 0xC94A}, -+ {0, 0x0990, 0x0062}, -+ {0, 0x098E, 0xC948}, -+ {0, 0x0990, 0x0006}, -+ {0, 0x098E, 0xC914}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xC915}, -+ {0, 0x0990, 0x00FF}, -+ {0, 0x098E, 0xE86F}, -+ {0, 0x0990, 0x0060}, -+ {0, 0x098E, 0xE870}, -+ {0, 0x0990, 0x003C}, -+ {0, 0x098E, 0xEC6F}, -+ {0, 0x0990, 0x0060}, -+ {0, 0x098E, 0xEC70}, -+ {0, 0x0990, 0x003C}, -+ {0, 0x098E, 0xE883}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xEC83}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x8400}, -+ {0, 0x0990, 0x0006}, -+ {0, 0x098E, 0xE885}, -+ {0, 0x0990, 0x001E}, -+ {0, 0x098E, 0xE886}, -+ {0, 0x0990, 0x00D8}, -+ {0, 0x098E, 0xEC85}, -+ {0, 0x0990, 0x001E}, -+ {0, 0x098E, 0xEC86}, -+ {0, 0x0990, 0x00D8}, -+ {0, 0x098E, 0xE884}, -+ {0, 0x0990, 0x005C}, -+ {0, 0x098E, 0xEC84}, -+ {0, 0x0990, 0x005C}, -+ {0, 0x098E, 0x490A}, -+ {0, 0x0990, 0x0666}, -+ {0, 0x098E, 0x490C}, -+ {0, 0x0990, 0x0140}, -+ {0, 0x098E, 0x6857}, -+ {0, 0x0990, 0x0014}, -+ {0, 0x098E, 0x685C}, -+ {0, 0x0990, 0x0005}, -+ {0, 0x098E, 0x490E}, -+ {0, 0x0990, 0x00A4}, -+ {0, 0x098E, 0xB43D}, -+ {0, 0x0990, 0x0031}, -+ {0, 0x098E, 0xB43E}, -+ {0, 0x0990, 0x001B}, -+ {0, 0x098E, 0xB43F}, -+ {0, 0x0990, 0x0028}, -+ {0, 0x098E, 0xB440}, -+ {0, 0x0990, 0x0003}, -+ {0, 0x098E, 0xB441}, -+ {0, 0x0990, 0x00CD}, -+ {0, 0x098E, 0xB442}, -+ {0, 0x0990, 0x0064}, -+ {0, 0x098E, 0xB443}, -+ {0, 0x0990, 0x000F}, -+ {0, 0x098E, 0xB444}, -+ {0, 0x0990, 0x0007}, -+ {0, 0x098E, 0x300D}, -+ {0, 0x0990, 0x000F}, -+ {0, 0x098E, 0x3017}, -+ {0, 0x0990, 0x0F0F}, -+ {0, 0x098E, 0x8400}, -+ {0, 0x0990, 0x0006}, -+ {0, 0x098E, 0xE81F}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0x68A0}, -+ {0, 0x0990, 0x082E}, -+ {0, 0x098E, 0x6CA0}, -+ {0, 0x0990, 0x082E}, -+ {0, 0x098E, 0x70A0}, -+ {0, 0x0990, 0x082E}, -+ {0, 0x098E, 0x74A0}, -+ {0, 0x0990, 0x082E}, -+ {0, 0x3C52, 0x082E}, -+ {0, 0x098E, 0x488E}, -+ {0, 0x0990, 0x0020}, -+ {0, 0x098E, 0xECAC}, -+ {0, 0x0990, 0x0000} -+}; -+ -+mt9t111_regs def_regs2[] = { -+ {100, 0x0018, 0x0028}, -+ {0, 0x316C, 0x350F}, -+ {0, 0x098E, 0x6817}, -+ {0, 0x0990, 0x000C}, -+ {0, 0x0034, 0x0000} -+}; -+ -+mt9t111_regs pll_regs1[] = { -+ {0, 0x0014, 0x2425}, -+ {0, 0x0014, 0x2425}, -+ {0, 0x0014, 0x2145}, -+ {0, 0x0010, 0x0219}, -+ {0, 0x0012, 0x0090}, -+ {0, 0x002A, 0x79DD}, -+ {0, 0x0014, 0x2545}, -+ {0, 0x0014, 0x2547}, -+ {0, 0x0014, 0x3447}, -+ {0, 0x0014, 0x3047} -+}; -+ -+mt9t111_regs pll_regs2[] = { -+ {0, 0x0014, 0x3046}, -+ {0, 0x0022, 0x01E0}, -+ {0, 0x001E, 0x0707}, -+ {0, 0x3B84, 0x011D} -+}; -+ -+mt9t111_regs bayer_pattern_regs[] = { -+ {0, 0x098E, 0x6807}, -+ {0, 0x0990, 0x0100}, -+ {0, 0x098E, 0x6809}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xE88E}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0x6C07}, -+ {0, 0x0990, 0x0100}, -+ {0, 0x098E, 0x6C09}, -+ {0, 0x0990, 0x0000}, -+ {0, 0x098E, 0xEC8E}, -+ {0, 0x0990, 0x0000} -+}; -+ -+#endif -diff --git a/include/media/mt9t111.h b/include/media/mt9t111.h -new file mode 100644 -index 0000000..7acbeed ---- /dev/null -+++ b/include/media/mt9t111.h -@@ -0,0 +1,79 @@ -+/* -+ * include/media/mt9t111.h -+ * -+ * mt9t111 sensor driver -+ * -+ * Copyright (C) 2009 Leopard Imaging -+ * -+ * This file is licensed under the terms of the GNU General Public License -+ * version 2. This program is licensed "as is" without any warranty of any -+ * kind, whether express or implied. -+ */ -+ -+#ifndef MT9T111_H -+#define MT9T111_H -+ -+/********************************* -+ * Defines and Macros and globals -+ ********************************/ -+ -+#ifdef TRUE -+#undef TRUE -+#endif -+ -+#ifdef FALSE -+#undef FALSE -+#endif -+ -+#define TRUE 1 -+#define FALSE 0 -+ -+#ifdef DEBUG -+#undef DEBUG -+#endif -+ -+#ifndef TYPES -+#define TYPES -+#endif -+ -+#define MT9T111_I2C_REGISTERED (1) -+#define MT9T111_I2C_UNREGISTERED (0) -+ -+/*i2c adress for MT9T111*/ -+#define MT9T111_I2C_ADDR (0x78 >>1) -+ -+#define MT9T111_CLK_MAX (75000000) /* 75MHz */ -+#define MT9T111_CLK_MIN (6000000) /* 6Mhz */ -+ -+#define MT9T111_I2C_CONFIG (1) -+#define I2C_ONE_BYTE_TRANSFER (1) -+#define I2C_TWO_BYTE_TRANSFER (2) -+#define I2C_THREE_BYTE_TRANSFER (3) -+#define I2C_FOUR_BYTE_TRANSFER (4) -+#define I2C_TXRX_DATA_MASK (0x00FF) -+#define I2C_TXRX_DATA_MASK_UPPER (0xFF00) -+#define I2C_TXRX_DATA_SHIFT (8) -+ -+struct mt9t111_platform_data { -+ char *master; -+ int (*power_set) (enum v4l2_power on); -+ int (*ifparm) (struct v4l2_ifparm *p); -+ int (*priv_data_set) (void *); -+ /* Interface control params */ -+ bool clk_polarity; -+ bool hs_polarity; -+ bool vs_polarity; -+}; -+ -+/** -+ * struct capture_size - image capture size information -+ * @width: image width in pixels -+ * @height: image height in pixels -+ */ -+struct capture_size { -+ unsigned long width; -+ unsigned long height; -+}; -+ -+#endif /*for ifndef MT9T111 */ -+ --- -1.6.6.1 - diff --git a/recipes/linux/linux-omap-psp-2.6.32/0012-ASoC-enable-audio-capture-by-default-for-twl4030.patch b/recipes/linux/linux-omap-psp-2.6.32/0009-ASoC-enable-audio-capture-by-default-for-twl4030.patch index a2afc432e3..869717f18a 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0012-ASoC-enable-audio-capture-by-default-for-twl4030.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0009-ASoC-enable-audio-capture-by-default-for-twl4030.patch @@ -1,7 +1,7 @@ -From f5c4ccdcc7631ac51dead2fba08f0f232aead7a2 Mon Sep 17 00:00:00 2001 +From e2bfc6c60fc749e939839a00abc0583bea9af857 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 12:45:20 -0800 -Subject: [PATCH 12/45] ASoC: enable audio capture by default for twl4030 +Subject: [PATCH 09/45] ASoC: enable audio capture by default for twl4030 --- sound/soc/codecs/twl4030.c | 4 ++-- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch b/recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch deleted file mode 100644 index f0537774cb..0000000000 --- a/recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch +++ /dev/null @@ -1,214 +0,0 @@ -From 5ac7a8bce910c55a7600b8f0ccbc97717d49c207 Mon Sep 17 00:00:00 2001 -From: Koen Kooi <k-kooi@ti.com> -Date: Tue, 9 Feb 2010 20:53:56 +0100 -Subject: [PATCH 09/45] board-omap3beagle: ugly copy/paste job to get mt9p111 sensor data in (only compile tested) - ---- - arch/arm/mach-omap2/board-omap3beagle.c | 169 +++++++++++++++++++++++++++++++ - 1 files changed, 169 insertions(+), 0 deletions(-) - -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c -index accf80d..e63bec6 100644 ---- a/arch/arm/mach-omap2/board-omap3beagle.c -+++ b/arch/arm/mach-omap2/board-omap3beagle.c -@@ -25,6 +25,12 @@ - #include <linux/input.h> - #include <linux/gpio_keys.h> - -+#include <media/v4l2-int-device.h> -+#include <media/mt9t111.h> -+ -+/* Include V4L2 ISP-Camera driver related header file */ -+#include <../drivers/media/video/omap34xxcam.h> -+ - #include <linux/mtd/mtd.h> - #include <linux/mtd/partitions.h> - #include <linux/mtd/nand.h> -@@ -441,6 +447,157 @@ static struct twl4030_platform_data beagle_twldata = { - .vpll2 = &beagle_vpll2, - }; - -+ -+#if defined(CONFIG_VIDEO_MT9T111) || defined(CONFIG_VIDEO_MT9T111_MODULE) -+static struct isp_interface_config mt9t111_if_config = { -+ .ccdc_par_ser = ISP_PARLL, -+ .dataline_shift = 0x0, -+ .hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSRISE, -+ .strobe = 0x0, -+ .prestrobe = 0x0, -+ .shutter = 0x0, -+ .u.par.par_bridge = 0x1, -+ .u.par.par_clk_pol = 0x0, -+}; -+ -+static struct v4l2_ifparm mt9t111_ifparm_s = { -+#if 1 -+ .if_type = V4L2_IF_TYPE_RAW, -+ .u = { -+ .raw = { -+ .frame_start_on_rising_vs = 1, -+ .bt_sync_correct = 0, -+ .swap = 0, -+ .latch_clk_inv = 0, -+ .nobt_hs_inv = 0, /* active high */ -+ .nobt_vs_inv = 0, /* active high */ -+ .clock_min = MT9T111_CLK_MIN, -+ .clock_max = MT9T111_CLK_MAX, -+ }, -+ }, -+#else -+ .if_type = V4L2_IF_TYPE_YCbCr, -+ .u = { -+ .ycbcr = { -+ .frame_start_on_rising_vs = 1, -+ .bt_sync_correct = 0, -+ .swap = 0, -+ .latch_clk_inv = 0, -+ .nobt_hs_inv = 0, /* active high */ -+ .nobt_vs_inv = 0, /* active high */ -+ .clock_min = MT9T111_CLK_MIN, -+ .clock_max = MT9T111_CLK_MAX, -+ }, -+ }, -+#endif -+}; -+ -+/** -+ * @brief mt9t111_ifparm - Returns the mt9t111 interface parameters -+ * -+ * @param p - pointer to v4l2_ifparm structure -+ * -+ * @return result of operation - 0 is success -+ */ -+static int mt9t111_ifparm(struct v4l2_ifparm *p) -+{ -+ if (p == NULL) -+ return -EINVAL; -+ -+ *p = mt9t111_ifparm_s; -+ return 0; -+} -+ -+#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE) -+static struct omap34xxcam_hw_config mt9t111_decoder_hwc = { -+ .dev_index = 0, -+ .dev_minor = 0, -+ .dev_type = OMAP34XXCAM_SLAVE_SENSOR, -+ .u.sensor.xclk = OMAP34XXCAM_XCLK_NONE, -+ .u.sensor.sensor_isp = 1, -+}; -+#endif -+ -+/** -+ * @brief mt9t111_set_prv_data - Returns mt9t111 omap34xx driver private data -+ * -+ * @param priv - pointer to omap34xxcam_hw_config structure -+ * -+ * @return result of operation - 0 is success -+ */ -+static int mt9t111_set_prv_data(void *priv) -+{ -+#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE) -+ struct omap34xxcam_hw_config *hwc = priv; -+ -+ if (priv == NULL) -+ return -EINVAL; -+ -+ hwc->u.sensor.sensor_isp = mt9t111_decoder_hwc.u.sensor.sensor_isp; -+ hwc->u.sensor.xclk = mt9t111_decoder_hwc.u.sensor.xclk; -+ hwc->dev_index = mt9t111_decoder_hwc.dev_index; -+ hwc->dev_minor = mt9t111_decoder_hwc.dev_minor; -+ hwc->dev_type = mt9t111_decoder_hwc.dev_type; -+ return 0; -+#else -+ return -EINVAL; -+#endif -+} -+ -+/** -+ * @brief mt9t111_power_set - Power-on or power-off TVP5146 device -+ * -+ * @param power - enum, Power on/off, resume/standby -+ * -+ * @return result of operation - 0 is success -+ */ -+static int mt9t111_power_set(enum v4l2_power power) -+{ -+ switch (power) { -+ case V4L2_POWER_OFF: -+ /* Disable mux for TVP5146 decoder data path */ -+// if (omap3evmdc_set_mux(MUX_CAMERA_SENSOR, DISABLE_MUX)) -+// return -ENODEV; -+ break; -+ -+ case V4L2_POWER_STANDBY: -+ break; -+ -+ case V4L2_POWER_ON: -+ /* Enable mux for expension camera data path */ -+// if (omap3evmdc_set_mux(MUX_CAMERA_SENSOR, ENABLE_MUX)) -+// return -ENODEV; -+ -+#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE) -+ isp_configure_interface(&mt9t111_if_config); -+#endif -+ break; -+ -+ default: -+ return -ENODEV; -+ break; -+ } -+ return 0; -+} -+ -+static struct mt9t111_platform_data mt9t111_pdata = { -+ .master = "omap34xxcam", -+ .power_set = mt9t111_power_set, -+ .priv_data_set = mt9t111_set_prv_data, -+ .ifparm = mt9t111_ifparm, -+ /* Some interface dependent params */ -+ .clk_polarity = 0, /* data clocked out on falling edge */ -+ .hs_polarity = 1, /* 0 - Active low, 1- Active high */ -+ .vs_polarity = 1, /* 0 - Active low, 1- Active high */ -+}; -+ -+static struct i2c_board_info __initdata mt9t111_i2c_board_info = { -+ I2C_BOARD_INFO("mt9t111", MT9T111_I2C_ADDR), -+ .platform_data = &mt9t111_pdata, -+}; -+ -+#endif /* #ifdef CONFIG_VIDEO_MT9T111 */ -+ - static struct i2c_board_info __initdata beagle_i2c1_boardinfo[] = { - { - I2C_BOARD_INFO("twl4030", 0x48), -@@ -618,6 +775,8 @@ static struct omap_board_mux board_mux[] __initdata = { - - static void __init omap3_beagle_init(void) - { -+ int err; -+ - omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); - omap3_beagle_i2c_init(); - platform_add_devices(omap3_beagle_devices, -@@ -640,7 +799,17 @@ static void __init omap3_beagle_init(void) - omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); - - beagle_display_init(); -+ -+ // Revisit: hardcodes i2c bus 2 -+#if defined(CONFIG_VIDEO_MT9T111) || defined(CONFIG_VIDEO_MT9T111_MODULE) -+ err = i2c_register_board_info(2, &mt9t111_i2c_board_info, 1); -+ if (err) { -+ printk("beagle: MT9T111 I2C Board Registration failed \n"); -+ return err; -+ } -+#endif - } -+ - static void __init omap3_beagle_map_io(void) - { - omap2_set_globals_343x(); --- -1.6.6.1 - diff --git a/recipes/linux/linux-omap-psp-2.6.32/0013-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch b/recipes/linux/linux-omap-psp-2.6.32/0010-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch index 6fbb854e36..e8b704e1c4 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0013-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0010-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch @@ -1,7 +1,7 @@ -From 7accba7e0d13a0639dca4fcc61652e02b73d8e30 Mon Sep 17 00:00:00 2001 +From 5a6b395ade97b7b4315615ad48b8a467e1214c96 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 31 Dec 2009 07:05:02 -0800 -Subject: [PATCH 13/45] MTD: NAND: omap2: proper fix for subpage read ECC errors +Subject: [PATCH 10/45] MTD: NAND: omap2: proper fix for subpage read ECC errors --- drivers/mtd/nand/omap2.c | 11 +++++++---- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0014-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch b/recipes/linux/linux-omap-psp-2.6.32/0011-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch index 4288219f05..d8e4d72d96 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0014-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0011-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch @@ -1,7 +1,7 @@ -From 77cac0d8494a451a3629fa9a4e0b8abd9196c2c3 Mon Sep 17 00:00:00 2001 +From 42ca6429f4c2b385064c239dc9a3244efef625b0 Mon Sep 17 00:00:00 2001 From: Sudeep Basavaraj <sudeep.basavaraj@ti.com> Date: Tue, 5 Jan 2010 18:58:18 +0530 -Subject: [PATCH 14/45] OMAP3630:DSS2:Enable Pre-Multiplied Alpha Support +Subject: [PATCH 11/45] OMAP3630:DSS2:Enable Pre-Multiplied Alpha Support Enables dss to process color formats with pre-mulitplied alpha values. With this we can have alpha values defined for each pixel diff --git a/recipes/linux/linux-omap-psp-2.6.32/0011-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch b/recipes/linux/linux-omap-psp-2.6.32/0011-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch deleted file mode 100644 index d9a217e2fd..0000000000 --- a/recipes/linux/linux-omap-psp-2.6.32/0011-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 726b0f76bf60f71af9a53842c028ebad62c5c2db Mon Sep 17 00:00:00 2001 -From: Koen Kooi <k-kooi@ti.com> -Date: Thu, 11 Feb 2010 22:59:19 +0100 -Subject: [PATCH 11/45] board-omap3beagle: update omap34xxcam to more recent v4l-int-device-api - ---- - arch/arm/mach-omap2/board-omap3beagle.c | 20 +++++++++++--------- - 1 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c -index 91d835a..d09a676 100644 ---- a/arch/arm/mach-omap2/board-omap3beagle.c -+++ b/arch/arm/mach-omap2/board-omap3beagle.c -@@ -461,6 +461,7 @@ static struct isp_interface_config mt9t111_if_config = { - .strobe = 0x0, - .prestrobe = 0x0, - .shutter = 0x0, -+ .wait_hs_vs = 2, - .u.par.par_bridge = 0x1, - .u.par.par_clk_pol = 0x0, - }; -@@ -513,14 +514,13 @@ static int mt9t111_ifparm(struct v4l2_ifparm *p) - return 0; - } - --#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE) -+#if defined(CONFIG_VIDEO_OMAP3) - static struct omap34xxcam_hw_config mt9t111_decoder_hwc = { - .dev_index = 0, - .dev_minor = 0, - .dev_type = OMAP34XXCAM_SLAVE_SENSOR, -- .u.sensor.xclk = OMAP34XXCAM_XCLK_NONE, - .u.sensor.sensor_isp = 1, --}; -+ .u.sensor.capture_mem = PAGE_ALIGN(2048*1536*2*4),}; - #endif - - /** -@@ -530,16 +530,16 @@ static struct omap34xxcam_hw_config mt9t111_decoder_hwc = { - * - * @return result of operation - 0 is success - */ --static int mt9t111_set_prv_data(void *priv) -+static int mt9t111_set_prv_data(struct v4l2_int_device *s, void *priv) - { --#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE) -+#if defined(CONFIG_VIDEO_OMAP3) - struct omap34xxcam_hw_config *hwc = priv; - - if (priv == NULL) - return -EINVAL; - - hwc->u.sensor.sensor_isp = mt9t111_decoder_hwc.u.sensor.sensor_isp; -- hwc->u.sensor.xclk = mt9t111_decoder_hwc.u.sensor.xclk; -+ hwc->u.sensor.capture_mem = mt9t111_decoder_hwc.u.sensor.capture_mem; - hwc->dev_index = mt9t111_decoder_hwc.dev_index; - hwc->dev_minor = mt9t111_decoder_hwc.dev_minor; - hwc->dev_type = mt9t111_decoder_hwc.dev_type; -@@ -556,8 +556,10 @@ static int mt9t111_set_prv_data(void *priv) - * - * @return result of operation - 0 is success - */ --static int mt9t111_power_set(enum v4l2_power power) -+static int mt9t111_power_set(struct v4l2_int_device *s, enum v4l2_power power) - { -+ struct omap34xxcam_videodev *vdev = s->u.slave->master->priv; -+ - switch (power) { - case V4L2_POWER_OFF: - /* Disable mux for TVP5146 decoder data path */ -@@ -573,8 +575,8 @@ static int mt9t111_power_set(enum v4l2_power power) - // if (omap3evmdc_set_mux(MUX_CAMERA_SENSOR, ENABLE_MUX)) - // return -ENODEV; - --#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE) -- isp_configure_interface(&mt9t111_if_config); -+#if defined(CONFIG_VIDEO_OMAP3) -+ isp_configure_interface(vdev->cam->isp, &mt9t111_if_config); - #endif - break; - --- -1.6.6.1 - diff --git a/recipes/linux/linux-omap-psp-2.6.32/0015-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch b/recipes/linux/linux-omap-psp-2.6.32/0012-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch index a684870918..5d11373aa1 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0015-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0012-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch @@ -1,7 +1,7 @@ -From 66ad2fe91766e975dc5e6bbebb75bc4b6daa4ec7 Mon Sep 17 00:00:00 2001 +From d712e54a547b0800e6b482c43b5e6f8ca3f032de Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Tue, 19 Jan 2010 21:19:15 -0800 -Subject: [PATCH 15/45] DSS2: add bootarg for selecting svideo or composite for tv output +Subject: [PATCH 12/45] DSS2: add bootarg for selecting svideo or composite for tv output also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0016-ISP-add-some-more-from-Leopard-imaging-patch.patch b/recipes/linux/linux-omap-psp-2.6.32/0013-ISP-add-some-more-from-Leopard-imaging-patch.patch index 5494364f76..60824f6298 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0016-ISP-add-some-more-from-Leopard-imaging-patch.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0013-ISP-add-some-more-from-Leopard-imaging-patch.patch @@ -1,7 +1,7 @@ -From 4c37a243bfe5e056cf5db2acc3b35d86cefb3f63 Mon Sep 17 00:00:00 2001 +From 4f99b5658cbee7a09fd4cb2887d0e42dc4c70371 Mon Sep 17 00:00:00 2001 From: Koen Kooi <k-kooi@ti.com> Date: Thu, 11 Feb 2010 21:34:00 +0100 -Subject: [PATCH 16/45] ISP: add some more from Leopard imaging patch +Subject: [PATCH 13/45] ISP: add some more from Leopard imaging patch --- drivers/media/video/isp/isppreview.c | 16 ++++++++- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0017-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch b/recipes/linux/linux-omap-psp-2.6.32/0014-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch index a41e7c2c2a..263daa5592 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0017-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0014-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch @@ -1,7 +1,7 @@ -From 575fd05b60f5132beff21163604c2bf4781b902e Mon Sep 17 00:00:00 2001 +From df2fe69fb08d6784975744c2723b33892526c60c Mon Sep 17 00:00:00 2001 From: Steve Sakoman <sakoman@gmail.com> Date: Tue, 15 Dec 2009 14:59:42 -0800 -Subject: [PATCH 17/45] ARM: OMAP: Overo: Add support for second ethernet port +Subject: [PATCH 14/45] ARM: OMAP: Overo: Add support for second ethernet port Signed-off-by: Steve Sakoman <sakoman@gmail.com> --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0018-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch b/recipes/linux/linux-omap-psp-2.6.32/0015-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch index 819c00e1b8..535b524875 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0018-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0015-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch @@ -1,7 +1,7 @@ -From 5923967724d78d81a92700b700b5b9bc1102130d Mon Sep 17 00:00:00 2001 +From 25665d81b2b42e6ad9cb3a976af4ff792018b321 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <sakoman@gmail.com> Date: Tue, 15 Dec 2009 15:17:44 -0800 -Subject: [PATCH 18/45] drivers: net: smsc911x: return ENODEV if device is not found +Subject: [PATCH 15/45] drivers: net: smsc911x: return ENODEV if device is not found Signed-off-by: Steve Sakoman <sakoman@gmail.com> --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0019-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch b/recipes/linux/linux-omap-psp-2.6.32/0016-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch index f87dd0dafa..68220b08ea 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0019-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0016-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch @@ -1,7 +1,7 @@ -From 923e35d456436da3c79b5befd07854a2f6d89817 Mon Sep 17 00:00:00 2001 +From 0a74491985cab287962c0243565e78600b86c894 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <sakoman@gmail.com> Date: Tue, 15 Dec 2009 15:24:10 -0800 -Subject: [PATCH 19/45] drivers: input: touchscreen: ads7846: return ENODEV if device is not found +Subject: [PATCH 16/45] drivers: input: touchscreen: ads7846: return ENODEV if device is not found Signed-off-by: Steve Sakoman <sakoman@gmail.com> --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0020-drivers-mfd-add-twl4030-madc-driver.patch b/recipes/linux/linux-omap-psp-2.6.32/0017-drivers-mfd-add-twl4030-madc-driver.patch index f846b752d6..2baefff94f 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0020-drivers-mfd-add-twl4030-madc-driver.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0017-drivers-mfd-add-twl4030-madc-driver.patch @@ -1,7 +1,7 @@ -From 94e6d7807bf86f18070b0743aca68d541faa67cd Mon Sep 17 00:00:00 2001 +From 294e88638b891322998deb9154f4babd024732d3 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 14:19:34 -0800 -Subject: [PATCH 20/45] drivers: mfd: add twl4030 madc driver +Subject: [PATCH 17/45] drivers: mfd: add twl4030 madc driver --- drivers/mfd/Kconfig | 21 ++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch b/recipes/linux/linux-omap-psp-2.6.32/0018-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch index dce4270ed8..3c858493a5 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0018-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch @@ -1,7 +1,7 @@ -From 8e01f9fb6605c0e1405981fb5d80d03b7462a7a2 Mon Sep 17 00:00:00 2001 +From 3d9fb5ea6d899ad50dadd8ec0a4004077425916b Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 15:54:58 -0800 -Subject: [PATCH 21/45] ARM: OMAP: Add missing twl4030 madc header file +Subject: [PATCH 18/45] ARM: OMAP: Add missing twl4030 madc header file --- include/linux/i2c/twl4030-madc.h | 130 ++++++++++++++++++++++++++++++++++++++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch b/recipes/linux/linux-omap-psp-2.6.32/0019-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch index bd1c987f8e..42fff963a6 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0019-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch @@ -1,7 +1,7 @@ -From 6cedc3f04cd3fb3d4c74ae66c98f81a7a50f1892 Mon Sep 17 00:00:00 2001 +From c4ff1cf23fc3bf33b3f9b91591af7146f5391b3f Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 14:27:15 -0800 -Subject: [PATCH 22/45] ARM: OMAP: Add twl4030 madc support to Overo +Subject: [PATCH 19/45] ARM: OMAP: Add twl4030 madc support to Overo --- arch/arm/mach-omap2/board-overo.c | 5 +++++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0023-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch b/recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch index d6376e247f..7a62bf60ae 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0023-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch @@ -1,17 +1,17 @@ -From 09f99391550d97688551776b134f11a64d66d08e Mon Sep 17 00:00:00 2001 +From 4721d7878b3bb28e83d245cd3014b11f6e289126 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 14:32:36 -0800 -Subject: [PATCH 23/45] ARM: OMAP: Add twl4030 madc support to Beagle +Subject: [PATCH 20/45] ARM: OMAP: Add twl4030 madc support to Beagle --- arch/arm/mach-omap2/board-omap3beagle.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c -index d09a676..4b7ed8a 100644 +index 429dacb..8dfb864 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c -@@ -438,6 +438,10 @@ static struct twl4030_codec_data beagle_codec_data = { +@@ -432,6 +432,10 @@ static struct twl4030_codec_data beagle_codec_data = { .audio = &beagle_audio_data, }; @@ -22,7 +22,7 @@ index d09a676..4b7ed8a 100644 static struct twl4030_platform_data beagle_twldata = { .irq_base = TWL4030_IRQ_BASE, .irq_end = TWL4030_IRQ_END, -@@ -446,6 +450,7 @@ static struct twl4030_platform_data beagle_twldata = { +@@ -440,6 +444,7 @@ static struct twl4030_platform_data beagle_twldata = { .usb = &beagle_usb_data, .gpio = &beagle_gpio_data, .codec = &beagle_codec_data, diff --git a/recipes/linux/linux-omap-psp-2.6.32/0024-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch b/recipes/linux/linux-omap-psp-2.6.32/0021-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch index 803b10d147..4b4160ce95 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0024-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0021-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch @@ -1,7 +1,7 @@ -From 9ad2c26e769b35b73eab0cc601403833f44dff60 Mon Sep 17 00:00:00 2001 +From 73457855345b6e0da83e1d452c4cb0cb28fbef34 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Tue, 19 Jan 2010 20:00:46 -0800 -Subject: [PATCH 24/45] netdev: rt73usb - add vendor/device ID for Ceiva Wireless PartNo 81726-00702 +Subject: [PATCH 21/45] netdev: rt73usb - add vendor/device ID for Ceiva Wireless PartNo 81726-00702 --- drivers/net/wireless/rt2x00/rt73usb.c | 2 ++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0025-mmc-don-t-display-single-block-read-console-messages.patch b/recipes/linux/linux-omap-psp-2.6.32/0022-mmc-don-t-display-single-block-read-console-messages.patch index d8f9727aa1..7869b6db84 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0025-mmc-don-t-display-single-block-read-console-messages.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0022-mmc-don-t-display-single-block-read-console-messages.patch @@ -1,7 +1,7 @@ -From 9580ee60ac7dfe75d6f9a0d87002c89cd87a7580 Mon Sep 17 00:00:00 2001 +From aa0048368802d454253b847df33a3ef191ed5f1b Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Mon, 4 Jan 2010 19:20:25 -0800 -Subject: [PATCH 25/45] mmc: don't display single block read console messages +Subject: [PATCH 22/45] mmc: don't display single block read console messages mmc: don't display single block read console messages --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0026-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch b/recipes/linux/linux-omap-psp-2.6.32/0023-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch index d6826a1fcf..d2001398d3 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0026-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0023-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch @@ -1,7 +1,7 @@ -From f2f3fbdacf942889b77f2a86de53c839ee4f6ce3 Mon Sep 17 00:00:00 2001 +From 4740a7121cbdffcc3e0a7ff26cdf08bde85d7fc7 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Sun, 24 Jan 2010 09:33:56 -0800 -Subject: [PATCH 26/45] ARM: OMAP2: mmc-twl4030: move clock input selection prior to vcc test +Subject: [PATCH 23/45] ARM: OMAP2: mmc-twl4030: move clock input selection prior to vcc test otherwise it is not executed on systems that use non-twl regulators --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0027-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch b/recipes/linux/linux-omap-psp-2.6.32/0024-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch index 0e9fce1d41..0d1e3a966d 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0027-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0024-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch @@ -1,7 +1,7 @@ -From 986181226597c170e35567d1f6f2a158bb102377 Mon Sep 17 00:00:00 2001 +From 84a0b05b8149345c87181c74a63a27b0321f5e7f Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Sun, 14 Feb 2010 12:52:02 +0100 -Subject: [PATCH 27/45] board-overo: add PM code and sync with http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/omap3-2.6.32 +Subject: [PATCH 24/45] board-overo: add PM code and sync with http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/omap3-2.6.32 --- arch/arm/mach-omap2/board-overo.c | 274 ++++++++++++++++++++++++++++++++----- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0028-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch b/recipes/linux/linux-omap-psp-2.6.32/0025-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch index aed4a51d09..8972bb0e04 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0028-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0025-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch @@ -1,7 +1,7 @@ -From 3a59c6d649b521ae7601a8e8aa560c709db676a1 Mon Sep 17 00:00:00 2001 +From da8a517444cdf8b89e9beb9407dd2c7903393d61 Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Mon, 15 Feb 2010 14:20:51 +0100 -Subject: [PATCH 28/45] twl4030-madc: adjust for twl4030 -> twl api changes +Subject: [PATCH 25/45] twl4030-madc: adjust for twl4030 -> twl api changes --- drivers/mfd/twl4030-madc.c | 18 +++++++++--------- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch b/recipes/linux/linux-omap-psp-2.6.32/0026-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch index 7be0a56a1d..38625ecd35 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0026-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch @@ -1,7 +1,7 @@ -From 2919800f32cb43d5c6fbbce6fc021c37d1714fe6 Mon Sep 17 00:00:00 2001 +From 6543717ed765f9f5cd981a88507f18b73e9d9c13 Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Mon, 15 Feb 2010 14:38:00 +0100 -Subject: [PATCH 29/45] OMAP: DSS2: (Re)add support for Samsung lte430wq-f0c panel +Subject: [PATCH 26/45] OMAP: DSS2: (Re)add support for Samsung lte430wq-f0c panel --- drivers/video/omap2/displays/Kconfig | 6 + diff --git a/recipes/linux/linux-omap-psp-2.6.32/0030-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch b/recipes/linux/linux-omap-psp-2.6.32/0027-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch index e2926900b2..ed17c2ec72 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0030-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0027-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch @@ -1,7 +1,7 @@ -From f5baf3ce472f80bbae9c8a1f8c3a71fcdff6b0a8 Mon Sep 17 00:00:00 2001 +From c5a8cc3beb2784fd3851d758ddc8e74b8e0c09ac Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 17 Dec 2009 15:05:30 -0800 -Subject: [PATCH 30/45] OMAP: DSS2: Add support for LG Philips LB035Q02 panel +Subject: [PATCH 27/45] OMAP: DSS2: Add support for LG Philips LB035Q02 panel --- drivers/video/omap2/displays/Kconfig | 6 + diff --git a/recipes/linux/linux-omap-psp-2.6.32/0031-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch b/recipes/linux/linux-omap-psp-2.6.32/0028-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch index 6f3a6177e1..6607ee37a3 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0031-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0028-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch @@ -1,7 +1,7 @@ -From 9781725fb1b6568133f50ec0ffc73b6c378256ad Mon Sep 17 00:00:00 2001 +From 103d5a963c4f05d0fa454551469ddef334cb9d23 Mon Sep 17 00:00:00 2001 From: Kishore Kadiyala <kishore.kadiyala@ti.com> Date: Wed, 17 Feb 2010 19:34:47 +0530 -Subject: [PATCH 31/45] Fix for bus width which improves SD card's peformance. +Subject: [PATCH 28/45] Fix for bus width which improves SD card's peformance. This patch fixes bus width which improves peformance for SD cards. OMAP-MMC controller's can support maximum bus width of '8'. diff --git a/recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch b/recipes/linux/linux-omap-psp-2.6.32/0029-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch index 8ac5612212..8df95dd06e 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0029-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch @@ -1,7 +1,7 @@ -From 61648d5763902e95b19a9787255c6de9bcd398ea Mon Sep 17 00:00:00 2001 +From 3381ab702c3798c039f294ed06e3da2e8f62009a Mon Sep 17 00:00:00 2001 From: Imre Deak <imre.deak@nokia.com> Date: Thu, 4 Feb 2010 21:38:02 +0200 -Subject: [PATCH 32/45] ARM: VFP: add support to sync the VFP state of the current thread +Subject: [PATCH 29/45] ARM: VFP: add support to sync the VFP state of the current thread ARM: VFP: add support to sync the VFP state of the current thread diff --git a/recipes/linux/linux-omap-psp-2.6.32/0033-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch b/recipes/linux/linux-omap-psp-2.6.32/0030-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch index 086e0d1ed5..996d1bf950 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0033-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0030-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch @@ -1,7 +1,7 @@ -From 8e0f703e8e9a615adbf8f7198dcf5a519ae47556 Mon Sep 17 00:00:00 2001 +From bdd0431478907155b3180a3c8e1cbee720bfe7ec Mon Sep 17 00:00:00 2001 From: Imre Deak <imre.deak@nokia.com> Date: Thu, 4 Feb 2010 21:38:30 +0200 -Subject: [PATCH 33/45] ARM: VFP: preserve the HW context when calling signal handlers +Subject: [PATCH 30/45] ARM: VFP: preserve the HW context when calling signal handlers ARM: VFP: preserve the HW context when calling signal handlers diff --git a/recipes/linux/linux-omap-psp-2.6.32/0034-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch b/recipes/linux/linux-omap-psp-2.6.32/0031-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch index 075600032b..4c7f809c04 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0034-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0031-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch @@ -1,7 +1,7 @@ -From ba85815ed7f62e24dc4640f61346318f2fe2deb2 Mon Sep 17 00:00:00 2001 +From e46009db99b4f65a3173521d19e94aaa48e75a33 Mon Sep 17 00:00:00 2001 From: Prabindh Sundareson <prabu@ti.com> Date: Wed, 3 Mar 2010 15:45:35 +0100 -Subject: [PATCH 34/45] Switch SGX clocks to 200MHz on DM37xx/OMAP36xx +Subject: [PATCH 31/45] Switch SGX clocks to 200MHz on DM37xx/OMAP36xx --- arch/arm/mach-omap2/clock34xx_data.c | 4 ++-- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0035-modedb.c-add-proper-720p60-mode.patch b/recipes/linux/linux-omap-psp-2.6.32/0032-modedb.c-add-proper-720p60-mode.patch index 249357d02a..35b792a35c 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0035-modedb.c-add-proper-720p60-mode.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0032-modedb.c-add-proper-720p60-mode.patch @@ -1,7 +1,7 @@ -From e1cd9003bdbfbbfcd6233a3f612c83a4a3a1f2c7 Mon Sep 17 00:00:00 2001 +From 434d6d660b3988cdb096292c8c0ec51de2eea723 Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Mon, 8 Mar 2010 14:38:31 +0100 -Subject: [PATCH 35/45] modedb.c: add proper 720p60 mode +Subject: [PATCH 32/45] modedb.c: add proper 720p60 mode --- drivers/video/modedb.c | 4 ++++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0036-RTC-add-support-for-backup-battery-recharge.patch b/recipes/linux/linux-omap-psp-2.6.32/0033-RTC-add-support-for-backup-battery-recharge.patch index e861c94eeb..ee133c7892 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0036-RTC-add-support-for-backup-battery-recharge.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0033-RTC-add-support-for-backup-battery-recharge.patch @@ -1,7 +1,7 @@ -From 0ac5a2799a0f317bf91db8e2e55e2c13315dc724 Mon Sep 17 00:00:00 2001 +From 25052ae67a0c5be9dea6f3e225b23dd3e7566d77 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Thu, 4 Feb 2010 12:26:22 -0800 -Subject: [PATCH 36/45] RTC: add support for backup battery recharge +Subject: [PATCH 33/45] RTC: add support for backup battery recharge --- drivers/rtc/rtc-twl.c | 25 +++++++++++++++++++++++++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch b/recipes/linux/linux-omap-psp-2.6.32/0034-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch index 41b1b0f69d..e64c68194d 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0034-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch @@ -1,7 +1,7 @@ -From 0d742d1d8df4d5d76802ba101944a5f89dba32a3 Mon Sep 17 00:00:00 2001 +From ca92b0b90ed5ebd14a6ad29d9a0c858274f7f566 Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Mon, 13 Oct 2008 20:32:16 +0100 -Subject: [PATCH 37/45] ARM: Add prompt for CONFIG_ALIGNMENT_TRAP +Subject: [PATCH 34/45] ARM: Add prompt for CONFIG_ALIGNMENT_TRAP This adds a prompt text for CONFIG_ALIGNMENT_TRAP, thus making it visible in make *config. diff --git a/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch b/recipes/linux/linux-omap-psp-2.6.32/0035-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch index fb8c7bc76a..f6b1705257 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0035-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch @@ -1,7 +1,7 @@ -From 1ffd2a7a2efbe8c7a9016e40ffe02e2cd4be5012 Mon Sep 17 00:00:00 2001 +From 7100b98fc3ad8bff74f3469ac5257c7c500c525c Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Sat, 28 Mar 2009 13:21:55 +0000 -Subject: [PATCH 38/45] ARM: Print warning on alignment trap in kernel mode +Subject: [PATCH 35/45] ARM: Print warning on alignment trap in kernel mode Signed-off-by: Mans Rullgard <mans@mansr.com> --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Expose-some-CPU-control-registers-via-sysfs.patch b/recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Expose-some-CPU-control-registers-via-sysfs.patch index d75d6c74c8..c7fa562ebe 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Expose-some-CPU-control-registers-via-sysfs.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Expose-some-CPU-control-registers-via-sysfs.patch @@ -1,7 +1,7 @@ -From bbb1be89b0f30e08ecdcf3700d2b7bb2304f5856 Mon Sep 17 00:00:00 2001 +From eb05553047988e84a6be8d1548efbcb43ccbb13b Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Tue, 10 Nov 2009 00:39:21 +0000 -Subject: [PATCH 39/45] ARM: Expose some CPU control registers via sysfs +Subject: [PATCH 36/45] ARM: Expose some CPU control registers via sysfs This creates sysfs files under /sys/devices/system/cpu/cpuN exposing the values of the control register, auxiliary control diff --git a/recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-PLE-access.patch b/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Add-option-to-allow-userspace-PLE-access.patch index 40c7550c8f..59a19546dd 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-PLE-access.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Add-option-to-allow-userspace-PLE-access.patch @@ -1,7 +1,7 @@ -From 087c763865b4ed7d76e6bdb711e1b3276442777f Mon Sep 17 00:00:00 2001 +From 84296cfee5a95613be6dd32467b7c0766174d9f6 Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Tue, 10 Nov 2009 00:41:54 +0000 -Subject: [PATCH 40/45] ARM: Add option to allow userspace PLE access +Subject: [PATCH 37/45] ARM: Add option to allow userspace PLE access This adds a Kconfig option to allow userspace to access the L2 preload engine (PLE) found in Cortex-A8. diff --git a/recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Add-option-to-allow-userspace-access-to-performa.patch b/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Add-option-to-allow-userspace-access-to-performa.patch index dd2a85037f..3f22c9d550 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Add-option-to-allow-userspace-access-to-performa.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Add-option-to-allow-userspace-access-to-performa.patch @@ -1,7 +1,7 @@ -From b84cde72cd4f324e911b9ab0e654cf22240affaf Mon Sep 17 00:00:00 2001 +From fd47acba386ae20539816664f6be3fdc5602b93d Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Tue, 10 Nov 2009 00:52:56 +0000 -Subject: [PATCH 41/45] ARM: Add option to allow userspace access to performance counters +Subject: [PATCH 38/45] ARM: Add option to allow userspace access to performance counters This adds an option to allow userspace access to the performance monitor registers of the Cortex-A8. diff --git a/recipes/linux/linux-omap-psp-2.6.32/0042-ARM-Expose-some-PMON-registers-through-sysfs.patch b/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Expose-some-PMON-registers-through-sysfs.patch index ce8b03f8ec..c9abeffdb4 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0042-ARM-Expose-some-PMON-registers-through-sysfs.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Expose-some-PMON-registers-through-sysfs.patch @@ -1,7 +1,7 @@ -From 29ebc75708afacd7e448d83b9d19cdf0ec070d4b Mon Sep 17 00:00:00 2001 +From 887cd41fff0c399086a06e38a734bc0f14006b82 Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Sat, 28 Mar 2009 13:05:02 +0000 -Subject: [PATCH 42/45] ARM: Expose some PMON registers through sysfs +Subject: [PATCH 39/45] ARM: Expose some PMON registers through sysfs --- arch/arm/kernel/sysfs_v7.c | 11 +++++++++++ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0043-musb-allow-host-io-without-gadget-module.patch b/recipes/linux/linux-omap-psp-2.6.32/0040-musb-allow-host-io-without-gadget-module.patch index e18cf1abc0..1c19d6bbab 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0043-musb-allow-host-io-without-gadget-module.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0040-musb-allow-host-io-without-gadget-module.patch @@ -1,7 +1,7 @@ -From 62cacbfa324ece5853eb1db865c96aa0acf75f5a Mon Sep 17 00:00:00 2001 +From e33724530848154c9302a720427bd46bf8a6700c Mon Sep 17 00:00:00 2001 From: Ajay Kumar Gupta <ajay.gupta@ti.com> Date: Wed, 14 Apr 2010 16:08:37 +0530 -Subject: [PATCH 43/45] musb: allow host io without gadget module +Subject: [PATCH 40/45] musb: allow host io without gadget module Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0044-MTD-silence-ecc-errors-on-mtdblock0.patch b/recipes/linux/linux-omap-psp-2.6.32/0041-MTD-silence-ecc-errors-on-mtdblock0.patch index 28f5811040..7d7c3e4159 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0044-MTD-silence-ecc-errors-on-mtdblock0.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0041-MTD-silence-ecc-errors-on-mtdblock0.patch @@ -1,7 +1,7 @@ -From 0978565a04a33581d5d3bd023e51dbcdfa2e3174 Mon Sep 17 00:00:00 2001 +From 538a454d07c8524ebb5db6d47be9eac0e0292575 Mon Sep 17 00:00:00 2001 From: Steve Sakoman <steve@sakoman.com> Date: Mon, 26 Apr 2010 11:17:26 -0700 -Subject: [PATCH 44/45] MTD: silence ecc errors on mtdblock0 +Subject: [PATCH 41/45] MTD: silence ecc errors on mtdblock0 mtdblock0 is the x-load partition, which uses hw ecc this confuses linux, which uses sw ecc diff --git a/recipes/linux/linux-omap-psp-2.6.32/0045-ARM-OMAP-update-beagleboard-defconfig.patch b/recipes/linux/linux-omap-psp-2.6.32/0042-ARM-OMAP-update-beagleboard-defconfig.patch index d79defe38f..297e4c618c 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0045-ARM-OMAP-update-beagleboard-defconfig.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0042-ARM-OMAP-update-beagleboard-defconfig.patch @@ -1,7 +1,7 @@ -From e0a450180e8a92ad43d62314bed43809386703a7 Mon Sep 17 00:00:00 2001 +From 6373a5aa34efdf0a938a585ded13ad111a1c2466 Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Tue, 27 Apr 2010 10:51:15 +0200 -Subject: [PATCH 45/45] ARM: OMAP: update beagleboard defconfig +Subject: [PATCH 42/45] ARM: OMAP: update beagleboard defconfig --- arch/arm/configs/omap3_beagle_defconfig | 2514 +++++++++++++++++++++++++------ diff --git a/recipes/linux/linux-omap-psp-2.6.32/0043-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch b/recipes/linux/linux-omap-psp-2.6.32/0043-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch index 76af18ca7d..3788a163b8 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/0043-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch +++ b/recipes/linux/linux-omap-psp-2.6.32/0043-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch @@ -1,7 +1,7 @@ From b6238a79746a5022969a5f780a6e51d794ab9c0c Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Mon, 3 May 2010 14:41:29 +0200 -Subject: [PATCH 43/43] ARM: OMAP: beagleboard: Add infrastructure to do fixups based on expansionboard name passed by u-boot +Subject: [PATCH 43/45] ARM: OMAP: beagleboard: Add infrastructure to do fixups based on expansionboard name passed by u-boot And add support for zippy2 --- diff --git a/recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch b/recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch new file mode 100644 index 0000000000..a8e351455e --- /dev/null +++ b/recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch @@ -0,0 +1,57 @@ +From 1608895c3901aa1a857fb931d56054dec120d232 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen@dominion.thruhere.net> +Date: Mon, 3 May 2010 21:38:34 +0200 +Subject: [PATCH 44/45] ARM: OMAP: beagleboard: pre-export GPIOs to userspace when using a Tincantools trainerboard + +This really needs a for loop, patches welcome +--- + arch/arm/mach-omap2/board-omap3beagle.c | 33 ++++++++++++++++++++++++++++++- + 1 files changed, 32 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index cb2c9c8..4dbb109 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -706,7 +706,38 @@ static void __init omap3_beagle_init(void) + mmc[1].gpio_wp = 141; + mmc[1].gpio_cd = 162; + } +- ++ ++ if(!strcmp(expansionboard_name, "trainer")) ++ { ++ printk(KERN_INFO "Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n"); ++ gpio_request(130, "sysfs"); ++ gpio_export(130, 1); ++ gpio_request(131, "sysfs"); ++ gpio_export(131, 1); ++ gpio_request(132, "sysfs"); ++ gpio_export(132, 1); ++ gpio_request(133, "sysfs"); ++ gpio_export(133, 1); ++ gpio_request(134, "sysfs"); ++ gpio_export(134, 1); ++ gpio_request(135, "sysfs"); ++ gpio_export(135, 1); ++ gpio_request(136, "sysfs"); ++ gpio_export(136, 1); ++ gpio_request(137, "sysfs"); ++ gpio_export(137, 1); ++ gpio_request(138, "sysfs"); ++ gpio_export(138, 1); ++ gpio_request(139, "sysfs"); ++ gpio_export(139, 1); ++ gpio_request(140, "sysfs"); ++ gpio_export(140, 1); ++ gpio_request(141, "sysfs"); ++ gpio_export(141, 1); ++ gpio_request(162, "sysfs"); ++ gpio_export(162, 1); ++ } ++ + usb_musb_init(); + usb_ehci_init(&ehci_pdata); + omap3beagle_flash_init(); +-- +1.6.6.1 + diff --git a/recipes/linux/linux-omap-psp-2.6.32/0045-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch b/recipes/linux/linux-omap-psp-2.6.32/0045-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch new file mode 100644 index 0000000000..205cb7e311 --- /dev/null +++ b/recipes/linux/linux-omap-psp-2.6.32/0045-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch @@ -0,0 +1,76 @@ +From 5544b0a8c422e75c5d372232b494a4652008f048 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen@dominion.thruhere.net> +Date: Mon, 3 May 2010 22:31:34 +0200 +Subject: [PATCH 45/45] ARM: OMAP: beagleboard: initialize ds1307 and eeprom only for zippy and zippy2 + +--- + arch/arm/mach-omap2/board-omap3beagle.c | 39 +++++++++++++++++++++++++++--- + 1 files changed, 35 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 4dbb109..dd830b1 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -501,24 +501,55 @@ static struct i2c_board_info __initdata beagle_i2c1_boardinfo[] = { + }, + }; + ++ ++#if defined(CONFIG_EEPROM_AT24) || defined(CONFIG_EEPROM_AT24_MODULE) ++#include <linux/i2c/at24.h> ++ ++static struct at24_platform_data m24c01 = { ++ .byte_len = SZ_1K / 8, ++ .page_size = 16, ++}; ++ + #if defined(CONFIG_RTC_DRV_DS1307) || \ + defined(CONFIG_RTC_DRV_DS1307_MODULE) + +-static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = { ++static struct i2c_board_info __initdata beagle_zippy_i2c2_boardinfo[] = { + { + I2C_BOARD_INFO("ds1307", 0x68), + }, ++ { ++ I2C_BOARD_INFO("24c01", 0x50), ++ .platform_data = &m24c01, ++ }, + }; + #else +-static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {}; ++static struct i2c_board_info __initdata beagle_zippy_i2c2_boardinfo[] = { ++ { ++ I2C_BOARD_INFO("24c01", 0x50), ++ .platform_data = &m24c01, ++ }, ++}; ++#endif ++#else ++static struct i2c_board_info __initdata beagle_zippy_i2c2_boardinfo[] = {}; + #endif + ++static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {}; ++ + static int __init omap3_beagle_i2c_init(void) + { + omap_register_i2c_bus(1, 2600, beagle_i2c1_boardinfo, + ARRAY_SIZE(beagle_i2c1_boardinfo)); +- omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, +- ARRAY_SIZE(beagle_i2c2_boardinfo)); ++ if(!strcmp(expansionboard_name, "zippy") || !strcmp(expansionboard_name, "zippy2")) ++ { ++ printk(KERN_INFO "Beagle expansionboard: registering i2c2 bus for zippy/zippy2\n"); ++ omap_register_i2c_bus(2, 400, beagle_zippy_i2c2_boardinfo, ++ ARRAY_SIZE(beagle_zippy_i2c2_boardinfo)); ++ } else ++ { ++ omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, ++ ARRAY_SIZE(beagle_i2c2_boardinfo)); ++ } + /* Bus 3 is attached to the DVI port where devices like the pico DLP + * projector don't work reliably with 400kHz */ + omap_register_i2c_bus(3, 100, NULL, 0); +-- +1.6.6.1 + diff --git a/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig index 5a33afa1eb..a2aeee49b3 100644 --- a/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig +++ b/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig @@ -1055,7 +1055,7 @@ CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 # # EEPROM support # -# CONFIG_EEPROM_AT24 is not set +CONFIG_EEPROM_AT24=m # CONFIG_EEPROM_AT25 is not set # CONFIG_EEPROM_LEGACY is not set # CONFIG_EEPROM_MAX6875 is not set @@ -2442,7 +2442,7 @@ CONFIG_RTC_INTF_DEV=y # # I2C RTC drivers # -# CONFIG_RTC_DRV_DS1307 is not set +CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_MAX6900 is not set diff --git a/recipes/linux/linux-omap-psp_2.6.32.bb b/recipes/linux/linux-omap-psp_2.6.32.bb index bce446dae6..1e63107070 100644 --- a/recipes/linux/linux-omap-psp_2.6.32.bb +++ b/recipes/linux/linux-omap-psp_2.6.32.bb @@ -19,42 +19,44 @@ SRC_URI = "git://arago-project.org/git/people/sriram/ti-psp-omap.git;protocol=gi file://0005-board-omap3-beagle-add-DSS2-support.patch;patch=1 \ file://0006-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch;patch=1 \ file://0007-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch;patch=1 \ - file://0010-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch;patch=1 \ - file://0012-ASoC-enable-audio-capture-by-default-for-twl4030.patch;patch=1 \ - file://0013-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch;patch=1 \ - file://0014-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch;patch=1 \ - file://0015-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch;patch=1 \ - file://0016-ISP-add-some-more-from-Leopard-imaging-patch.patch;patch=1 \ - file://0017-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch;patch=1 \ - file://0018-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch;patch=1 \ - file://0019-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch;patch=1 \ - file://0020-drivers-mfd-add-twl4030-madc-driver.patch;patch=1 \ - file://0021-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch;patch=1 \ - file://0022-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch;patch=1 \ - file://0023-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch;patch=1 \ - file://0024-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch;patch=1 \ - file://0025-mmc-don-t-display-single-block-read-console-messages.patch;patch=1 \ - file://0026-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch;patch=1 \ - file://0027-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch;patch=1 \ - file://0028-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch;patch=1 \ - file://0029-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch;patch=1 \ - file://0030-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch;patch=1 \ - file://0031-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch;patch=1 \ - file://0032-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch;patch=1 \ - file://0033-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch;patch=1 \ - file://0034-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch;patch=1 \ - file://0035-modedb.c-add-proper-720p60-mode.patch;patch=1 \ - file://0036-RTC-add-support-for-backup-battery-recharge.patch;patch=1 \ - file://0037-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch;patch=1 \ - file://0038-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch;patch=1 \ - file://0039-ARM-Expose-some-CPU-control-registers-via-sysfs.patch;patch=1 \ - file://0040-ARM-Add-option-to-allow-userspace-PLE-access.patch;patch=1 \ - file://0041-ARM-Add-option-to-allow-userspace-access-to-performa.patch;patch=1 \ - file://0042-ARM-Expose-some-PMON-registers-through-sysfs.patch;patch=1 \ - file://0043-musb-allow-host-io-without-gadget-module.patch;patch=1 \ - file://0044-MTD-silence-ecc-errors-on-mtdblock0.patch;patch=1 \ - file://0045-ARM-OMAP-update-beagleboard-defconfig.patch;patch=1 \ + file://0008-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch;patch=1 \ + file://0009-ASoC-enable-audio-capture-by-default-for-twl4030.patch;patch=1 \ + file://0010-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch;patch=1 \ + file://0011-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch;patch=1 \ + file://0012-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch;patch=1 \ + file://0013-ISP-add-some-more-from-Leopard-imaging-patch.patch;patch=1 \ + file://0014-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch;patch=1 \ + file://0015-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch;patch=1 \ + file://0016-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch;patch=1 \ + file://0017-drivers-mfd-add-twl4030-madc-driver.patch;patch=1 \ + file://0018-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch;patch=1 \ + file://0019-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch;patch=1 \ + file://0020-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch;patch=1 \ + file://0021-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch;patch=1 \ + file://0022-mmc-don-t-display-single-block-read-console-messages.patch;patch=1 \ + file://0023-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch;patch=1 \ + file://0024-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch;patch=1 \ + file://0025-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch;patch=1 \ + file://0026-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch;patch=1 \ + file://0027-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch;patch=1 \ + file://0028-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch;patch=1 \ + file://0029-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch;patch=1 \ + file://0030-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch;patch=1 \ + file://0031-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch;patch=1 \ + file://0032-modedb.c-add-proper-720p60-mode.patch;patch=1 \ + file://0033-RTC-add-support-for-backup-battery-recharge.patch;patch=1 \ + file://0034-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch;patch=1 \ + file://0035-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch;patch=1 \ + file://0036-ARM-Expose-some-CPU-control-registers-via-sysfs.patch;patch=1 \ + file://0037-ARM-Add-option-to-allow-userspace-PLE-access.patch;patch=1 \ + file://0038-ARM-Add-option-to-allow-userspace-access-to-performa.patch;patch=1 \ + file://0039-ARM-Expose-some-PMON-registers-through-sysfs.patch;patch=1 \ + file://0040-musb-allow-host-io-without-gadget-module.patch;patch=1 \ + file://0041-MTD-silence-ecc-errors-on-mtdblock0.patch;patch=1 \ + file://0042-ARM-OMAP-update-beagleboard-defconfig.patch;patch=1 \ file://0043-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch;patch=1 \ + file://0044-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch;patch=1 \ + file://0045-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch;patch=1 \ file://defconfig" SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \ |