diff --git a/alarm/elftosb/PKGBUILD b/alarm/elftosb/PKGBUILD new file mode 100644 index 000000000..b4539b175 --- /dev/null +++ b/alarm/elftosb/PKGBUILD @@ -0,0 +1,33 @@ +# Contributor: Kiril Zyapkov +pkgname=elftosb +pkgver=10.12.01 +pkgrel=1 +pkgdesc="Helper utility for freescale imx platforms" +arch=(arm) +url="http://freescale.com" +license=('MIT') +makedepends=() +source=( + "http://repository.timesys.com/buildsources/e/$pkgname/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz" + "http://repository.timesys.com/buildsources/e/$pkgname/$pkgname-$pkgver/$pkgname-$pkgver-libm.patch") +md5sums=( + 'e8005d606c1e0bb3507c82f6eceb3056' + 'b4b758eb116914e284d6d12872948131') + + +build() { + cd "$srcdir/$pkgname-$pkgver" + patch -p1 < ../$pkgname-$pkgver-libm.patch + make all +} + +package() { + mkdir -p $pkgdir/usr/local/bin + install -D -m 755 $srcdir/$pkgname-$pkgver/bld/linux/elftosb $pkgdir/usr/local/bin/ || return 1 + install -D -m 755 $srcdir/$pkgname-$pkgver/bld/linux/keygen $pkgdir/usr/local/bin/ || return 1 + install -D -m 755 $srcdir/$pkgname-$pkgver/bld/linux/sbtool $pkgdir/usr/local/bin/ || return 1 + cd $pkgdir/usr/local/bin + ln -sf elftosb elftosb2 +} + +# vim:set ts=2 sw=2 et: diff --git a/alarm/imx-bootlets-olinuxino/PKGBUILD b/alarm/imx-bootlets-olinuxino/PKGBUILD new file mode 100644 index 000000000..ddaa3d4a0 --- /dev/null +++ b/alarm/imx-bootlets-olinuxino/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Kiril Zyapkov +pkgname=imx-bootlets-olinuxino +pkgver=10.12.01 +pkgrel=2 +pkgdesc="Bootlets for the i.MX233 Freescale processor" +arch=(arm) +url="http://freescale.com" +license=('MIT') +makedepends=() +source=("http://download.ossystems.com.br/bsp/freescale/source/imx-bootlets-src-${pkgver}.tar.gz" + "linux_prep-fix-cmdlines.patch" + "linux-fix-paths.patch" + "imx233-olinuxino-maxi.patch") +md5sums=('cf0ab3822dca694b930a051501c1d0e4' + '5d2ceded7e8ece6245063098090ac4fe' + '2d38235c047194c65b6119363be55211' + 'a3ecd391021d32723c34c955a3e2a0f5') + +build() { + cd ${srcdir}/imx-bootlets-src-${pkgver} + patch -Np1 -i ../linux_prep-fix-cmdlines.patch + patch -Np1 -i ../linux-fix-paths.patch + patch -Np1 -i ../imx233-olinuxino-maxi.patch + + BOARD=stmp378x_dev make linux_prep boot_prep power_prep +} + +package() { + cd ${srcdir}/imx-bootlets-src-${pkgver} + mkdir -p ${pkgdir}/opt/imx-bootlets-olinuxino + install -m 0644 linux.bd ${pkgdir}/opt/imx-bootlets-olinuxino + install -m 0644 power_prep/power_prep ${pkgdir}/opt/imx-bootlets-olinuxino + install -m 0644 boot_prep/boot_prep ${pkgdir}/opt/imx-bootlets-olinuxino + install -m 0644 linux_prep/output-target/linux_prep ${pkgdir}/opt/imx-bootlets-olinuxino +} +# vim:set ts=2 sw=2 et: diff --git a/alarm/imx-bootlets-olinuxino/imx233-olinuxino-maxi.patch b/alarm/imx-bootlets-olinuxino/imx233-olinuxino-maxi.patch new file mode 100644 index 000000000..51696d0e6 --- /dev/null +++ b/alarm/imx-bootlets-olinuxino/imx233-olinuxino-maxi.patch @@ -0,0 +1,19 @@ +mx23/platform: set machine ID + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Otavio Salvador + +diff --git a/linux_prep/include/mx23/platform.h b/linux_prep/include/mx23/platform.h +index ed58d79..3cbe2eb 100644 +--- a/linux_prep/include/mx23/platform.h ++++ b/linux_prep/include/mx23/platform.h +@@ -18,7 +18,7 @@ + #define __37XX_PLATFORM_H + + #if defined (BOARD_STMP378X_DEV) +-#define MACHINE_ID 0xa45 ++#define MACHINE_ID 0x1009 + #else + #error "Allocate a machine ID for your board" + #endif diff --git a/alarm/imx-bootlets-olinuxino/linux-fix-paths.patch b/alarm/imx-bootlets-olinuxino/linux-fix-paths.patch new file mode 100644 index 000000000..26d267c0d --- /dev/null +++ b/alarm/imx-bootlets-olinuxino/linux-fix-paths.patch @@ -0,0 +1,19 @@ +diff --git a/linux.bd b/linux.bd +index c4956d0..036a609 100644 +--- a/linux.bd ++++ b/linux.bd +@@ -4,10 +4,10 @@ options { + flags = 0x01; + } + sources { +- power_prep="./power_prep/power_prep"; +- sdram_prep="./boot_prep/boot_prep"; +- linux_prep="./linux_prep/output-target/linux_prep"; +- zImage = "./zImage"; ++ power_prep="imx-bootlets-olinuxino/power_prep"; ++ sdram_prep="imx-bootlets-olinuxino/boot_prep"; ++ linux_prep="imx-bootlets-olinuxino/linux_prep"; ++ zImage = "zImage"; + } + + section (0) { diff --git a/alarm/imx-bootlets-olinuxino/linux_prep-fix-cmdlines.patch b/alarm/imx-bootlets-olinuxino/linux_prep-fix-cmdlines.patch new file mode 100644 index 000000000..4fb4c5192 --- /dev/null +++ b/alarm/imx-bootlets-olinuxino/linux_prep-fix-cmdlines.patch @@ -0,0 +1,30 @@ +imx-bootlets: Fix cmdlines for Linux boot + +This adapt the cmdlines for the partitioning layout used on the +generated SD cards. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Otavio Salvador + +diff --git a/linux_prep/cmdlines/iMX28_EVK.txt b/linux_prep/cmdlines/iMX28_EVK.txt +index 6bc36b9..6cf89a0 100644 +--- a/linux_prep/cmdlines/iMX28_EVK.txt ++++ b/linux_prep/cmdlines/iMX28_EVK.txt +@@ -1 +1 @@ +-console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait ++console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait +diff --git a/linux_prep/cmdlines/stmp378x_dev.txt b/linux_prep/cmdlines/stmp378x_dev.txt +index 9a717eb..fdb7390 100644 +--- a/linux_prep/cmdlines/stmp378x_dev.txt ++++ b/linux_prep/cmdlines/stmp378x_dev.txt +@@ -1,6 +1,3 @@ +-console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait lcd_panel=lms430 no_console_suspend +-console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait lcd_panel=lms350 +-console=ttyAM0,115200 ssp1=spi1 ubi.mtd=2 root=ubi0:rootfs0 rootfstype=ubifs lcd_panel=lms430 +- +- +- ++console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait ssp1=mmc lcd_panel=lms430 no_console_suspend ++console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait ssp1=mmc lcd_panel=lms350 ++console=ttyAMA0,115200 ssp1=spi1 ubi.mtd=2 root=ubi0:rootfs0 rootfstype=ubifs lcd_panel=lms430 diff --git a/core/kernel26-olinuxino/0001-mx53_loco-add-USR-led-support.patch b/core/kernel26-olinuxino/0001-mx53_loco-add-USR-led-support.patch new file mode 100644 index 000000000..1eff49447 --- /dev/null +++ b/core/kernel26-olinuxino/0001-mx53_loco-add-USR-led-support.patch @@ -0,0 +1,68 @@ +From 564ac4b9d7da4cc8e6fdca33ca45d19649dc3366 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eric=20B=C3=A9nard?= +Date: Wed, 7 Mar 2012 23:24:54 +0100 +Subject: [PATCH] mx53_loco: add USR led support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Eric Bénard +--- + arch/arm/mach-mx5/mx53_loco.c | 27 +++++++++++++++++++++++++++ + 1 files changed, 27 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-mx5/mx53_loco.c b/arch/arm/mach-mx5/mx53_loco.c +index c8417da..c91952b 100644 +--- a/arch/arm/mach-mx5/mx53_loco.c ++++ b/arch/arm/mach-mx5/mx53_loco.c +@@ -835,6 +835,28 @@ static void __init fixup_mxc_board(struct machine_desc *desc, struct tag *tags, + } + } + ++static struct gpio_led gpio_leds[] = { ++ { ++ .name = "USR", ++ .default_trigger = "heartbeat", ++ .active_low = 0, ++ .gpio = USER_LED_EN, ++ }, ++}; ++ ++static struct gpio_led_platform_data gpio_led_info = { ++ .leds = gpio_leds, ++ .num_leds = ARRAY_SIZE(gpio_leds), ++}; ++ ++static struct platform_device leds_gpio = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &gpio_led_info, ++ }, ++}; ++ + static void __init mx53_loco_io_init(void) + { + mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, +@@ -865,6 +887,10 @@ static void __init mx53_loco_io_init(void) + gpio_request(DISP0_POWER_EN, "disp0-power-en"); + gpio_direction_output(DISP0_POWER_EN, 1); + ++ /* USR LED */ ++ gpio_request(USER_LED_EN, "user-led-en"); ++ gpio_direction_output(USER_LED_EN, 1); ++ gpio_free(USER_LED_EN); + } + + /*! +@@ -979,6 +1005,7 @@ static void __init mxc_board_init(void) + loco_add_device_buttons(); + pm_power_off = da9053_power_off; + pm_i2c_init(I2C1_BASE_ADDR - MX53_OFFSET); ++ platform_device_register(&leds_gpio); + } + + static void __init mx53_loco_timer_init(void) +-- +1.7.7.6 + diff --git a/core/kernel26-olinuxino/0002-cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch b/core/kernel26-olinuxino/0002-cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch new file mode 100644 index 000000000..55ec97562 --- /dev/null +++ b/core/kernel26-olinuxino/0002-cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch @@ -0,0 +1,58 @@ +From 64bc6f1bfac43096d0102be252392f31405273ec Mon Sep 17 00:00:00 2001 +From: Greg KH +Date: Thu, 5 Aug 2010 13:53:35 -0700 +Subject: [PATCH 2/2] cgroupfs: create /sys/fs/cgroup to mount cgroupfs on + +We really shouldn't be asking userspace to create new root filesystems. +So follow along with all of the other in-kernel filesystems, and provide +a mount point in sysfs. + +For cgroupfs, this should be in /sys/fs/cgroup/ This change provides +that mount point when the cgroup filesystem is registered in the kernel. + +Acked-by: Paul Menage +Acked-by: Dhaval Giani +Cc: Li Zefan +Cc: Lennart Poettering +Cc: Kay Sievers +Signed-off-by: Greg Kroah-Hartman +--- + kernel/cgroup.c | 13 ++++++++++++- + 1 files changed, 12 insertions(+), 1 deletions(-) + +diff --git a/kernel/cgroup.c b/kernel/cgroup.c +index 7a14a97..cd81c18 100644 +--- a/kernel/cgroup.c ++++ b/kernel/cgroup.c +@@ -1621,6 +1621,8 @@ static struct file_system_type cgroup_fs_type = { + .kill_sb = cgroup_kill_sb, + }; + ++static struct kobject *cgroup_kobj; ++ + static inline struct cgroup *__d_cgrp(struct dentry *dentry) + { + return dentry->d_fsdata; +@@ -3885,9 +3887,18 @@ int __init cgroup_init(void) + hhead = css_set_hash(init_css_set.subsys); + hlist_add_head(&init_css_set.hlist, hhead); + BUG_ON(!init_root_id(&rootnode)); ++ ++ cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj); ++ if (!cgroup_kobj) { ++ err = -ENOMEM; ++ goto out; ++ } ++ + err = register_filesystem(&cgroup_fs_type); +- if (err < 0) ++ if (err < 0) { ++ kobject_put(cgroup_kobj); + goto out; ++ } + + proc_create("cgroups", 0, NULL, &proc_cgroupstats_operations); + +-- +1.6.6.1 + diff --git a/core/kernel26-olinuxino/002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch b/core/kernel26-olinuxino/002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch new file mode 100644 index 000000000..08cf6085e --- /dev/null +++ b/core/kernel26-olinuxino/002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch @@ -0,0 +1,23 @@ +commit 0ffabfea6c190d28e25587c95e282eb777b3feb2 +Author: Phil Endecott +Date: Mon Oct 31 21:21:41 2011 +0000 + + Return ERESTARTSYS from IPU_GET_EVENT + +Index: git/drivers/mxc/ipu/ipu_device.c +=================================================================== +--- git.orig/drivers/mxc/ipu/ipu_device.c 2012-01-24 15:34:37.000000000 +0100 ++++ git/drivers/mxc/ipu/ipu_device.c 2012-01-31 16:21:19.599303457 +0100 +@@ -411,8 +411,10 @@ + + r = get_events(&info); + if (r == -1) { +- wait_event_interruptible_timeout(waitq, +- (pending_events != 0), 2 * HZ); ++ if (wait_event_interruptible_timeout(waitq, ++ (pending_events != 0), 2 * HZ)) < 0) { ++ return -ERESTARTSYS; ++ } + r = get_events(&info); + } + ret = -1; diff --git a/core/kernel26-olinuxino/003_Sanitise_ipu_interrupt_return_value.patch b/core/kernel26-olinuxino/003_Sanitise_ipu_interrupt_return_value.patch new file mode 100644 index 000000000..c19995911 --- /dev/null +++ b/core/kernel26-olinuxino/003_Sanitise_ipu_interrupt_return_value.patch @@ -0,0 +1,50 @@ +commit 7237ebd59bf1cd8bcc9508ec4bc5674dc7cc6c58 +Author: Phil Endecott +Date: Tue Nov 1 18:16:56 2011 +0000 + + Sanitise ipu interrupt return value, and loop waiting for interrupt + +diff --git a/drivers/mxc/ipu3/ipu_device.c b/drivers/mxc/ipu3/ipu_device.c +index 1955f09..d66b8f8 100644 +--- a/drivers/mxc/ipu3/ipu_device.c ++++ b/drivers/mxc/ipu3/ipu_device.c +@@ -311,7 +311,7 @@ static int mxc_ipu_ioctl(struct inode *inode, struct file *file, + structure and pass the pointer in arg */ + { + ipu_event_info info; +- int r = -1; ++ int r; + + if (copy_from_user + (&info, (ipu_event_info *) arg, +@@ -319,7 +319,7 @@ static int mxc_ipu_ioctl(struct inode *inode, struct file *file, + return -EFAULT; + + r = get_events(&info); +- if (r == -1) { ++ while (r == -1) { + if ((file->f_flags & O_NONBLOCK) && + (irq_info[info.irq].irq_pending == 0)) + return -EAGAIN; +@@ -328,13 +328,15 @@ static int mxc_ipu_ioctl(struct inode *inode, struct file *file, + return -ERESTARTSYS; + } + r = get_events(&info); ++ if (r == -1) { ++ /* Shouldn't happen? */ ++ printk(KERN_ERR "no events after waiting\n"); ++ } + } +- ret = -1; +- if (r == 0) { +- if (!copy_to_user((ipu_event_info *) arg, +- &info, sizeof(ipu_event_info))) +- ret = 0; +- } ++ if (copy_to_user((ipu_event_info *) arg, ++ &info, sizeof(ipu_event_info))) ++ return -EFAULT; ++ ret = 0; + } + break; + case IPU_ALOC_MEM: diff --git a/core/kernel26-olinuxino/1130-ENGR00157473-MX5X-UART-disable-UART2-DMA-to-make-G.patch b/core/kernel26-olinuxino/1130-ENGR00157473-MX5X-UART-disable-UART2-DMA-to-make-G.patch new file mode 100644 index 000000000..aa897705b --- /dev/null +++ b/core/kernel26-olinuxino/1130-ENGR00157473-MX5X-UART-disable-UART2-DMA-to-make-G.patch @@ -0,0 +1,41 @@ +From f7702086585465f6ccaa33ae815535e8ff10f025 Mon Sep 17 00:00:00 2001 +From: Zhang Jiejing +Date: Fri, 23 Sep 2011 11:05:04 +0800 +Subject: [PATCH] ENGR00157473 MX5X: UART: disable UART2 DMA to make GPS work. + +After enable DMA, GPS will keep report these DMA error: + + UART: DMA_ERROR: sr1:2010 sr2:508b + UART: DMA_ERROR: sr1:2050 sr2:508a + UART: DMA_ERROR: sr1:2050 sr2:508b + UART: DMA_ERROR: sr1:10 sr2:1083 + UART: DMA_ERROR: sr1:50 sr2:1082 + UART: DMA_ERROR: sr1:2010 sr2:508b + UART: DMA_ERROR: sr1:2050 sr2:508a + UART: DMA_ERROR: sr1:2010 sr2:508b + UART: DMA_ERROR: sr1:2010 sr2:508b + UART: DMA_ERROR: sr1:2010 sr2:508b + UART: DMA_ERROR: sr1:50 sr2:1083 + +Signed-off-by: Zhang Jiejing +(cherry picked from commit ddaf091fd3f5fae56b3c83f5cf59ee4f189f0a40) +--- + arch/arm/mach-mx5/serial.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mach-mx5/serial.h b/arch/arm/mach-mx5/serial.h +index 6ed55da..b142fdb 100644 +--- a/arch/arm/mach-mx5/serial.h ++++ b/arch/arm/mach-mx5/serial.h +@@ -45,7 +45,7 @@ + #define UART1_DMA_ENABLE 0 + /* UART 2 configuration */ + #define UART2_UCR4_CTSTL -1 +-#define UART2_DMA_ENABLE 1 ++#define UART2_DMA_ENABLE 0 + #define UART2_DMA_RXBUFSIZE 512 + #define UART2_UFCR_RXTL 16 + #define UART2_UFCR_TXTL 16 +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1132-ENGR00155891-mx53_loco-enable-mc34708-s-WDI-functio.patch b/core/kernel26-olinuxino/1132-ENGR00155891-mx53_loco-enable-mc34708-s-WDI-functio.patch new file mode 100644 index 000000000..8ebcf840d --- /dev/null +++ b/core/kernel26-olinuxino/1132-ENGR00155891-mx53_loco-enable-mc34708-s-WDI-functio.patch @@ -0,0 +1,48 @@ +From 8cece584b73434c1eb76a553424ff5b875fd1022 Mon Sep 17 00:00:00 2001 +From: Robin Gong +Date: Sat, 8 Oct 2011 11:17:42 +0800 +Subject: [PATCH] ENGR00155891 mx53_loco: enable mc34708's WDI function and pin configuration + +Because of reboot failure, we add mc34708's WDI reset function and the pin's +mux function when system reboot. So mc34708 will be reset when AP reboot. +Signed-off-by: Robin Gong +(cherry picked from commit 8e03278824625e8d528e129ad49e094e4d533f87) +--- + arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c | 5 +++++ + arch/arm/plat-mxc/system.c | 4 ++++ + 2 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c b/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c +index ca5a052..3ad0206 100644 +--- a/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c ++++ b/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c +@@ -285,6 +285,11 @@ static int mc34708_regulator_init(struct mc34708 *mc34708) + value &= ~SWHOLD_MASK; + pmic_write_reg(REG_MC34708_USB_CONTROL, value, 0xffffff); + ++ /* enable WDI reset*/ ++ pmic_read_reg(REG_MC34708_POWER_CTL2, &value, 0xffffff); ++ value |= 0x1000; ++ pmic_write_reg(REG_MC34708_POWER_CTL2, value, 0xffffff); ++ + mc34708_register_regulator(mc34708, MC34708_SW1A, &sw1a_init); + mc34708_register_regulator(mc34708, MC34708_SW1B, &sw1b_init); + mc34708_register_regulator(mc34708, MC34708_SW2, &sw2_init); +diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c +index e4665a2..4f21d5c 100644 +--- a/arch/arm/plat-mxc/system.c ++++ b/arch/arm/plat-mxc/system.c +@@ -78,6 +78,10 @@ void arch_reset(char mode, const char *cmd) + } + + /* Assert SRS signal */ ++#ifdef CONFIG_ARCH_MX5 ++ if (board_is_mx53_loco_mc34708()) /*only for mx53_loco_mc34708*/ ++ mxc_iomux_v3_setup_pad(MX53_PAD_GPIO_9__WDOG1_WDOG_B); ++#endif + __raw_writew(wcr_enable, wdog_base); + + /* wait for reset to assert... */ +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1134-ENGR00159738-v4l2-correct-wrong-parameter-when-V4l2.patch b/core/kernel26-olinuxino/1134-ENGR00159738-v4l2-correct-wrong-parameter-when-V4l2.patch new file mode 100644 index 000000000..66711688f --- /dev/null +++ b/core/kernel26-olinuxino/1134-ENGR00159738-v4l2-correct-wrong-parameter-when-V4l2.patch @@ -0,0 +1,29 @@ +From 0fd61785f56c2785b471e1d2dd1071a480380c3f Mon Sep 17 00:00:00 2001 +From: Yuxi Sun +Date: Wed, 12 Oct 2011 12:17:02 +0800 +Subject: [PATCH] ENGR00159738 v4l2: correct wrong parameter when V4l2 set window size + +Correct wrong parameter when call ipu_csi_set_window_size function + +Signed-off-by: Yuxi Sun +(cherry picked from commit c1cb33e5cbebb979967f74eecf55efe6a83884ab) +--- + drivers/media/video/mxc/capture/mxc_v4l2_capture.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/media/video/mxc/capture/mxc_v4l2_capture.c b/drivers/media/video/mxc/capture/mxc_v4l2_capture.c +index ded1839..c030a39 100644 +--- a/drivers/media/video/mxc/capture/mxc_v4l2_capture.c ++++ b/drivers/media/video/mxc/capture/mxc_v4l2_capture.c +@@ -1594,7 +1594,7 @@ static int mxc_v4l_open(struct file *file) + pr_debug("On Open: Input to ipu size is %d x %d\n", + cam_fmt.fmt.pix.width, cam_fmt.fmt.pix.height); + ipu_csi_set_window_size(cam->crop_current.width, +- cam->crop_current.width, ++ cam->crop_current.height, + cam->csi); + ipu_csi_set_window_pos(cam->crop_current.left, + cam->crop_current.top, +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1136-ENGR00161215-1-arch-arm-Add-two-new-IOCTLs-in-mxc_v.patch b/core/kernel26-olinuxino/1136-ENGR00161215-1-arch-arm-Add-two-new-IOCTLs-in-mxc_v.patch new file mode 100644 index 000000000..dbe92f4a1 --- /dev/null +++ b/core/kernel26-olinuxino/1136-ENGR00161215-1-arch-arm-Add-two-new-IOCTLs-in-mxc_v.patch @@ -0,0 +1,33 @@ +From 3083ae11d58fb7a083663865020c0a763540532b Mon Sep 17 00:00:00 2001 +From: Sammy He +Date: Wed, 2 Nov 2011 20:02:35 +0800 +Subject: [PATCH] ENGR00161215-1 arch/arm: Add two new IOCTLs in mxc_vpu.h + +Add IOCTL VPU_IOC_QUERY_BITWORK_MEM and VPU_IOC_SET_BITWORK_MEM +for vpu driver. +The two ioctls can be used when user allocates working buffer +from user space, for exmaple, allocating it from pmem interface +on android, then register it to vpu driver. + +Signed-off-by: Sammy He +(cherry picked from commit ad29cb1c2ad8ca4bbb30ff2ff55a4e8888b08373) +--- + arch/arm/plat-mxc/include/mach/mxc_vpu.h | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/plat-mxc/include/mach/mxc_vpu.h b/arch/arm/plat-mxc/include/mach/mxc_vpu.h +index 355a9ef..32865e5 100644 +--- a/arch/arm/plat-mxc/include/mach/mxc_vpu.h ++++ b/arch/arm/plat-mxc/include/mach/mxc_vpu.h +@@ -48,6 +48,8 @@ struct vpu_mem_desc { + #define VPU_IOC_REQ_VSHARE_MEM _IO(VPU_IOC_MAGIC, 9) + #define VPU_IOC_SYS_SW_RESET _IO(VPU_IOC_MAGIC, 11) + #define VPU_IOC_GET_SHARE_MEM _IO(VPU_IOC_MAGIC, 12) ++#define VPU_IOC_QUERY_BITWORK_MEM _IO(VPU_IOC_MAGIC, 13) ++#define VPU_IOC_SET_BITWORK_MEM _IO(VPU_IOC_MAGIC, 14) + + #define BIT_CODE_RUN 0x000 + #define BIT_CODE_DOWN 0x004 +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1137-ENGR00161215-2-vpu-Add-ioctls-for-querying-and-sett.patch b/core/kernel26-olinuxino/1137-ENGR00161215-2-vpu-Add-ioctls-for-querying-and-sett.patch new file mode 100644 index 000000000..b26260ac4 --- /dev/null +++ b/core/kernel26-olinuxino/1137-ENGR00161215-2-vpu-Add-ioctls-for-querying-and-sett.patch @@ -0,0 +1,49 @@ +From 9ca7a0b9b98e41c543bd328469e213b89251d470 Mon Sep 17 00:00:00 2001 +From: Sammy He +Date: Wed, 2 Nov 2011 20:08:42 +0800 +Subject: [PATCH] ENGR00161215-2 vpu: Add ioctls for querying and setting bitwork memory + +Add VPU_IOC_QUERY_BITWORK_MEM and VPU_IOC_SET_BITWORK_MEM ioctls +implementation for registerring bitwork memory allocated from user +space to vpu driver. + +Signed-off-by: Sammy He +(cherry picked from commit 98d71e85dbd05df9c866d153a4ead9526a26422e) +--- + drivers/mxc/vpu/mxc_vpu.c | 20 ++++++++++++++++++++ + 1 files changed, 20 insertions(+), 0 deletions(-) + +diff --git a/drivers/mxc/vpu/mxc_vpu.c b/drivers/mxc/vpu/mxc_vpu.c +index 41bd188..00f164a 100644 +--- a/drivers/mxc/vpu/mxc_vpu.c ++++ b/drivers/mxc/vpu/mxc_vpu.c +@@ -446,6 +446,26 @@ static int vpu_ioctl(struct inode *inode, struct file *filp, u_int cmd, + } + break; + } ++ /* ++ * The following two ioctl is used when user allocates working buffer ++ * and register it to vpu driver. ++ */ ++ case VPU_IOC_QUERY_BITWORK_MEM: ++ { ++ if (copy_to_user((void __user *)arg, ++ &bitwork_mem, ++ sizeof(struct vpu_mem_desc))) ++ ret = -EFAULT; ++ break; ++ } ++ case VPU_IOC_SET_BITWORK_MEM: ++ { ++ if (copy_from_user(&bitwork_mem, ++ (struct vpu_mem_desc *)arg, ++ sizeof(struct vpu_mem_desc))) ++ ret = -EFAULT; ++ break; ++ } + case VPU_IOC_SYS_SW_RESET: + { + if (vpu_plat->reset) +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1139-ENGR00162464-update-pm4-microcode-pm4_microcode_r18.patch b/core/kernel26-olinuxino/1139-ENGR00162464-update-pm4-microcode-pm4_microcode_r18.patch new file mode 100644 index 000000000..b880c2b5f --- /dev/null +++ b/core/kernel26-olinuxino/1139-ENGR00162464-update-pm4-microcode-pm4_microcode_r18.patch @@ -0,0 +1,820 @@ +From 10841bda9560f6a5b5581f9a2df3760cf6ee8c17 Mon Sep 17 00:00:00 2001 +From: Richard Zhao +Date: Fri, 18 Nov 2011 10:33:10 +0800 +Subject: [PATCH] ENGR00162464 update pm4 microcode: pm4_microcode_r18_20111020.a.inl.rel + +It fix gpu hang. + +Signed-off-by: Richard Zhao +(cherry picked from commit acc00a6f1847bf8cdde1802b4375dc89d5160dfe) +--- + drivers/mxc/amd-gpu/common/pm4_microcode.inl | 371 +++++++++++++------------- + 1 files changed, 186 insertions(+), 185 deletions(-) + +diff --git a/drivers/mxc/amd-gpu/common/pm4_microcode.inl b/drivers/mxc/amd-gpu/common/pm4_microcode.inl +index aa7c9fc..058548b 100644 +--- a/drivers/mxc/amd-gpu/common/pm4_microcode.inl ++++ b/drivers/mxc/amd-gpu/common/pm4_microcode.inl +@@ -1,4 +1,4 @@ +-/* Copyright (c) 2008-2010, QUALCOMM Incorporated. All rights reserved. ++/* Copyright (c) 2008-2011, QUALCOMM Incorporated. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: +@@ -26,12 +26,14 @@ + * + */ + ++// Microcode Source Version 20111020.a ++ + #ifndef PM4_MICROCODE_H + #define PM4_MICROCODE_H + +-#define PM4_MICROCODE_VERSION 322696 ++#define PM4_MICROCODE_VERSION 422468 + +-#define PM4_MICROCODE_SIZE 768 ++#define PM4_MICROCODE_SIZE 768 // Size of PM4 microcode in QWORD + + + #ifdef _PRIMLIB_INCLUDE +@@ -47,20 +49,20 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0xd9004800, 0x000 }, + { 0x00000000, 0x00400000, 0x000 }, + { 0x00000000, 0x34e00000, 0x000 }, +- { 0x00000000, 0x00600000, 0x28c }, ++ { 0x00000000, 0x00600000, 0x287 }, + { 0x0000ffff, 0xc0280a20, 0x000 }, + { 0x00000000, 0x00294582, 0x000 }, + { 0x00000000, 0xd9004800, 0x000 }, + { 0x00000000, 0x00400000, 0x000 }, +- { 0x00000000, 0x00600000, 0x28c }, ++ { 0x00000000, 0x00600000, 0x287 }, + { 0x0000ffff, 0xc0284620, 0x000 }, + { 0x00000000, 0xd9004800, 0x000 }, + { 0x00000000, 0x00400000, 0x000 }, +- { 0x00000000, 0x00600000, 0x2b0 }, ++ { 0x00000000, 0x00600000, 0x2ac }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x000021fc, 0x0029462c, 0x000 }, + { 0x00000000, 0x00404803, 0x021 }, +- { 0x00000000, 0x00600000, 0x2b0 }, ++ { 0x00000000, 0x00600000, 0x2ac }, + { 0x00000000, 0xc0200000, 0x000 }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x000021fc, 0x0029462c, 0x000 }, +@@ -78,7 +80,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x0000000e, 0x00404811, 0x000 }, + { 0x00000394, 0x00204411, 0x000 }, + { 0x00000001, 0xc0404811, 0x000 }, +- { 0x00000000, 0x00600000, 0x2b0 }, ++ { 0x00000000, 0x00600000, 0x2ac }, + { 0x000021f9, 0x0029462c, 0x000 }, + { 0x00000008, 0xc0210a20, 0x000 }, + { 0x00000000, 0x14e00000, 0x02d }, +@@ -88,53 +90,48 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x0000001b, 0x002f0222, 0x000 }, + { 0x00000000, 0x0ce00000, 0x043 }, + { 0x00000002, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x04a }, ++ { 0x00000000, 0x0ce00000, 0x045 }, + { 0x00000003, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x051 }, ++ { 0x00000000, 0x0ce00000, 0x047 }, + { 0x00000004, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x058 }, ++ { 0x00000000, 0x0ce00000, 0x049 }, + { 0x00000014, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x058 }, ++ { 0x00000000, 0x0ce00000, 0x049 }, + { 0x00000015, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x060 }, ++ { 0x00000000, 0x0ce00000, 0x05b }, + { 0x000021f9, 0x0029462c, 0x000 }, + { 0x00000000, 0xc0404802, 0x000 }, + { 0x0000001f, 0x40280a20, 0x000 }, + { 0x0000001b, 0x002f0222, 0x000 }, + { 0x00000000, 0x0ce00000, 0x043 }, + { 0x00000002, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x04a }, +- { 0x00000000, 0x00400000, 0x051 }, ++ { 0x00000000, 0x0ce00000, 0x045 }, ++ { 0x00000000, 0x00400000, 0x047 }, + { 0x0000001f, 0xc0210e20, 0x000 }, +- { 0x00000612, 0x00204411, 0x000 }, +- { 0x00000000, 0x00204803, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x000021f9, 0x0029462c, 0x000 }, +- { 0x00000000, 0x00404802, 0x000 }, ++ { 0x00000612, 0x00404411, 0x04c }, + { 0x0000001e, 0xc0210e20, 0x000 }, +- { 0x00000600, 0x00204411, 0x000 }, +- { 0x00000000, 0x00204803, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x000021f9, 0x0029462c, 0x000 }, +- { 0x00000000, 0x00404802, 0x000 }, ++ { 0x00000600, 0x00404411, 0x04c }, + { 0x0000001e, 0xc0210e20, 0x000 }, +- { 0x00000605, 0x00204411, 0x000 }, +- { 0x00000000, 0x00204803, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x000021f9, 0x0029462c, 0x000 }, +- { 0x00000000, 0x00404802, 0x000 }, ++ { 0x00000605, 0x00404411, 0x04c }, + { 0x0000001f, 0x40280a20, 0x000 }, + { 0x0000001f, 0xc0210e20, 0x000 }, + { 0x0000060a, 0x00204411, 0x000 }, + { 0x00000000, 0x00204803, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, +- { 0x00000000, 0xc0204800, 0x000 }, ++ { 0x00000000, 0xc0201000, 0x000 }, ++ { 0x00000000, 0x00204804, 0x000 }, ++ { 0x00000000, 0xc0200c00, 0x000 }, ++ { 0x00000000, 0x00204803, 0x000 }, ++ { 0x00000080, 0x00201c11, 0x000 }, + { 0x000021f9, 0x0029462c, 0x000 }, +- { 0x00000000, 0x00404802, 0x000 }, +- { 0x0000001f, 0xc0680a20, 0x2b0 }, ++ { 0x00000000, 0x00204802, 0x000 }, ++ { 0x00000000, 0x00600000, 0x130 }, ++ { 0x00000000, 0x002f0070, 0x000 }, ++ { 0x00000000, 0x0ce00000, 0x000 }, ++ { 0x00000001, 0x00331e27, 0x000 }, ++ { 0x00000000, 0x002f0227, 0x000 }, ++ { 0x00000000, 0x0ae00000, 0x054 }, ++ { 0x00000000, 0x00400000, 0x051 }, ++ { 0x0000001f, 0xc0680a20, 0x2ac }, + { 0x000021f9, 0x0029462c, 0x000 }, + { 0x00000000, 0x00404802, 0x000 }, + { 0x8100ffff, 0x00204411, 0x000 }, +@@ -142,24 +139,24 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00001fff, 0x40280a20, 0x000 }, + { 0x80000000, 0x40280e20, 0x000 }, + { 0x40000000, 0xc0281220, 0x000 }, +- { 0x00040000, 0x00694622, 0x2ba }, ++ { 0x00040000, 0x00694622, 0x2b4 }, + { 0x00000000, 0x00201410, 0x000 }, + { 0x00000000, 0x002f0223, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x06d }, +- { 0x00000000, 0xc0401800, 0x070 }, ++ { 0x00000000, 0x0ae00000, 0x068 }, ++ { 0x00000000, 0xc0401800, 0x06b }, + { 0x00001fff, 0xc0281a20, 0x000 }, +- { 0x00040000, 0x00694626, 0x2ba }, ++ { 0x00040000, 0x00694626, 0x2b4 }, + { 0x00000000, 0x00201810, 0x000 }, + { 0x00000000, 0x002f0224, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x073 }, +- { 0x00000000, 0xc0401c00, 0x076 }, ++ { 0x00000000, 0x0ae00000, 0x06e }, ++ { 0x00000000, 0xc0401c00, 0x071 }, + { 0x00001fff, 0xc0281e20, 0x000 }, +- { 0x00040000, 0x00694627, 0x2ba }, ++ { 0x00040000, 0x00694627, 0x2b4 }, + { 0x00000000, 0x00201c10, 0x000 }, + { 0x00000000, 0x00204402, 0x000 }, + { 0x00000000, 0x002820c5, 0x000 }, + { 0x00000000, 0x004948e8, 0x000 }, +- { 0x00000000, 0x00600000, 0x28c }, ++ { 0x00000000, 0x00600000, 0x287 }, + { 0x00000010, 0x40210a20, 0x000 }, + { 0x000000ff, 0x00280a22, 0x000 }, + { 0x000007ff, 0x40280e20, 0x000 }, +@@ -167,25 +164,25 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000005, 0xc0211220, 0x000 }, + { 0x00080000, 0x00281224, 0x000 }, + { 0x00000013, 0x00210224, 0x000 }, +- { 0x00000000, 0x14c00000, 0x084 }, ++ { 0x00000000, 0x14c00000, 0x07f }, + { 0xa100ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x088 }, ++ { 0x00000000, 0x0ae00000, 0x083 }, + { 0x00000000, 0x0020162d, 0x000 }, +- { 0x00004000, 0x00500e23, 0x097 }, ++ { 0x00004000, 0x00500e23, 0x092 }, + { 0x00000001, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x08c }, ++ { 0x00000000, 0x0ae00000, 0x087 }, + { 0x00000001, 0x0020162d, 0x000 }, +- { 0x00004800, 0x00500e23, 0x097 }, ++ { 0x00004800, 0x00500e23, 0x092 }, + { 0x00000002, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x090 }, ++ { 0x00000000, 0x0ae00000, 0x08b }, + { 0x00000003, 0x0020162d, 0x000 }, +- { 0x00004900, 0x00500e23, 0x097 }, ++ { 0x00004900, 0x00500e23, 0x092 }, + { 0x00000003, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x094 }, ++ { 0x00000000, 0x0ae00000, 0x08f }, + { 0x00000002, 0x0020162d, 0x000 }, +- { 0x00004908, 0x00500e23, 0x097 }, ++ { 0x00004908, 0x00500e23, 0x092 }, + { 0x00000012, 0x0020162d, 0x000 }, + { 0x00002000, 0x00300e23, 0x000 }, + { 0x00000000, 0x00290d83, 0x000 }, +@@ -200,7 +197,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x002948e5, 0x000 }, + { 0x9300ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x00404806, 0x000 }, +- { 0x00000000, 0x00600000, 0x28c }, ++ { 0x00000000, 0x00600000, 0x287 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x00000000, 0xc0201400, 0x000 }, + { 0x0000001f, 0x00211a25, 0x000 }, +@@ -209,31 +206,31 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000010, 0x00211225, 0x000 }, + { 0x8300ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x002f0224, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0ae }, ++ { 0x00000000, 0x0ae00000, 0x0a9 }, + { 0x00000000, 0x00203622, 0x000 }, +- { 0x00004000, 0x00504a23, 0x0bd }, ++ { 0x00004000, 0x00504a23, 0x0b8 }, + { 0x00000001, 0x002f0224, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0b2 }, ++ { 0x00000000, 0x0ae00000, 0x0ad }, + { 0x00000001, 0x00203622, 0x000 }, +- { 0x00004800, 0x00504a23, 0x0bd }, ++ { 0x00004800, 0x00504a23, 0x0b8 }, + { 0x00000002, 0x002f0224, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0b6 }, ++ { 0x00000000, 0x0ae00000, 0x0b1 }, + { 0x00000003, 0x00203622, 0x000 }, +- { 0x00004900, 0x00504a23, 0x0bd }, ++ { 0x00004900, 0x00504a23, 0x0b8 }, + { 0x00000003, 0x002f0224, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0ba }, ++ { 0x00000000, 0x0ae00000, 0x0b5 }, + { 0x00000002, 0x00203622, 0x000 }, +- { 0x00004908, 0x00504a23, 0x0bd }, ++ { 0x00004908, 0x00504a23, 0x0b8 }, + { 0x00000012, 0x00203622, 0x000 }, + { 0x00000000, 0x00290d83, 0x000 }, + { 0x00002000, 0x00304a23, 0x000 }, + { 0x8400ffff, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000000, 0x21000000, 0x000 }, +- { 0x00000000, 0x00400000, 0x0a4 }, ++ { 0x00000000, 0x00400000, 0x09f }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, +- { 0x00040578, 0x00604411, 0x2ba }, ++ { 0x00040578, 0x00604411, 0x2b4 }, + { 0x00000000, 0xc0400000, 0x000 }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x00000000, 0xc0201000, 0x000 }, +@@ -241,62 +238,62 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0xc0201800, 0x000 }, + { 0x00007f00, 0x00280a21, 0x000 }, + { 0x00004500, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x0cd }, ++ { 0x00000000, 0x0ce00000, 0x0c8 }, + { 0x00000000, 0xc0201c00, 0x000 }, + { 0x00000000, 0x17000000, 0x000 }, + { 0x00000010, 0x00280a23, 0x000 }, + { 0x00000010, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x0d5 }, ++ { 0x00000000, 0x0ce00000, 0x0d0 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, +- { 0x00040000, 0x00694624, 0x2ba }, +- { 0x00000000, 0x00400000, 0x0d6 }, +- { 0x00000000, 0x00600000, 0x135 }, ++ { 0x00040000, 0x00694624, 0x2b4 }, ++ { 0x00000000, 0x00400000, 0x0d1 }, ++ { 0x00000000, 0x00600000, 0x130 }, + { 0x00000000, 0x002820d0, 0x000 }, + { 0x00000007, 0x00280a23, 0x000 }, + { 0x00000001, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0dd }, ++ { 0x00000000, 0x0ae00000, 0x0d8 }, + { 0x00000000, 0x002f00a8, 0x000 }, +- { 0x00000000, 0x04e00000, 0x0f6 }, +- { 0x00000000, 0x00400000, 0x0fd }, ++ { 0x00000000, 0x04e00000, 0x0f1 }, ++ { 0x00000000, 0x00400000, 0x0f8 }, + { 0x00000002, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0e2 }, ++ { 0x00000000, 0x0ae00000, 0x0dd }, + { 0x00000000, 0x002f00a8, 0x000 }, +- { 0x00000000, 0x02e00000, 0x0f6 }, +- { 0x00000000, 0x00400000, 0x0fd }, ++ { 0x00000000, 0x02e00000, 0x0f1 }, ++ { 0x00000000, 0x00400000, 0x0f8 }, + { 0x00000003, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0e7 }, ++ { 0x00000000, 0x0ae00000, 0x0e2 }, + { 0x00000000, 0x002f00a8, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x0f6 }, +- { 0x00000000, 0x00400000, 0x0fd }, ++ { 0x00000000, 0x0ce00000, 0x0f1 }, ++ { 0x00000000, 0x00400000, 0x0f8 }, + { 0x00000004, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0ec }, ++ { 0x00000000, 0x0ae00000, 0x0e7 }, + { 0x00000000, 0x002f00a8, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0f6 }, +- { 0x00000000, 0x00400000, 0x0fd }, +- { 0x00000005, 0x002f0222, 0x000 }, + { 0x00000000, 0x0ae00000, 0x0f1 }, ++ { 0x00000000, 0x00400000, 0x0f8 }, ++ { 0x00000005, 0x002f0222, 0x000 }, ++ { 0x00000000, 0x0ae00000, 0x0ec }, + { 0x00000000, 0x002f00a8, 0x000 }, +- { 0x00000000, 0x06e00000, 0x0f6 }, +- { 0x00000000, 0x00400000, 0x0fd }, ++ { 0x00000000, 0x06e00000, 0x0f1 }, ++ { 0x00000000, 0x00400000, 0x0f8 }, + { 0x00000006, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x0f6 }, ++ { 0x00000000, 0x0ae00000, 0x0f1 }, + { 0x00000000, 0x002f00a8, 0x000 }, +- { 0x00000000, 0x08e00000, 0x0f6 }, +- { 0x00000000, 0x00400000, 0x0fd }, ++ { 0x00000000, 0x08e00000, 0x0f1 }, ++ { 0x00000000, 0x00400000, 0x0f8 }, + { 0x00007f00, 0x00280a21, 0x000 }, + { 0x00004500, 0x002f0222, 0x000 }, + { 0x00000000, 0x0ae00000, 0x000 }, + { 0x00000008, 0x00210a23, 0x000 }, +- { 0x00000000, 0x14e00000, 0x11b }, ++ { 0x00000000, 0x14e00000, 0x116 }, + { 0x00000000, 0xc0204400, 0x000 }, + { 0x00000000, 0xc0404800, 0x000 }, + { 0x00007f00, 0x00280a21, 0x000 }, + { 0x00004500, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x102 }, ++ { 0x00000000, 0x0ae00000, 0x0fd }, + { 0x00000000, 0xc0200000, 0x000 }, + { 0x00000000, 0xc0400000, 0x000 }, +- { 0x00000000, 0x00404c07, 0x0cd }, ++ { 0x00000000, 0x00404c07, 0x0c8 }, + { 0x00000000, 0xc0201000, 0x000 }, + { 0x00000000, 0xc0201400, 0x000 }, + { 0x00000000, 0xc0201800, 0x000 }, +@@ -304,11 +301,11 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x17000000, 0x000 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, +- { 0x00040000, 0x00694624, 0x2ba }, ++ { 0x00040000, 0x00694624, 0x2b4 }, + { 0x00000000, 0x002820d0, 0x000 }, + { 0x00000000, 0x002f00a8, 0x000 }, + { 0x00000000, 0x0ce00000, 0x000 }, +- { 0x00000000, 0x00404c07, 0x107 }, ++ { 0x00000000, 0x00404c07, 0x102 }, + { 0x00000000, 0xc0201000, 0x000 }, + { 0x00000000, 0xc0201400, 0x000 }, + { 0x00000000, 0xc0201800, 0x000 }, +@@ -316,11 +313,11 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x17000000, 0x000 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, +- { 0x00040000, 0x00694624, 0x2ba }, ++ { 0x00040000, 0x00694624, 0x2b4 }, + { 0x00000000, 0x002820d0, 0x000 }, + { 0x00000000, 0x002f00a8, 0x000 }, + { 0x00000000, 0x06e00000, 0x000 }, +- { 0x00000000, 0x00404c07, 0x113 }, ++ { 0x00000000, 0x00404c07, 0x10e }, + { 0x0000060d, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x0000860e, 0x00204411, 0x000 }, +@@ -335,13 +332,13 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000001, 0x00204811, 0x000 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x00007fff, 0x00281a22, 0x000 }, +- { 0x00040000, 0x00694626, 0x2ba }, ++ { 0x00040000, 0x00694626, 0x2b4 }, + { 0x00000000, 0x00200c10, 0x000 }, + { 0x00000000, 0xc0201000, 0x000 }, + { 0x80000000, 0x00281a22, 0x000 }, + { 0x00000000, 0x002f0226, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x132 }, +- { 0x00000000, 0x00600000, 0x135 }, ++ { 0x00000000, 0x0ce00000, 0x12d }, ++ { 0x00000000, 0x00600000, 0x130 }, + { 0x00000000, 0x00201c10, 0x000 }, + { 0x00000000, 0x00300c67, 0x000 }, + { 0x0000060d, 0x00204411, 0x000 }, +@@ -353,10 +350,10 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x00204811, 0x000 }, + { 0x000001ea, 0x00204411, 0x000 }, + { 0x00000000, 0x00204804, 0x000 }, +- { 0x00000000, 0x1ac00000, 0x13b }, ++ { 0x00000000, 0x1ac00000, 0x136 }, + { 0x9e00ffff, 0x00204411, 0x000 }, + { 0xdeadbeef, 0x00204811, 0x000 }, +- { 0x00000000, 0x1ae00000, 0x13e }, ++ { 0x00000000, 0x1ae00000, 0x139 }, + { 0xa400ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x0080480b, 0x000 }, + { 0x000001f3, 0x00204411, 0x000 }, +@@ -405,28 +402,28 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000001, 0x00303e2f, 0x000 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x172 }, ++ { 0x00000000, 0x0ce00000, 0x16d }, + { 0x00000000, 0xd9000000, 0x000 }, + { 0x00000000, 0x00400000, 0x000 }, +- { 0x00000000, 0x00600000, 0x28c }, ++ { 0x00000000, 0x00600000, 0x287 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000002, 0x00204811, 0x000 }, + { 0x00000000, 0x002f0230, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x175 }, ++ { 0x00000000, 0x0ae00000, 0x170 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x00000009, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x17d }, +- { 0x00000000, 0x00600000, 0x2b7 }, ++ { 0x00000000, 0x14c00000, 0x178 }, ++ { 0x00000000, 0x00600000, 0x2aa }, + { 0x00000000, 0x00200c11, 0x000 }, + { 0x00000016, 0x00203623, 0x000 }, + { 0x00000000, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x180 }, ++ { 0x00000000, 0x14c00000, 0x17b }, + { 0x00000000, 0xc0200000, 0x000 }, + { 0x00000001, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x183 }, ++ { 0x00000000, 0x14c00000, 0x17e }, + { 0x00000000, 0xc0200000, 0x000 }, + { 0x00000002, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x18d }, ++ { 0x00000000, 0x14c00000, 0x188 }, + { 0x00000004, 0xc0203620, 0x000 }, + { 0x00000005, 0xc0203620, 0x000 }, + { 0x00000006, 0xc0203620, 0x000 }, +@@ -436,7 +433,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x0000000a, 0xc0203620, 0x000 }, + { 0x0000000b, 0xc0203620, 0x000 }, + { 0x00000003, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x1b5 }, ++ { 0x00000000, 0x14c00000, 0x1b0 }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x8c00ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x00204803, 0x000 }, +@@ -476,24 +473,24 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000003, 0x00384a27, 0x000 }, + { 0x00300000, 0x00293a2e, 0x000 }, + { 0x00000004, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x1bd }, ++ { 0x00000000, 0x14c00000, 0x1b8 }, + { 0xa300ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x40204800, 0x000 }, + { 0x0000000a, 0xc0220e20, 0x000 }, + { 0x00000011, 0x00203623, 0x000 }, + { 0x000021f4, 0x00204411, 0x000 }, +- { 0x0000000a, 0x00614a2c, 0x2b7 }, ++ { 0x0000000a, 0x00614a2c, 0x2aa }, + { 0x00000005, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x1c0 }, ++ { 0x00000000, 0x14c00000, 0x1bb }, + { 0x00000000, 0xc0200000, 0x000 }, + { 0x00000006, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x1c6 }, ++ { 0x00000000, 0x14c00000, 0x1c1 }, + { 0x9c00ffff, 0x00204411, 0x000 }, + { 0x0000001f, 0x40214a20, 0x000 }, + { 0x9600ffff, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000007, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x1d0 }, ++ { 0x00000000, 0x14c00000, 0x1cb }, + { 0x3fffffff, 0x00283a2e, 0x000 }, + { 0xc0000000, 0x40280e20, 0x000 }, + { 0x00000000, 0x0029386e, 0x000 }, +@@ -503,7 +500,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0xc0202c00, 0x000 }, + { 0x00000000, 0x0020480b, 0x000 }, + { 0x00000008, 0x00210222, 0x000 }, +- { 0x00000000, 0x14c00000, 0x1dc }, ++ { 0x00000000, 0x14c00000, 0x1d7 }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x00000013, 0x00203623, 0x000 }, + { 0x00000015, 0x00203623, 0x000 }, +@@ -515,7 +512,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0xefffffff, 0x00283a2e, 0x000 }, + { 0x00000000, 0x0029386e, 0x000 }, + { 0x00000000, 0x00400000, 0x000 }, +- { 0x00000000, 0x00600000, 0x28c }, ++ { 0x00000000, 0x00600000, 0x287 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x0000001f, 0x00210e22, 0x000 }, + { 0x00000000, 0x14e00000, 0x000 }, +@@ -529,46 +526,46 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x8400ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x00204803, 0x000 }, + { 0x00000000, 0x21000000, 0x000 }, +- { 0x00000000, 0x00400000, 0x1de }, ++ { 0x00000000, 0x00400000, 0x1d9 }, + { 0x8200ffff, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x00003fff, 0x40280e20, 0x000 }, + { 0x00000010, 0xc0211220, 0x000 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x1fb }, +- { 0x00000000, 0x2ae00000, 0x205 }, ++ { 0x00000000, 0x0ae00000, 0x1f6 }, ++ { 0x00000000, 0x2ae00000, 0x200 }, + { 0x20000080, 0x00281e2e, 0x000 }, + { 0x00000080, 0x002f0227, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x1f8 }, +- { 0x00000000, 0x00401c0c, 0x1f9 }, ++ { 0x00000000, 0x0ce00000, 0x1f3 }, ++ { 0x00000000, 0x00401c0c, 0x1f4 }, + { 0x00000010, 0x00201e2d, 0x000 }, + { 0x000021f9, 0x00294627, 0x000 }, +- { 0x00000000, 0x00404811, 0x205 }, ++ { 0x00000000, 0x00404811, 0x200 }, + { 0x00000001, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x23a }, +- { 0x00000000, 0x28e00000, 0x205 }, ++ { 0x00000000, 0x0ae00000, 0x235 }, ++ { 0x00000000, 0x28e00000, 0x200 }, + { 0x00800080, 0x00281e2e, 0x000 }, + { 0x00000080, 0x002f0227, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x202 }, +- { 0x00000000, 0x00401c0c, 0x203 }, ++ { 0x00000000, 0x0ce00000, 0x1fd }, ++ { 0x00000000, 0x00401c0c, 0x1fe }, + { 0x00000010, 0x00201e2d, 0x000 }, + { 0x000021f9, 0x00294627, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x20c }, ++ { 0x00000000, 0x0ae00000, 0x207 }, + { 0x00000003, 0x00204811, 0x000 }, + { 0x0000000c, 0x0020162d, 0x000 }, + { 0x0000000d, 0x00201a2d, 0x000 }, +- { 0xffdfffff, 0x00483a2e, 0x210 }, ++ { 0xffdfffff, 0x00483a2e, 0x20b }, + { 0x00000004, 0x00204811, 0x000 }, + { 0x0000000e, 0x0020162d, 0x000 }, + { 0x0000000f, 0x00201a2d, 0x000 }, + { 0xffefffff, 0x00283a2e, 0x000 }, + { 0x00000000, 0x00201c10, 0x000 }, + { 0x00000000, 0x002f0067, 0x000 }, +- { 0x00000000, 0x04e00000, 0x205 }, ++ { 0x00000000, 0x04e00000, 0x200 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000006, 0x00204811, 0x000 }, + { 0x8300ffff, 0x00204411, 0x000 }, +@@ -578,10 +575,10 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x8400ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x00204803, 0x000 }, + { 0x00000000, 0x21000000, 0x000 }, +- { 0x00000000, 0x00601010, 0x28c }, ++ { 0x00000000, 0x00601010, 0x287 }, + { 0x0000000c, 0x00221e24, 0x000 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x22d }, ++ { 0x00000000, 0x0ae00000, 0x228 }, + { 0x20000000, 0x00293a2e, 0x000 }, + { 0x000021f7, 0x0029462c, 0x000 }, + { 0x00000000, 0x002948c7, 0x000 }, +@@ -594,7 +591,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x00204803, 0x000 }, + { 0x00000000, 0x23000000, 0x000 }, + { 0x8d00ffff, 0x00204411, 0x000 }, +- { 0x00000000, 0x00404803, 0x240 }, ++ { 0x00000000, 0x00404803, 0x23b }, + { 0x00800000, 0x00293a2e, 0x000 }, + { 0x000021f6, 0x0029462c, 0x000 }, + { 0x00000000, 0x002948c7, 0x000 }, +@@ -607,7 +604,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x00204803, 0x000 }, + { 0x00000000, 0x25000000, 0x000 }, + { 0x8e00ffff, 0x00204411, 0x000 }, +- { 0x00000000, 0x00404803, 0x240 }, ++ { 0x00000000, 0x00404803, 0x23b }, + { 0x8300ffff, 0x00204411, 0x000 }, + { 0x00000003, 0x00381224, 0x000 }, + { 0x00005000, 0x00304a24, 0x000 }, +@@ -621,37 +618,37 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x00000001, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x24a }, ++ { 0x00000000, 0x0ae00000, 0x245 }, + { 0x000021f6, 0x0029122c, 0x000 }, +- { 0x00040000, 0x00494624, 0x24c }, ++ { 0x00040000, 0x00494624, 0x247 }, + { 0x000021f7, 0x0029122c, 0x000 }, + { 0x00040000, 0x00294624, 0x000 }, +- { 0x00000000, 0x00600000, 0x2ba }, ++ { 0x00000000, 0x00600000, 0x2b4 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x252 }, ++ { 0x00000000, 0x0ce00000, 0x24d }, + { 0x00000001, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ce00000, 0x252 }, +- { 0x00000000, 0x00481630, 0x258 }, ++ { 0x00000000, 0x0ce00000, 0x24d }, ++ { 0x00000000, 0x00481630, 0x253 }, + { 0x00000fff, 0x00281630, 0x000 }, + { 0x0000000c, 0x00211a30, 0x000 }, + { 0x00000fff, 0x00281a26, 0x000 }, + { 0x00000000, 0x002f0226, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x258 }, ++ { 0x00000000, 0x0ae00000, 0x253 }, + { 0x00000000, 0xc0400000, 0x000 }, +- { 0x00040d02, 0x00604411, 0x2ba }, ++ { 0x00040d02, 0x00604411, 0x2b4 }, + { 0x00000000, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x25d }, ++ { 0x00000000, 0x0ae00000, 0x258 }, + { 0x00000010, 0x00211e30, 0x000 }, +- { 0x00000fff, 0x00482630, 0x267 }, ++ { 0x00000fff, 0x00482630, 0x262 }, + { 0x00000001, 0x002f0222, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x261 }, ++ { 0x00000000, 0x0ae00000, 0x25c }, + { 0x00000fff, 0x00281e30, 0x000 }, +- { 0x00000200, 0x00402411, 0x267 }, ++ { 0x00000200, 0x00402411, 0x262 }, + { 0x00000000, 0x00281e30, 0x000 }, + { 0x00000010, 0x00212630, 0x000 }, + { 0x00000010, 0x00211a30, 0x000 }, + { 0x00000000, 0x002f0226, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x258 }, ++ { 0x00000000, 0x0ae00000, 0x253 }, + { 0x00000000, 0xc0400000, 0x000 }, + { 0x00000003, 0x00381625, 0x000 }, + { 0x00000003, 0x00381a26, 0x000 }, +@@ -662,13 +659,13 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000000, 0x00204806, 0x000 }, + { 0x00005000, 0x00302225, 0x000 }, +- { 0x00040000, 0x00694628, 0x2ba }, ++ { 0x00040000, 0x00694628, 0x2b4 }, + { 0x00000001, 0x00302228, 0x000 }, + { 0x00000000, 0x00202810, 0x000 }, +- { 0x00040000, 0x00694628, 0x2ba }, ++ { 0x00040000, 0x00694628, 0x2b4 }, + { 0x00000001, 0x00302228, 0x000 }, + { 0x00000000, 0x00200810, 0x000 }, +- { 0x00040000, 0x00694628, 0x2ba }, ++ { 0x00040000, 0x00694628, 0x2b4 }, + { 0x00000001, 0x00302228, 0x000 }, + { 0x00000000, 0x00201410, 0x000 }, + { 0x0000060d, 0x00204411, 0x000 }, +@@ -678,39 +675,42 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x00204802, 0x000 }, + { 0x00000000, 0x00204805, 0x000 }, + { 0x00000000, 0x002f0128, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x282 }, ++ { 0x00000000, 0x0ae00000, 0x27d }, + { 0x00005000, 0x00302227, 0x000 }, + { 0x0000000c, 0x00300e23, 0x000 }, + { 0x00000003, 0x00331a26, 0x000 }, + { 0x00000000, 0x002f0226, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x270 }, ++ { 0x00000000, 0x0ae00000, 0x26b }, + { 0x00000000, 0x00400000, 0x000 }, + { 0x000001f3, 0x00204411, 0x000 }, + { 0x04000000, 0x00204811, 0x000 }, +- { 0x00000000, 0x00400000, 0x289 }, +- { 0x00000000, 0xc0600000, 0x28c }, ++ { 0x00000000, 0x00400000, 0x284 }, ++ { 0x00000000, 0xc0600000, 0x287 }, + { 0x00000000, 0x00400000, 0x000 }, +- { 0x00000000, 0x0ec00000, 0x28e }, ++ { 0x00000000, 0x0ec00000, 0x289 }, + { 0x00000000, 0x00800000, 0x000 }, + { 0x000021f9, 0x0029462c, 0x000 }, + { 0x00000005, 0x00204811, 0x000 }, ++ { 0x8100ffff, 0x00204411, 0x000 }, ++ { 0x00000002, 0x00204811, 0x000 }, ++ { 0x0000000a, 0x0021262c, 0x000 }, ++ { 0x00000000, 0x00210130, 0x000 }, ++ { 0x00000000, 0x14c00000, 0x292 }, ++ { 0xa500ffff, 0x00204411, 0x000 }, ++ { 0x00000001, 0x00404811, 0x28e }, + { 0x00000000, 0x0020280c, 0x000 }, + { 0x00000011, 0x0020262d, 0x000 }, + { 0x00000000, 0x002f012c, 0x000 }, +- { 0x00000000, 0x0ae00000, 0x295 }, +- { 0x00000000, 0x00403011, 0x296 }, ++ { 0x00000000, 0x0ae00000, 0x297 }, ++ { 0x00000000, 0x00403011, 0x298 }, + { 0x00000400, 0x0030322c, 0x000 }, + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000002, 0x00204811, 0x000 }, + { 0x0000000a, 0x0021262c, 0x000 }, + { 0x00000000, 0x00210130, 0x000 }, +- { 0x00000000, 0x14c00000, 0x29d }, ++ { 0x00000000, 0x14c00000, 0x29f }, + { 0xa500ffff, 0x00204411, 0x000 }, +- { 0x00000001, 0x00404811, 0x299 }, +- { 0x8100ffff, 0x00204411, 0x000 }, +- { 0x00000001, 0x00204811, 0x000 }, +- { 0x00042294, 0x00604411, 0x2ba }, +- { 0x00000000, 0x00200010, 0x000 }, ++ { 0x00000001, 0x00404811, 0x29b }, + { 0xa500ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x000021f4, 0x0029462c, 0x000 }, +@@ -721,11 +721,9 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000002, 0x00204811, 0x000 }, + { 0x00000000, 0x00210130, 0x000 }, + { 0xdf7fffff, 0x00283a2e, 0x000 }, +- { 0x8100ffff, 0x00204411, 0x000 }, +- { 0x00000001, 0x00204811, 0x000 }, +- { 0x00042294, 0x00604411, 0x2ba }, +- { 0x00000000, 0x00200010, 0x000 }, + { 0x00000010, 0x0080362a, 0x000 }, ++ { 0x00000000, 0x00203011, 0x000 }, ++ { 0x00000010, 0x0080362c, 0x000 }, + { 0x9700ffff, 0x00204411, 0x000 }, + { 0x00000000, 0x0020480c, 0x000 }, + { 0xa200ffff, 0x00204411, 0x000 }, +@@ -733,13 +731,11 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x8100ffff, 0x00204411, 0x000 }, + { 0x00000002, 0x00204811, 0x000 }, + { 0x00000000, 0x00810130, 0x000 }, +- { 0x00000000, 0x00203011, 0x000 }, +- { 0x00000010, 0x0080362c, 0x000 }, + { 0x00000000, 0xc0400000, 0x000 }, +- { 0x00000000, 0x1ac00000, 0x2ba }, ++ { 0x00000000, 0x1ac00000, 0x2b4 }, + { 0x9f00ffff, 0x00204411, 0x000 }, + { 0xdeadbeef, 0x00204811, 0x000 }, +- { 0x00000000, 0x1ae00000, 0x2bd }, ++ { 0x00000000, 0x1ae00000, 0x2b7 }, + { 0x00000000, 0x00800000, 0x000 }, + { 0x00000000, 0x00000000, 0x000 }, + { 0x00000000, 0x00000000, 0x000 }, +@@ -778,26 +774,32 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00000000, 0x00000000, 0x000 }, + { 0x00000000, 0x00000000, 0x000 }, + { 0x00000000, 0x00000000, 0x000 }, +- { 0x00020143, 0x00020002, 0x000 }, ++ { 0x00000000, 0x00000000, 0x000 }, ++ { 0x00000000, 0x00000000, 0x000 }, ++ { 0x00000000, 0x00000000, 0x000 }, ++ { 0x00000000, 0x00000000, 0x000 }, ++ { 0x00000000, 0x00000000, 0x000 }, ++ { 0x00000000, 0x00000000, 0x000 }, ++ { 0x0002013e, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, +- { 0x00020002, 0x01dd0002, 0x000 }, +- { 0x006301ee, 0x00280012, 0x000 }, ++ { 0x00020002, 0x01d80002, 0x000 }, ++ { 0x005e01e9, 0x00280012, 0x000 }, + { 0x00020002, 0x00020026, 0x000 }, +- { 0x00020002, 0x01ec0002, 0x000 }, +- { 0x00790242, 0x00020002, 0x000 }, ++ { 0x00020002, 0x01e70002, 0x000 }, ++ { 0x0074023d, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, + { 0x00200012, 0x00020016, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, +- { 0x011b00c5, 0x00020125, 0x000 }, +- { 0x00020141, 0x00020002, 0x000 }, +- { 0x00c50002, 0x0143002e, 0x000 }, +- { 0x00a2016b, 0x00020145, 0x000 }, +- { 0x00020002, 0x01200002, 0x000 }, +- { 0x00020002, 0x010f0103, 0x000 }, ++ { 0x011600c0, 0x00020120, 0x000 }, ++ { 0x0002013c, 0x00020002, 0x000 }, ++ { 0x00c00002, 0x013e002e, 0x000 }, ++ { 0x009d0166, 0x00020140, 0x000 }, ++ { 0x00020002, 0x011b0002, 0x000 }, ++ { 0x00020002, 0x010a00fe, 0x000 }, + { 0x00090002, 0x000e000e, 0x000 }, +- { 0x0058003d, 0x00600002, 0x000 }, +- { 0x000200c1, 0x0002028a, 0x000 }, ++ { 0x0049003d, 0x005b0002, 0x000 }, ++ { 0x000200bc, 0x00020285, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, +@@ -805,7 +807,7 @@ uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={ + { 0x00020002, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, + { 0x00020002, 0x00020002, 0x000 }, +- { 0x000502b9, 0x00020008, 0x000 }, ++ { 0x000502b3, 0x00020008, 0x000 }, + }; + + #endif +@@ -813,4 +815,3 @@ static const uint32 ME_JUMP_TABLE_START = 740; + static const uint32 ME_JUMP_TABLE_END = 768; + + #endif +- +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1140-ENGR00162711-DA9053-Add-dummy-write-for-DA9053-I2C.patch b/core/kernel26-olinuxino/1140-ENGR00162711-DA9053-Add-dummy-write-for-DA9053-I2C.patch new file mode 100644 index 000000000..908a36087 --- /dev/null +++ b/core/kernel26-olinuxino/1140-ENGR00162711-DA9053-Add-dummy-write-for-DA9053-I2C.patch @@ -0,0 +1,434 @@ +From 7c0c7fc3189f456f1899bf4aa0a27e3f71f6a808 Mon Sep 17 00:00:00 2001 +From: Wayne Zou +Date: Mon, 21 Nov 2011 14:44:33 +0800 +Subject: [PATCH] ENGR00162711 DA9053: Add dummy write for DA9053 I2C register access + +DA9053 i2c issue: Rarely the i2c interface of DA9053 hang and it can +not be recovered if not power off totally. The Dialog suggests adding +dummy write for DA9053 I2C register access, in order to decrease the failure +of DA9053 register access and possibility of i2c failure. + +Signed-off-by: Wayne Zou +(cherry picked from commit bfd7cba1eeb46977b18a3c5fa65d812817a8294d) +--- + drivers/mfd/da9052-i2c.c | 317 ++++++++++++++++++++++++---------------------- + 1 files changed, 166 insertions(+), 151 deletions(-) + +diff --git a/drivers/mfd/da9052-i2c.c b/drivers/mfd/da9052-i2c.c +index 6209e97..457523f 100644 +--- a/drivers/mfd/da9052-i2c.c ++++ b/drivers/mfd/da9052-i2c.c +@@ -19,6 +19,8 @@ static struct da9052 *da9052_i2c; + + #define I2C_CONNECTED 0 + ++#define DA9052_I2C_BUG_WORKAROUND ++ + static int da9052_i2c_is_connected(void) + { + struct da9052_ssc_msg msg; +@@ -76,6 +78,15 @@ static int __devinit da9052_i2c_probe(struct i2c_client *client, + + /* Validate I2C connectivity */ + if ( I2C_CONNECTED == da9052_i2c_is_connected()) { ++ /* Enable Repeated Write Mode permanently */ ++ struct da9052_ssc_msg ctrl_msg = { ++ DA9052_CONTROLB_REG, DA9052_CONTROLB_WRITEMODE}; ++ if (da9052_i2c_write(da9052_i2c, &ctrl_msg) < 0) { ++ dev_info(&da9052_i2c->i2c_client->dev, ++ "%s: repeated mode not set!!\n", __func__); ++ return -ENODEV; ++ } ++ + /* I2C is connected */ + da9052_i2c->connecting_device = I2C; + if( 0!= da9052_ssc_init(da9052_i2c) ) +@@ -100,27 +111,59 @@ static int da9052_i2c_remove(struct i2c_client *client) + return 0; + } + ++#ifdef DA9052_I2C_BUG_WORKAROUND ++const unsigned char i2c_flush_data[] = {0xFF, 0xFF}; ++static const char safe_table[256] = { ++ [DA9052_STATUSA_REG] = 1, ++ [DA9052_STATUSB_REG] = 1, ++ [DA9052_STATUSC_REG] = 1, ++ [DA9052_STATUSD_REG] = 1, ++ [DA9052_ADCRESL_REG] = 1, ++ [DA9052_ADCRESH_REG] = 1, ++ [DA9052_VDDRES_REG] = 1, ++ [DA9052_ICHGAV_REG] = 1, ++ [DA9052_TBATRES_REG] = 1, ++ [DA9052_ADCIN4RES_REG] = 1, ++ [DA9052_ADCIN5RES_REG] = 1, ++ [DA9052_ADCIN6RES_REG] = 1, ++ [DA9052_TJUNCRES_REG] = 1, ++ [DA9052_TSIXMSB_REG] = 1, ++ [DA9052_TSIYMSB_REG] = 1, ++ [DA9052_TSILSB_REG] = 1, ++ [DA9052_TSIZMSB_REG] = 1, ++}; ++/* Enable safe register addresses */ ++static inline int da9052_is_i2c_reg_safe(unsigned char reg) ++{ ++ return safe_table[reg]; ++} ++#endif ++ + int da9052_i2c_write(struct da9052 *da9052, struct da9052_ssc_msg *msg) + { + struct i2c_msg i2cmsg; +- unsigned char buf[2] = {0}; ++ unsigned char buf[4] = {0}; + int ret = 0; + +- /* Copy the ssc msg to local character buffer */ +- buf[0] = msg->addr; +- buf[1] = msg->data; +- + /*Construct a i2c msg for a da9052 driver ssc message request */ + i2cmsg.addr = da9052->slave_addr; +- i2cmsg.len = 2; + i2cmsg.buf = buf; +- +- /* To write the data on I2C set flag to zero */ + i2cmsg.flags = 0; ++ i2cmsg.len = 2; ++ ++ /* Copy the ssc msg and additional data to flush chip I2C registers */ ++ buf[0] = msg->addr; ++ buf[1] = msg->data; + ++#ifdef DA9052_I2C_BUG_WORKAROUND ++ if (!da9052_is_i2c_reg_safe(msg->addr)) { ++ i2cmsg.len = 4; ++ buf[2] = i2c_flush_data[0]; ++ buf[3] = i2c_flush_data[1]; ++ } ++#endif + /* Start the i2c transfer by calling host i2c driver function */ + ret = i2c_transfer(da9052->adapter, &i2cmsg, 1); +- + if (ret < 0) { + dev_info(&da9052->i2c_client->dev,\ + "_%s:master_xfer Failed!!\n", __func__); +@@ -132,10 +175,8 @@ int da9052_i2c_write(struct da9052 *da9052, struct da9052_ssc_msg *msg) + + int da9052_i2c_read(struct da9052 *da9052, struct da9052_ssc_msg *msg) + { +- +- /*Get the da9052_i2c client details*/ + unsigned char buf[2] = {0, 0}; +- struct i2c_msg i2cmsg[2]; ++ struct i2c_msg i2cmsg[3]; + int ret = 0; + + /* Copy SSC Msg to local character buffer */ +@@ -145,107 +186,82 @@ int da9052_i2c_read(struct da9052 *da9052, struct da9052_ssc_msg *msg) + i2cmsg[0].addr = da9052->slave_addr ; + i2cmsg[0].len = 1; + i2cmsg[0].buf = &buf[0]; +- +- /*To write the data on I2C set flag to zero */ + i2cmsg[0].flags = 0; + +- /* Read the data from da9052*/ + /*Construct a i2c msg for a da9052 driver ssc message request */ + i2cmsg[1].addr = da9052->slave_addr ; + i2cmsg[1].len = 1; + i2cmsg[1].buf = &buf[1]; +- +- /*To read the data on I2C set flag to I2C_M_RD */ + i2cmsg[1].flags = I2C_M_RD; + +- /* Start the i2c transfer by calling host i2c driver function */ ++ /* Standard read transfer */ + ret = i2c_transfer(da9052->adapter, i2cmsg, 2); ++ ++#ifdef DA9052_I2C_BUG_WORKAROUND ++ if (!da9052_is_i2c_reg_safe(msg->addr)) { ++ /* Prepare additional message to flush chip I2C registers */ ++ i2cmsg[2].addr = da9052->slave_addr; ++ i2cmsg[2].len = 2; ++ i2cmsg[2].flags = 0; /* Write operation */ ++ i2cmsg[2].buf = (unsigned char *)i2c_flush_data; ++ ++ /* Read transfer with additional flush write */ ++ ret = i2c_transfer(da9052->adapter, &i2cmsg[2], 1); ++ } ++#endif ++ + if (ret < 0) { +- dev_info(&da9052->i2c_client->dev,\ +- "2 - %s:master_xfer Failed!!\n", __func__); ++ dev_info(&da9052->i2c_client->dev, ++ "2 - %s:master_xfer Failed!!\n", __func__); + return ret; + } + +- msg->data = *i2cmsg[1].buf; +- ++ msg->data = buf[1]; + return 0; + } + + int da9052_i2c_write_many(struct da9052 *da9052, + struct da9052_ssc_msg *sscmsg, int msg_no) + { +- + struct i2c_msg i2cmsg; +- unsigned char data_buf[MAX_READ_WRITE_CNT+1]; +- struct da9052_ssc_msg ctrlb_msg; +- struct da9052_ssc_msg *msg_queue = sscmsg; + int ret = 0; +- /* Flag to check if requested registers are contiguous */ +- unsigned char cont_data = 1; +- unsigned char cnt = 0; +- +- /* Check if requested registers are contiguous */ +- for (cnt = 1; cnt < msg_no; cnt++) { +- if ((msg_queue[cnt].addr - msg_queue[cnt-1].addr) != 1) { +- /* Difference is not 1, i.e. non-contiguous registers */ +- cont_data = 0; +- break; +- } +- } +- +- if (cont_data == 0) { +- /* Requested registers are non-contiguous */ +- for (cnt = 0; cnt < msg_no; cnt++) { +- ret = da9052->write(da9052, &msg_queue[cnt]); +- if (ret != 0) +- return ret; +- } +- return 0; +- } +- /* +- * Requested registers are contiguous +- * or PAGE WRITE sequence of I2C transactions is as below +- * (slave_addr + reg_addr + data_1 + data_2 + ...) +- * First read current WRITE MODE via CONTROL_B register of DA9052 +- */ +- ctrlb_msg.addr = DA9052_CONTROLB_REG; +- ctrlb_msg.data = 0x0; +- ret = da9052->read(da9052, &ctrlb_msg); +- +- if (ret != 0) +- return ret; +- +- /* Check if PAGE WRITE mode is set */ +- if (ctrlb_msg.data & DA9052_CONTROLB_WRITEMODE) { +- /* REPEAT WRITE mode is configured */ +- /* Now set DA9052 into PAGE WRITE mode */ +- ctrlb_msg.data &= ~DA9052_CONTROLB_WRITEMODE; +- ret = da9052->write(da9052, &ctrlb_msg); +- +- if (ret != 0) +- return ret; +- } +- +- /* Put first register address */ +- data_buf[0] = msg_queue[0].addr; +- +- for (cnt = 0; cnt < msg_no; cnt++) +- data_buf[cnt+1] = msg_queue[cnt].data; +- +- /* Construct a i2c msg for PAGE WRITE */ ++ int safe = 1; ++ unsigned char *data_ptr; ++#ifdef DA9052_I2C_BUG_WORKAROUND ++ unsigned char data_buf[2 * MAX_READ_WRITE_CNT + 2]; ++#else ++ unsigned char data_buf[2 * MAX_READ_WRITE_CNT]; ++#endif ++ ++ BUG_ON(msg_no < 0); ++ BUG_ON(msg_no >= MAX_READ_WRITE_CNT); ++ ++ /* Construct a i2c msg for REPEATED WRITE */ + i2cmsg.addr = da9052->slave_addr ; +- /* First register address + all data*/ +- i2cmsg.len = (msg_no + 1); ++ i2cmsg.len = 2*msg_no; + i2cmsg.buf = data_buf; +- +- /*To write the data on I2C set flag to zero */ + i2cmsg.flags = 0; + ++ for (data_ptr = data_buf; msg_no; msg_no--) { ++ safe &= da9052_is_i2c_reg_safe(sscmsg->addr); ++ *(data_ptr++) = sscmsg->addr; ++ *(data_ptr++) = sscmsg->data; ++ sscmsg++; ++ } ++#ifdef DA9052_I2C_BUG_WORKAROUND ++ if (!safe) { ++ i2cmsg.len += 2; ++ *(data_ptr++) = i2c_flush_data[0]; ++ *data_ptr = i2c_flush_data[1]; ++ } ++#endif ++ + /* Start the i2c transfer by calling host i2c driver function */ + ret = i2c_transfer(da9052->adapter, &i2cmsg, 1); + if (ret < 0) { +- dev_info(&da9052->i2c_client->dev,\ +- "1 - i2c_transfer function falied in [%s]!!!\n", __func__); ++ dev_info(&da9052->i2c_client->dev, ++ "1 - i2c_transfer function falied in [%s]!!!\n", ++ __func__); + return ret; + } + +@@ -255,83 +271,82 @@ int da9052_i2c_write_many(struct da9052 *da9052, + int da9052_i2c_read_many(struct da9052 *da9052, + struct da9052_ssc_msg *sscmsg, int msg_no) + { +- +- struct i2c_msg i2cmsg; ++#ifdef DA9052_I2C_BUG_WORKAROUND ++ struct i2c_msg i2cmsg[2 * MAX_READ_WRITE_CNT]; ++#else ++ struct i2c_msg i2cmsg[2 * MAX_READ_WRITE_CNT + 1]; ++#endif + unsigned char data_buf[MAX_READ_WRITE_CNT]; +- struct da9052_ssc_msg *msg_queue = sscmsg; ++ struct i2c_msg *msg_ptr = i2cmsg; + int ret = 0; +- /* Flag to check if requested registers are contiguous */ +- unsigned char cont_data = 1; +- unsigned char cnt = 0; +- +- /* Check if requested registers are contiguous */ +- for (cnt = 1; cnt < msg_no; cnt++) { +- if ((msg_queue[cnt].addr - msg_queue[cnt-1].addr) != 1) { +- /* Difference is not 1, i.e. non-contiguous registers */ +- cont_data = 0; +- break; ++ int safe = 1; ++ int last_reg_read = -2; ++ int cnt; ++ ++ BUG_ON(msg_no < 0); ++ BUG_ON(msg_no >= MAX_READ_WRITE_CNT); ++ ++ /* Construct a i2c msgs for a da9052 driver ssc message request */ ++ for (cnt = 0; cnt < msg_no; cnt++) { ++ if ((int)sscmsg[cnt].addr != last_reg_read + 1) { ++ safe &= da9052_is_i2c_reg_safe(sscmsg[cnt].addr); ++ ++ /* Build messages for first register, read in a row */ ++ msg_ptr->addr = da9052->slave_addr; ++ msg_ptr->len = 1; ++ msg_ptr->buf = &sscmsg[cnt].addr; ++ msg_ptr->flags = 0; ++ msg_ptr++; ++ ++ msg_ptr->addr = da9052->slave_addr; ++ msg_ptr->len = 1; ++ msg_ptr->buf = &data_buf[cnt]; ++ msg_ptr->flags = I2C_M_RD; ++ msg_ptr++; ++ ++ last_reg_read = sscmsg[cnt].addr; ++ } else { ++ /* Increase read counter for consecutive reads */ ++ (msg_ptr - 1)->len++; + } + } + +- if (cont_data == 0) { +- /* Requested registers are non-contiguous */ +- for (cnt = 0; cnt < msg_no; cnt++) { +- ret = da9052->read(da9052, &msg_queue[cnt]); +- if (ret != 0) { +- dev_info(&da9052->i2c_client->dev,\ +- "Error in %s", __func__); +- return ret; +- } +- } +- return 0; ++#ifdef DA9052_I2C_BUG_WORKAROUND ++ if (!safe) { ++ /* Prepare additional message to flush chip I2C registers */ ++ msg_ptr->addr = da9052->slave_addr; ++ msg_ptr->len = 2; ++ msg_ptr->flags = 0; /* Write operation */ ++ msg_ptr->buf = (unsigned char *)i2c_flush_data; ++ msg_ptr++; + } +- +- /* +- * We want to perform PAGE READ via I2C +- * For PAGE READ sequence of I2C transactions is as below +- * (slave_addr + reg_addr) + (slave_addr + data_1 + data_2 + ...) +- */ +- /* Copy address of first register */ +- data_buf[0] = msg_queue[0].addr; +- +- /* Construct a i2c msg for first transaction of PAGE READ i.e. write */ +- i2cmsg.addr = da9052->slave_addr ; +- i2cmsg.len = 1; +- i2cmsg.buf = data_buf; +- +- /*To write the data on I2C set flag to zero */ +- i2cmsg.flags = 0; +- +- /* Start the i2c transfer by calling host i2c driver function */ +- ret = i2c_transfer(da9052->adapter, &i2cmsg, 1); +- if (ret < 0) { +- dev_info(&da9052->i2c_client->dev,\ +- "1 - i2c_transfer function falied in [%s]!!!\n", __func__); +- return ret; ++#endif ++ ++ /* Using one transfer seems not to work well with D9052. ++ * Read transfer with additional flush write ++ * Performing many transfers is stable on D9052 ++ */ ++ for (cnt = 0; cnt < (msg_ptr - i2cmsg) - 1; cnt += 2) { ++ ret = i2c_transfer(da9052->adapter, &i2cmsg[cnt], 2); ++ if (ret < 0) { ++ dev_info(&da9052->i2c_client->dev, ++ "2 - %s:master_xfer Failed on msg[%d]!!\n", ++ __func__, cnt); ++ return ret; ++ } + } +- +- /* Now Read the data from da9052 */ +- /* Construct a i2c msg for second transaction of PAGE READ i.e. read */ +- i2cmsg.addr = da9052->slave_addr ; +- i2cmsg.len = msg_no; +- i2cmsg.buf = data_buf; +- +- /*To read the data on I2C set flag to I2C_M_RD */ +- i2cmsg.flags = I2C_M_RD; +- +- /* Start the i2c transfer by calling host i2c driver function */ +- ret = i2c_transfer(da9052->adapter, +- &i2cmsg, 1); +- if (ret < 0) { +- dev_info(&da9052->i2c_client->dev,\ +- "2 - i2c_transfer function falied in [%s]!!!\n", __func__); +- return ret; ++ if (cnt < (msg_ptr - i2cmsg)) { ++ ret = i2c_transfer(da9052->adapter, &i2cmsg[cnt], 1); ++ if (ret < 0) { ++ dev_info(&da9052->i2c_client->dev, ++ "2 - %s:master_xfer Failed on msg[%d]!!\n", ++ __func__, cnt); ++ return ret; ++ } + } + +- /* Gather READ data */ + for (cnt = 0; cnt < msg_no; cnt++) + sscmsg[cnt].data = data_buf[cnt]; +- + return 0; + } + +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1141-ENGR00162708-MX5-Add-I2C-dummy-write-and-mask-nONKE.patch b/core/kernel26-olinuxino/1141-ENGR00162708-MX5-Add-I2C-dummy-write-and-mask-nONKE.patch new file mode 100644 index 000000000..9244dbffe --- /dev/null +++ b/core/kernel26-olinuxino/1141-ENGR00162708-MX5-Add-I2C-dummy-write-and-mask-nONKE.patch @@ -0,0 +1,86 @@ +From 3bc50cddbc5bc8c20c3bac50794a7ec80602ab16 Mon Sep 17 00:00:00 2001 +From: Wayne Zou +Date: Mon, 21 Nov 2011 15:06:54 +0800 +Subject: [PATCH] ENGR00162708 MX5: Add I2C dummy write and mask nONKEY event for i2c operation + +MX5: Add I2C dummy write when acessing DA9053 registers and mask nONKEY event +for i2c operation before suspend + +Signed-off-by: Wayne Zou +(cherry picked from commit 0cc56da7dc91bbd5b6e9a51c1576daedce36093c) +--- + arch/arm/mach-mx5/pm_da9053.c | 22 +++++++++++++++++++--- + 1 files changed, 19 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/mach-mx5/pm_da9053.c b/arch/arm/mach-mx5/pm_da9053.c +index 63eda3a..7bb8915 100644 +--- a/arch/arm/mach-mx5/pm_da9053.c ++++ b/arch/arm/mach-mx5/pm_da9053.c +@@ -60,6 +60,7 @@ as the normal setting on Da9053 */ + #define DA9052_GPIO0809_SMD_SET 0x18 + #define DA9052_ID1415_SMD_SET 0x1 + #define DA9052_GPI9_IRQ_MASK 0x2 ++#define DA9052_IRQ_MASKB_ONKEY 0x1 + + static u8 volt_settings[DA9052_LDO10_REG - DA9052_BUCKCORE_REG + 1]; + extern int pm_i2c_imx_xfer(struct i2c_msg *msgs, int num); +@@ -67,7 +68,8 @@ extern int pm_i2c_imx_xfer(struct i2c_msg *msgs, int num); + static void pm_da9053_read_reg(u8 reg, u8 *value) + { + unsigned char buf[2] = {0, 0}; +- struct i2c_msg i2cmsg[2]; ++ unsigned char dummy[2] = {0xff, 0xff}; ++ struct i2c_msg i2cmsg[3]; + buf[0] = reg; + i2cmsg[0].addr = 0x48 ; + i2cmsg[0].len = 1; +@@ -83,16 +85,22 @@ static void pm_da9053_read_reg(u8 reg, u8 *value) + + pm_i2c_imx_xfer(i2cmsg, 2); + *value = buf[1]; ++ ++ i2cmsg[2].addr = 0x48 ; ++ i2cmsg[2].len = 2; ++ i2cmsg[2].buf = &dummy[0]; ++ i2cmsg[2].flags = 0; ++ pm_i2c_imx_xfer(i2cmsg, 1); + } + + static void pm_da9053_write_reg(u8 reg, u8 value) + { +- unsigned char buf[2] = {0, 0}; ++ unsigned char buf[4] = {0, 0, 0xff, 0xff}; + struct i2c_msg i2cmsg[2]; + buf[0] = reg; + buf[1] = value; + i2cmsg[0].addr = 0x48 ; +- i2cmsg[0].len = 2; ++ i2cmsg[0].len = 4; + i2cmsg[0].buf = &buf[0]; + i2cmsg[0].flags = 0; + pm_i2c_imx_xfer(i2cmsg, 1); +@@ -172,6 +180,10 @@ int da9053_suspend_cmd_hw(void) + } + clk_enable(i2c_clk); + ++ pm_da9053_read_reg(DA9052_IRQMASKB_REG, &data); ++ data |= DA9052_IRQ_MASKB_ONKEY; ++ pm_da9053_write_reg(DA9052_IRQMASKB_REG, data); ++ + pm_da9053_preset_voltage(); + pm_da9053_write_reg(DA9052_CONTROLC_REG, + DA9052_CONTROLC_SMD_SET); +@@ -194,6 +206,10 @@ int da9053_suspend_cmd_hw(void) + pm_da9053_write_reg(DA9052_SEQTIMER_REG, 0); + /* pm_da9053_write_reg(DA9052_SEQB_REG, 0x1f); */ + ++ pm_da9053_read_reg(DA9052_IRQMASKB_REG, &data); ++ data &= ~DA9052_IRQ_MASKB_ONKEY; ++ pm_da9053_write_reg(DA9052_IRQMASKB_REG, data); ++ + clk_disable(i2c_clk); + clk_put(i2c_clk); + return 0; +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1142-ENGR00163698-MX53-ARD-fix-typo-error-for-pwm1-pad-d.patch b/core/kernel26-olinuxino/1142-ENGR00163698-MX53-ARD-fix-typo-error-for-pwm1-pad-d.patch new file mode 100644 index 000000000..5b17895f2 --- /dev/null +++ b/core/kernel26-olinuxino/1142-ENGR00163698-MX53-ARD-fix-typo-error-for-pwm1-pad-d.patch @@ -0,0 +1,33 @@ +From bad1d7edba0addd5cb925d237242edbfbbf2f108 Mon Sep 17 00:00:00 2001 +From: Yuxi Sun +Date: Fri, 2 Dec 2011 11:12:28 +0800 +Subject: [PATCH] ENGR00163698 MX53 ARD: fix typo error for pwm1 pad disable function + +Fix typo error for pwm1 pad disable function. + +Signed-off-by: Yuxi Sun +(cherry picked from commit d04b2646528b586baeecc1f128508b5363e7ed63) +--- + arch/arm/mach-mx5/mx53_ard.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/mach-mx5/mx53_ard.c b/arch/arm/mach-mx5/mx53_ard.c +index 6550ca9..378e1c1 100644 +--- a/arch/arm/mach-mx5/mx53_ard.c ++++ b/arch/arm/mach-mx5/mx53_ard.c +@@ -393,9 +393,9 @@ static void disable_pwm1_pad(void) + { + mxc_iomux_v3_setup_pad(mx53_ard_pwm_pads[2]); + +- gpio_request(ARD_PWM2_OFF, "pwm2-off"); +- gpio_direction_output(ARD_PWM2_OFF, 1); +- gpio_free(ARD_PWM2_OFF); ++ gpio_request(ARD_PWM1_OFF, "pwm1-off"); ++ gpio_direction_output(ARD_PWM1_OFF, 1); ++ gpio_free(ARD_PWM1_OFF); + } + + static struct mxc_pwm_platform_data mxc_pwm1_platform_data = { +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1143-ENGR00162578-DMA-mx5-increase-DMA-Zone-size-to-112.patch b/core/kernel26-olinuxino/1143-ENGR00162578-DMA-mx5-increase-DMA-Zone-size-to-112.patch new file mode 100644 index 000000000..cdbb0061a --- /dev/null +++ b/core/kernel26-olinuxino/1143-ENGR00162578-DMA-mx5-increase-DMA-Zone-size-to-112.patch @@ -0,0 +1,109 @@ +From 690f2f35563a1f7a89b796f9b0e7996627dbda21 Mon Sep 17 00:00:00 2001 +From: Robin Gong +Date: Fri, 18 Nov 2011 10:52:32 +0800 +Subject: [PATCH] ENGR00162578 DMA mx5: increase DMA Zone size to 112 + +Increase DMA zone size from 96 to 112 size, and default size is 112, +change imx5_defconfig, change SPBA0_BASE_ADDR_VIRT from 0xFB100000 to +0xF7C00000 , so that it can't overlap with DMA zone +Signed-off-by: Robin Gong +(cherry picked from commit 2d04dcb9b717a7c46358987f41a03141eccc42b0) +--- + arch/arm/configs/imx5_defconfig | 7 ++++--- + arch/arm/plat-mxc/Kconfig | 4 ++-- + arch/arm/plat-mxc/include/mach/memory.h | 4 ++-- + arch/arm/plat-mxc/include/mach/mx5x.h | 2 +- + 4 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/arch/arm/configs/imx5_defconfig b/arch/arm/configs/imx5_defconfig +index 419adde..3a0cc96 100644 +--- a/arch/arm/configs/imx5_defconfig ++++ b/arch/arm/configs/imx5_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit + # Linux kernel version: 2.6.35.3 +-# Wed Jun 1 20:11:44 2011 ++# Fri Nov 18 10:24:37 2011 + # + CONFIG_ARM=y + CONFIG_HAVE_PWM=y +@@ -266,7 +266,7 @@ CONFIG_ARCH_MXC_HAS_NFC_V3=y + CONFIG_ARCH_MXC_HAS_NFC_V3_2=y + CONFIG_MXC_BLUETOOTH_RFKILL=y + CONFIG_IRAM_ALLOC=y +-CONFIG_DMA_ZONE_SIZE=96 ++CONFIG_DMA_ZONE_SIZE=112 + CONFIG_ISP1504_MXC=y + CONFIG_UTMI_MXC=y + # CONFIG_MXC_IRQ_PRIOR is not set +@@ -1230,9 +1230,9 @@ CONFIG_SENSORS_MAX17135=y + # CONFIG_SENSORS_W83627EHF is not set + # CONFIG_SENSORS_LIS3_SPI is not set + # CONFIG_SENSORS_LIS3_I2C is not set ++CONFIG_SENSORS_IMX_AHCI=y + CONFIG_SENSORS_MAG3110=y + CONFIG_SENSORS_ISL29003=y +-CONFIG_SENSORS_IMX_AHCI=y + CONFIG_MXC_MMA8450=y + CONFIG_MXC_MMA8451=y + # CONFIG_THERMAL is not set +@@ -2112,6 +2112,7 @@ CONFIG_MXC_MC13892_POWER=y + CONFIG_MXC_MC34708_ADC=y + CONFIG_MXC_MC34708_RTC=y + CONFIG_MXC_MC34708_BATTERY=m ++# CONFIG_MXC_MC34708_PWM is not set + # CONFIG_MXC_PMIC_MC9S08DZ60 is not set + + # +diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig +index 926379f..7a4412a 100644 +--- a/arch/arm/plat-mxc/Kconfig ++++ b/arch/arm/plat-mxc/Kconfig +@@ -87,8 +87,8 @@ config MXC_FB_IRAM + + config DMA_ZONE_SIZE + int "DMA memory zone size" +- range 0 96 +- default 24 ++ range 0 112 ++ default 112 + help + This is the size in MB for the DMA zone. The DMA zone is used for + dedicated memory for large contiguous video buffers +diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h +index 83532f6..2e66516 100644 +--- a/arch/arm/plat-mxc/include/mach/memory.h ++++ b/arch/arm/plat-mxc/include/mach/memory.h +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved. ++ * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved. + */ + + /* +@@ -63,7 +63,7 @@ + #else + + #ifdef CONFIG_ARCH_MX5 +-#define CONSISTENT_DMA_SIZE (96 * SZ_1M) ++#define CONSISTENT_DMA_SIZE (112 * SZ_1M) + #else + #define CONSISTENT_DMA_SIZE (32 * SZ_1M) + #endif +diff --git a/arch/arm/plat-mxc/include/mach/mx5x.h b/arch/arm/plat-mxc/include/mach/mx5x.h +index 5c16710..96f6686 100644 +--- a/arch/arm/plat-mxc/include/mach/mx5x.h ++++ b/arch/arm/plat-mxc/include/mach/mx5x.h +@@ -194,7 +194,7 @@ + * SPBA global module enabled #0 + */ + #define SPBA0_BASE_ADDR 0x70000000 +-#define SPBA0_BASE_ADDR_VIRT 0xFB100000 ++#define SPBA0_BASE_ADDR_VIRT 0xF7C00000 + #define SPBA0_SIZE SZ_1M + + #define MMC_SDHC1_BASE_ADDR (SPBA0_BASE_ADDR + 0x00004000) +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1144-ENGR00169603-MX53-ARD-FlexCAN-Set-lp_apm-as-clock.patch b/core/kernel26-olinuxino/1144-ENGR00169603-MX53-ARD-FlexCAN-Set-lp_apm-as-clock.patch new file mode 100644 index 000000000..360902c71 --- /dev/null +++ b/core/kernel26-olinuxino/1144-ENGR00169603-MX53-ARD-FlexCAN-Set-lp_apm-as-clock.patch @@ -0,0 +1,37 @@ +From a5baaf44b75b0bd6d3411fc87531ddfd411e34fb Mon Sep 17 00:00:00 2001 +From: Rogerio Pimentel +Date: Thu, 8 Dec 2011 16:33:41 -0200 +Subject: [PATCH] ENGR00169603 MX53 ARD: FlexCAN: Set lp_apm as clock source + +The FlexCAN clock source must be lp_apm (24MHZ) instead +ipg_clock_root (60MHZ) to meet automotive clock requirements. + +Signed-off-by: Rogerio Pimentel +(cherry picked from commit b7456a4f5f6fa12235effbffe4e4d1b62159b948) +--- + arch/arm/mach-mx5/mx53_ard.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-mx5/mx53_ard.c b/arch/arm/mach-mx5/mx53_ard.c +index 378e1c1..b1252fb 100644 +--- a/arch/arm/mach-mx5/mx53_ard.c ++++ b/arch/arm/mach-mx5/mx53_ard.c +@@ -455,6 +455,7 @@ static void flexcan_xcvr_enable(int id, int en) + static struct flexcan_platform_data flexcan0_data = { + .core_reg = NULL, + .io_reg = NULL, ++ .root_clk_id = "lp_apm", + .xcvr_enable = flexcan_xcvr_enable, + .br_clksrc = 1, + .br_rjw = 2, +@@ -472,6 +473,7 @@ static struct flexcan_platform_data flexcan0_data = { + static struct flexcan_platform_data flexcan1_data = { + .core_reg = NULL, + .io_reg = NULL, ++ .root_clk_id = "lp_apm", + .xcvr_enable = flexcan_xcvr_enable, + .br_clksrc = 1, + .br_rjw = 2, +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1145-ENGR00170342-PWM-fix-pwm-output-can-t-be-set-to-100.patch b/core/kernel26-olinuxino/1145-ENGR00170342-PWM-fix-pwm-output-can-t-be-set-to-100.patch new file mode 100644 index 000000000..095ab148f --- /dev/null +++ b/core/kernel26-olinuxino/1145-ENGR00170342-PWM-fix-pwm-output-can-t-be-set-to-100.patch @@ -0,0 +1,35 @@ +From d1eff01309855f850d82e4ce9abe42ad76aa7f9f Mon Sep 17 00:00:00 2001 +From: Yuxi Sun +Date: Thu, 15 Dec 2011 10:12:53 +0800 +Subject: [PATCH] ENGR00170342 PWM: fix pwm output can't be set to 100% full duty + +The chip document says the counter counts up to period_cycles + 1 +and then is reset to 0, so the actual period of the PWM wave is +period_cycles + 2 + +Signed-off-by: Yuxi Sun +(cherry picked from commit e1465447502c77b2951af7ace43d8f76fa5039fb) +--- + arch/arm/plat-mxc/pwm.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/plat-mxc/pwm.c b/arch/arm/plat-mxc/pwm.c +index 2f8a35e..ccba298 100644 +--- a/arch/arm/plat-mxc/pwm.c ++++ b/arch/arm/plat-mxc/pwm.c +@@ -83,7 +83,11 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) + prescale = period_cycles / 0x10000 + 1; + + period_cycles /= prescale; +- c = (unsigned long long)period_cycles * duty_ns; ++ /* the chip document says the counter counts up to ++ * period_cycles + 1 and then is reset to 0, so the ++ * actual period of the PWM wave is period_cycles + 2 ++ */ ++ c = (unsigned long long)(period_cycles + 2) * duty_ns; + do_div(c, period_ns); + duty_cycles = c; + +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1146-ENGR00170244-1-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch b/core/kernel26-olinuxino/1146-ENGR00170244-1-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch new file mode 100644 index 000000000..9a6def323 --- /dev/null +++ b/core/kernel26-olinuxino/1146-ENGR00170244-1-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch @@ -0,0 +1,80 @@ +From 10df11bb736c8166e53b41f96688b2e6bd53773b Mon Sep 17 00:00:00 2001 +From: Richard Zhu +Date: Fri, 16 Dec 2011 10:08:04 +0800 +Subject: [PATCH] ENGR00170244-1 ARM: AHCI: Enable PDDQ mode when no disk is attached + +In order to save the power consumption, enable the +PDDQ mode of AHCI PHY when there is no sata disk +on the port + +Signed-off-by: Richard Zhu +(cherry picked from commit a53c29d7e484a3562e3a4f24d952485fbeb4c933) +--- + arch/arm/plat-mxc/ahci_sata.c | 30 ++++++++++++++++++++------- + arch/arm/plat-mxc/include/mach/ahci_sata.h | 1 + + 2 files changed, 23 insertions(+), 8 deletions(-) + +diff --git a/arch/arm/plat-mxc/ahci_sata.c b/arch/arm/plat-mxc/ahci_sata.c +index 466636b..76a2747 100644 +--- a/arch/arm/plat-mxc/ahci_sata.c ++++ b/arch/arm/plat-mxc/ahci_sata.c +@@ -156,7 +156,7 @@ static int sata_init(struct device *dev) + { + void __iomem *mmio; + u32 tmpdata; +- int ret = 0; ++ int ret = 0, iterations = 20; + struct clk *clk; + + sata_clk = clk_get(dev, "imx_sata_clk"); +@@ -281,14 +281,28 @@ static int sata_init(struct device *dev) + + if (AHCI_SAVE_PWR_WITHOUT_HOTPLUG) { + /* Release resources when there is no device on the port */ +- if ((readl(mmio + PORT_SATA_SR) & 0xF) == 0) { +- ret = -ENODEV; +- if (machine_is_mx53_smd() || machine_is_mx53_loco() +- || board_is_mx53_ard_b()) +- goto no_device; ++ do { ++ if ((readl(mmio + PORT_SATA_SR) & 0xF) == 0) ++ msleep(25); + else +- goto release_mem; +- } ++ break; ++ ++ if (iterations == 0) { ++ pr_info("No sata disk.\n"); ++ ret = -ENODEV; ++ /* Enter into PDDQ mode, save power */ ++ tmpdata = readl(mmio + PORT_PHY_CTL); ++ writel(tmpdata | PORT_PHY_CTL_PDDQ_LOC, ++ mmio + PORT_PHY_CTL); ++ ++ if (machine_is_mx53_smd() ++ || machine_is_mx53_loco() ++ || board_is_mx53_ard_b()) ++ goto no_device; ++ else ++ goto release_mem; ++ } ++ } while (iterations-- > 0); + } + + iounmap(mmio); +diff --git a/arch/arm/plat-mxc/include/mach/ahci_sata.h b/arch/arm/plat-mxc/include/mach/ahci_sata.h +index ea68a19..e31797b 100644 +--- a/arch/arm/plat-mxc/include/mach/ahci_sata.h ++++ b/arch/arm/plat-mxc/include/mach/ahci_sata.h +@@ -37,6 +37,7 @@ enum { + PORT_PHY_CTL_CAP_DAT_LOC = 0x20000, + PORT_PHY_CTL_WRITE_LOC = 0x40000, + PORT_PHY_CTL_READ_LOC = 0x80000, ++ PORT_PHY_CTL_PDDQ_LOC = 0x100000, + /* Port0 PHY Status */ + PORT_PHY_SR = 0x17c, + /* PORT_PHY_SR */ +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/1147-ENGR00170244-2-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch b/core/kernel26-olinuxino/1147-ENGR00170244-2-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch new file mode 100644 index 000000000..3b14b8de6 --- /dev/null +++ b/core/kernel26-olinuxino/1147-ENGR00170244-2-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch @@ -0,0 +1,53 @@ +From 3cb5c41657a793fd442766d076eddde06af9c9ce Mon Sep 17 00:00:00 2001 +From: Richard Zhu +Date: Fri, 16 Dec 2011 10:08:42 +0800 +Subject: [PATCH] ENGR00170244-2 ARM: AHCI: Enable PDDQ mode when no disk is attached + +In order to save the power consumption, enable the +PDDQ mode of AHCI PHY when there is no sata disk +on the port + +Signed-off-by: Richard Zhu +(cherry picked from commit f97994abf50e9917a959ae62eabd08908a75a222) +--- + drivers/hwmon/imx_ahci_hwmon.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/drivers/hwmon/imx_ahci_hwmon.c b/drivers/hwmon/imx_ahci_hwmon.c +index 62048f7..7688d92 100644 +--- a/drivers/hwmon/imx_ahci_hwmon.c ++++ b/drivers/hwmon/imx_ahci_hwmon.c +@@ -90,6 +90,11 @@ static ssize_t imx_ahci_hwmon_temp_show(struct device *dev, + return -1; + } + ++ /* Disable PDDQ mode when this mode is enabled */ ++ read_sum = readl(mmio + PORT_PHY_CTL); ++ if (read_sum & PORT_PHY_CTL_PDDQ_LOC) ++ writel(read_sum & ~PORT_PHY_CTL_PDDQ_LOC, mmio + PORT_PHY_CTL); ++ + /* check rd-wr to reg */ + read_sum = 0; + sata_phy_cr_addr(SATA_PHY_CR_CLOCK_CRCMP_LT_LIMIT, mmio); +@@ -230,6 +235,10 @@ static ssize_t imx_ahci_hwmon_temp_show(struct device *dev, + a = (m2 - m1) / (m2 / 1000); + temp = ((((-559) * a) / 1000) * a) / 1000 + (1379) * a / 1000 + (-458); + ++ /* Enable PDDQ mode to save power */ ++ read_sum = readl(mmio + PORT_PHY_CTL); ++ writel(read_sum | PORT_PHY_CTL_PDDQ_LOC, mmio + PORT_PHY_CTL); ++ + iounmap(mmio); + + /* Release the clocks */ +@@ -237,6 +246,7 @@ static ssize_t imx_ahci_hwmon_temp_show(struct device *dev, + clk_put(sata_ref_clk); + clk_disable(sata_clk); + clk_put(sata_clk); ++ + mutex_unlock(&hwmon->lock); + + return sprintf(buf, "%d\n", temp * 1000); +-- +1.5.4.4 + diff --git a/core/kernel26-olinuxino/NFS-Fix-nfsroot-support.patch b/core/kernel26-olinuxino/NFS-Fix-nfsroot-support.patch new file mode 100644 index 000000000..870f0c5fe --- /dev/null +++ b/core/kernel26-olinuxino/NFS-Fix-nfsroot-support.patch @@ -0,0 +1,31 @@ +From 4a6353dad68074bb7ae08817cd7beb5cd13f2359 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Mon, 18 Jun 2012 12:02:56 -0300 +Subject: [PATCH] NFS: Fix nfsroot support + +The NFS support to use alternative ports breaks building of regular +NFS root support as the API has been change in an incompatible way. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Otavio Salvador +--- + fs/nfs/nfsroot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c +index df101d9..e1578e1 100644 +--- a/fs/nfs/nfsroot.c ++++ b/fs/nfs/nfsroot.c +@@ -506,7 +506,7 @@ static int __init root_nfs_get_handle(void) + if (!request.fh) + goto out; + set_sockaddr(&sin, servaddr, htons(mount_port)); +- status = nfs_mount(&request); ++ status = nfs_mount(&request, NFS_MNT_PROGRAM); + if (status < 0) + printk(KERN_ERR "Root-NFS: Server returned error %d " + "while mounting %s\n", status, nfs_export_path); +-- +1.7.10 + diff --git a/core/kernel26-olinuxino/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch b/core/kernel26-olinuxino/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch new file mode 100644 index 000000000..7597fa1c2 --- /dev/null +++ b/core/kernel26-olinuxino/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch @@ -0,0 +1,241 @@ +From e85103e27b7591337d3240cf0ab2670d0ab73d52 Mon Sep 17 00:00:00 2001 +From: Jason Wessel +Date: Wed, 7 Jan 2009 00:59:33 -0500 +Subject: [PATCH] NFS: allow nfs root mount to use alternate rpc ports + +Allow an nfs root mount to use alternate RPC ports for mountd and nfsd. + +Signed-off-by: Jason Wessel +[forward port to 2.6.33+] +Signed-off-by: Bruce Ashfield +--- + fs/nfs/client.c | 10 ++++++++++ + fs/nfs/internal.h | 4 +++- + fs/nfs/mount_clnt.c | 3 ++- + fs/nfs/super.c | 33 ++++++++++++++++++++++++++++++++- + include/linux/nfs_fs_sb.h | 1 + + include/linux/nfs_mount.h | 4 +++- + 6 files changed, 51 insertions(+), 4 deletions(-) + +diff --git a/fs/nfs/client.c b/fs/nfs/client.c +index d25b525..b706c02 100644 +--- a/fs/nfs/client.c ++++ b/fs/nfs/client.c +@@ -105,6 +105,7 @@ struct nfs_client_initdata { + const struct nfs_rpc_ops *rpc_ops; + int proto; + u32 minorversion; ++ int nfs_prog; + }; + + /* +@@ -123,6 +124,7 @@ static struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_ + goto error_0; + + clp->rpc_ops = cl_init->rpc_ops; ++ clp->nfs_prog = cl_init->nfs_prog; + + atomic_set(&clp->cl_count, 1); + clp->cl_cons_state = NFS_CS_INITING; +@@ -448,6 +450,9 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat + /* Match nfsv4 minorversion */ + if (clp->cl_minorversion != data->minorversion) + continue; ++ if (clp->nfs_prog != data->nfs_prog) ++ continue; ++ + /* Match the full socket address */ + if (!nfs_sockaddr_cmp(sap, clap)) + continue; +@@ -618,6 +623,10 @@ static int nfs_create_rpc_client(struct nfs_client *clp, + if (!IS_ERR(clp->cl_rpcclient)) + return 0; + ++ if (clp->nfs_prog) ++ nfs_program.number = clp->nfs_prog; ++ else ++ nfs_program.number = NFS_PROGRAM; + clnt = rpc_create(&args); + if (IS_ERR(clnt)) { + dprintk("%s: cannot create RPC client. Error = %ld\n", +@@ -786,6 +795,7 @@ static int nfs_init_server(struct nfs_server *server, + .addrlen = data->nfs_server.addrlen, + .rpc_ops = &nfs_v2_clientops, + .proto = data->nfs_server.protocol, ++ .nfs_prog = data->nfs_prog, + }; + struct rpc_timeout timeparms; + struct nfs_client *clp; +diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h +index e70f44b..3e2649f 100644 +--- a/fs/nfs/internal.h ++++ b/fs/nfs/internal.h +@@ -71,6 +71,8 @@ struct nfs_parsed_mount_data { + int timeo, retrans; + int acregmin, acregmax, + acdirmin, acdirmax; ++ int nfs_prog; ++ int mount_prog; + int namlen; + unsigned int options; + unsigned int bsize; +@@ -116,7 +118,7 @@ struct nfs_mount_request { + rpc_authflavor_t *auth_flavs; + }; + +-extern int nfs_mount(struct nfs_mount_request *info); ++extern int nfs_mount(struct nfs_mount_request *info, int prog); + extern void nfs_umount(const struct nfs_mount_request *info); + + /* client.c */ +diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c +index 59047f8..0a2bd63 100644 +--- a/fs/nfs/mount_clnt.c ++++ b/fs/nfs/mount_clnt.c +@@ -141,7 +141,7 @@ struct mnt_fhstatus { + * + * Uses default timeout parameters specified by underlying transport. + */ +-int nfs_mount(struct nfs_mount_request *info) ++int nfs_mount(struct nfs_mount_request *info, int m_prog) + { + struct mountres result = { + .fh = info->fh, +@@ -171,6 +171,7 @@ int nfs_mount(struct nfs_mount_request *info) + if (info->noresvport) + args.flags |= RPC_CLNT_CREATE_NONPRIVPORT; + ++ mnt_program.number = m_prog; + mnt_clnt = rpc_create(&args); + if (IS_ERR(mnt_clnt)) + goto out_clnt_err; +diff --git a/fs/nfs/super.c b/fs/nfs/super.c +index f9df16d..0b3bbf8 100644 +--- a/fs/nfs/super.c ++++ b/fs/nfs/super.c +@@ -94,6 +94,8 @@ enum { + Opt_mountvers, + Opt_nfsvers, + Opt_minorversion, ++ Opt_mountprog, ++ Opt_nfsprog, + + /* Mount options that take string arguments */ + Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost, +@@ -160,6 +162,8 @@ static const match_table_t nfs_mount_option_tokens = { + { Opt_nfsvers, "nfsvers=%s" }, + { Opt_nfsvers, "vers=%s" }, + { Opt_minorversion, "minorversion=%s" }, ++ { Opt_mountprog, "mountprog=%s" }, ++ { Opt_nfsprog, "nfsprog=%s" }, + + { Opt_sec, "sec=%s" }, + { Opt_proto, "proto=%s" }, +@@ -787,6 +791,8 @@ static struct nfs_parsed_mount_data *nfs_alloc_parsed_mount_data(unsigned int ve + data->acregmax = NFS_DEF_ACREGMAX; + data->acdirmin = NFS_DEF_ACDIRMIN; + data->acdirmax = NFS_DEF_ACDIRMAX; ++ data->nfs_prog = NFS_PROGRAM; ++ data->mount_prog = NFS_MNT_PROGRAM; + data->mount_server.port = NFS_UNSPEC_PORT; + data->nfs_server.port = NFS_UNSPEC_PORT; + data->nfs_server.protocol = XPRT_TRANSPORT_TCP; +@@ -1168,6 +1174,26 @@ static int nfs_parse_mount_options(char *raw, + goto out_invalid_value; + mnt->acdirmax = option; + break; ++ case Opt_mountprog: ++ string = match_strdup(args); ++ if (string == NULL) ++ goto out_nomem; ++ rc = strict_strtoul(string, 10, &option); ++ kfree(string); ++ if (rc != 0) ++ goto out_invalid_value; ++ mnt->mount_prog = option; ++ break; ++ case Opt_nfsprog: ++ string = match_strdup(args); ++ if (string == NULL) ++ goto out_nomem; ++ rc = strict_strtoul(string, 10, &option); ++ kfree(string); ++ if (rc != 0) ++ goto out_invalid_value; ++ mnt->nfs_prog = option; ++ break; + case Opt_actimeo: + string = match_strdup(args); + if (string == NULL) +@@ -1566,7 +1592,7 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args, + * Now ask the mount server to map our export path + * to a file handle. + */ +- status = nfs_mount(&request); ++ status = nfs_mount(&request,args->mount_prog); + if (status != 0) { + dfprintk(MOUNT, "NFS: unable to mount server %s, error %d\n", + request.hostname, status); +@@ -1739,6 +1765,7 @@ static int nfs_validate_mount_data(void *options, + { + struct nfs_mount_data *data = (struct nfs_mount_data *)options; + struct sockaddr *sap = (struct sockaddr *)&args->nfs_server.address; ++ args->nfs_prog = NFS_PROGRAM; + + if (data == NULL) + goto out_no_data; +@@ -1758,6 +1785,8 @@ static int nfs_validate_mount_data(void *options, + goto out_no_sec; + case 5: + memset(data->context, 0, sizeof(data->context)); ++ case 7: ++ args->nfs_prog = (data->version >= 7) ? data->nfs_prog : NFS_PROGRAM; + case 6: + if (data->flags & NFS_MOUNT_VER3) { + if (data->root.size > NFS3_FHSIZE || data->root.size == 0) +@@ -2476,6 +2505,8 @@ static int nfs4_validate_mount_data(void *options, + if (data == NULL) + goto out_no_data; + ++ args->nfs_prog = NFS_PROGRAM; ++ + switch (data->version) { + case 1: + if (data->host_addrlen > sizeof(args->nfs_server.address)) +diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h +index d6e10a4..585cba4 100644 +--- a/include/linux/nfs_fs_sb.h ++++ b/include/linux/nfs_fs_sb.h +@@ -41,6 +41,7 @@ struct nfs_client { + + u32 cl_minorversion;/* NFSv4 minorversion */ + struct rpc_cred *cl_machine_cred; ++ int nfs_prog; + + #ifdef CONFIG_NFS_V4 + u64 cl_clientid; /* constant */ +diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h +index 4499016..86beb0c 100644 +--- a/include/linux/nfs_mount.h ++++ b/include/linux/nfs_mount.h +@@ -20,7 +20,7 @@ + * mount-to-kernel version compatibility. Some of these aren't used yet + * but here they are anyway. + */ +-#define NFS_MOUNT_VERSION 6 ++#define NFS_MOUNT_VERSION 7 + #define NFS_MAX_CONTEXT_LEN 256 + + struct nfs_mount_data { +@@ -43,6 +43,8 @@ struct nfs_mount_data { + struct nfs3_fh root; /* 4 */ + int pseudoflavor; /* 5 */ + char context[NFS_MAX_CONTEXT_LEN + 1]; /* 6 */ ++ int nfs_prog; /* 7 */ ++ int mount_prog; /* 7 */ + }; + + /* bits in the flags field visible to user space */ +-- +1.7.9.1 + diff --git a/core/kernel26-olinuxino/PKGBUILD b/core/kernel26-olinuxino/PKGBUILD new file mode 100644 index 000000000..03afdfa6a --- /dev/null +++ b/core/kernel26-olinuxino/PKGBUILD @@ -0,0 +1,319 @@ +# Contributor: Kiril Zyapkov + +# iMX233-OLinuXino-Maxi kernel for archlinuxarm +# basically replicates the oe-recipe +# see https://github.com/OSSystems/meta-fsl-arm-extra.git +# vim:set ts=2 sw=2 et: + +plugrel=1 +noautobuild=1 + +pkgbase="kernel26" +pkgname=('kernel26-olinuxino' 'kernel26-headers-olinuxino') +_kernelname=${pkgname#kernel26} +_basekernel=2.6 +pkgver=${_basekernel}.35.3 +pkgrel=4 +makedepends=('xmlto' 'docbook-xsl' 'make' 'git' 'elftosb' 'imx-bootlets-olinuxino') +optdepends=() +options=('!strip' '!buildflags' '!makeflags') +arch=('arm') +CARCH=arm +KARCH=arm +LDFLAGS="" +license=('GPL2') +url="https://github.com/Freescale/meta-fsl-arm/" +source=(config + 0002-cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch + egalax_ts-enable-single-event-support.patch + NFS-Fix-nfsroot-support.patch + NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch + 1130-ENGR00157473-MX5X-UART-disable-UART2-DMA-to-make-G.patch + 1132-ENGR00155891-mx53_loco-enable-mc34708-s-WDI-functio.patch + 1134-ENGR00159738-v4l2-correct-wrong-parameter-when-V4l2.patch + 1136-ENGR00161215-1-arch-arm-Add-two-new-IOCTLs-in-mxc_v.patch + 1137-ENGR00161215-2-vpu-Add-ioctls-for-querying-and-sett.patch + 1139-ENGR00162464-update-pm4-microcode-pm4_microcode_r18.patch + 1140-ENGR00162711-DA9053-Add-dummy-write-for-DA9053-I2C.patch + 1141-ENGR00162708-MX5-Add-I2C-dummy-write-and-mask-nONKE.patch + 1142-ENGR00163698-MX53-ARD-fix-typo-error-for-pwm1-pad-d.patch + 1143-ENGR00162578-DMA-mx5-increase-DMA-Zone-size-to-112.patch + 1144-ENGR00169603-MX53-ARD-FlexCAN-Set-lp_apm-as-clock.patch + 1145-ENGR00170342-PWM-fix-pwm-output-can-t-be-set-to-100.patch + 1146-ENGR00170244-1-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch + 1147-ENGR00170244-2-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch + no-unaligned-access.patch + mx28-removecpufreq.patch + mxs-duart-use-ttyAMA-for-device-name.patch + w1-fix-support-multiple-master.patch + smsc95xx-randomize-mac-once.patch + dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch + wire-up-sys_accept4-on-ARM.patch + 0001-mx53_loco-add-USR-led-support.patch + 002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch + 003_Sanitise_ipu_interrupt_return_value.patch + imx233-olinuxino.patch) + +md5sums=('d182fca7e14a186b9790331e03b02892' + 'bde087470cb0715ca709bd5bcd3803d0' + 'ef8a1cf2d129de1a0a476a0b40e6f291' + 'e086ab0b162d292549f9bf453e07ad2e' + 'ff1281a87da6f8093992ad70d23e71d2' + '5e66409616ff8b83d6c4da27b7a20524' + '8bd2ccc655534a3954c7c4627504b983' + '5bd3f9fa736e52fc6805bb6ad31bb0fa' + 'c32466adef3d6ef7cfbf78c82746c273' + '51b8c41987805f7df4940ca8acdc207f' + '33f10abba5e4477a869481afbd679708' + 'a277ba90aff952c3328b0a15090f0162' + '1d37e5d871cc887b11f0d0526bade455' + 'a7c588606614e54c327a81e9bf767284' + '2dae86eb8d34194fc7012fb054859f18' + '210074137b0be358a7c9ec483f7f76e6' + '4ccd4f497105f69930177fcffdb583c9' + '4cc4db3a2268b91583da861fbe064bfc' + 'dd5fdabdf2c8609fbd8752c42f5773c2' + 'bcba9216d3414a9de22b7d4fb24853e1' + 'c2d9dba73587fd00d990a2521428d67b' + '302ad0fe4e990c789793e25ced58f712' + 'c8894e44904cc1365e7110eb04aea1d6' + '14ec6ec6f9de8d1fd0333024481541af' + 'f0ebf1f2dbfa4030ba3945fea97710a1' + '1d38c32d1d5348ef24745b2f38b0f040' + '1bf553ee320c43a8e0941274bcdb4bf2' + 'be34abb50266df17160dd1c6170299f4' + '06d9896eb871dabcdb91b5f1a15bffdf' + 'd02c1a4f67a2e5680b7e23cc5a1998cd') + +__gitname="linux-2.6-imx" +__gitroot="git://git.freescale.com/imx/${__gitname}.git" +__gittag="rel_imx_2.6.35_11.09.01" +__gitcommit="691c08adeed64d5153937a0e31aaf4c251924471" + +build() { + cd "$srcdir" + if [ -d $__gitname ] ; then + msg "Using existing GIT repo clone." + cd ${__gitname} && git checkout ${__gitcommit} -- . + msg "The local files are updated." + else + msg "GIT Checkout of ${_gitroot}" + git clone --depth=1 --branch=${__gittag} ${__gitroot} ${__gitname} + fi + + cd ${srcdir}/${__gitname} + + msg "Cleaning up the working copy..." + git clean -df + make mrproper + + msg "Patching ..." + + # i.MX233 support patches from Freescale + patch -Np1 -i ../0002-cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch + patch -Np1 -i ../egalax_ts-enable-single-event-support.patch + patch -Np1 -i ../NFS-Fix-nfsroot-support.patch + patch -Np1 -i ../NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch + patch -Np1 -i ../1130-ENGR00157473-MX5X-UART-disable-UART2-DMA-to-make-G.patch + patch -Np1 -i ../1132-ENGR00155891-mx53_loco-enable-mc34708-s-WDI-functio.patch + patch -Np1 -i ../1134-ENGR00159738-v4l2-correct-wrong-parameter-when-V4l2.patch + patch -Np1 -i ../1136-ENGR00161215-1-arch-arm-Add-two-new-IOCTLs-in-mxc_v.patch + patch -Np1 -i ../1137-ENGR00161215-2-vpu-Add-ioctls-for-querying-and-sett.patch + patch -Np1 -i ../1139-ENGR00162464-update-pm4-microcode-pm4_microcode_r18.patch + patch -Np1 -i ../1140-ENGR00162711-DA9053-Add-dummy-write-for-DA9053-I2C.patch + patch -Np1 -i ../1141-ENGR00162708-MX5-Add-I2C-dummy-write-and-mask-nONKE.patch + patch -Np1 -i ../1142-ENGR00163698-MX53-ARD-fix-typo-error-for-pwm1-pad-d.patch + patch -Np1 -i ../1143-ENGR00162578-DMA-mx5-increase-DMA-Zone-size-to-112.patch + patch -Np1 -i ../1144-ENGR00169603-MX53-ARD-FlexCAN-Set-lp_apm-as-clock.patch + patch -Np1 -i ../1145-ENGR00170342-PWM-fix-pwm-output-can-t-be-set-to-100.patch + patch -Np1 -i ../1146-ENGR00170244-1-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch + patch -Np1 -i ../1147-ENGR00170244-2-ARM-AHCI-Enable-PDDQ-mode-when-no-d.patch + patch -Np1 -i ../no-unaligned-access.patch + patch -Np1 -i ../mx28-removecpufreq.patch + patch -Np1 -i ../mxs-duart-use-ttyAMA-for-device-name.patch + patch -Np1 -i ../w1-fix-support-multiple-master.patch + patch -Np1 -i ../smsc95xx-randomize-mac-once.patch + patch -Np1 -i ../dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch + patch -Np1 -i ../wire-up-sys_accept4-on-ARM.patch + patch -Np1 -i ../0001-mx53_loco-add-USR-led-support.patch + patch -Np1 -i ../002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch + patch -Np1 -i ../003_Sanitise_ipu_interrupt_return_value.patch + + # board-specific patch + patch -Np1 -i ../imx233-olinuxino.patch + + msg "Patching done, building the kernel." + + cp ${srcdir}/config .config + + # set extraversion to pkgrel + sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile + + # Configure the kernel. Replace the line below with one of your choice. + #make menuconfig # CLI menu for configuration + #make nconfig # new CLI menu for configuration + #make oldconfig # using old config from previous kernel version + + # Build! + + make ${MAKEFLAGS} zImage modules +} + +package_kernel26-olinuxino() { + pkgdesc="The Linux Kernel and modules for iMX233-OLinuXino-Maxi" + groups=('base') + depends=('coreutils' 'module-init-tools') + replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi' + 'alsa-driver' 'ieee80211' 'hostap-driver26' + 'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv' + 'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs' + 'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm') + provides=("kernel26=${pkgver}" "linux=${pkgver}") + install=kernel26.install + KARCH=arm + + cd ${srcdir}/${__gitname} + + # get kernel version + _kernver="$(make kernelrelease)" + mkdir -p ${pkgdir}/{lib/modules,lib/firmware,boot} + make INSTALL_MOD_PATH=${pkgdir} modules_install + #cp arch/$KARCH/boot/uImage ${pkgdir}/boot/uImage + cp arch/$KARCH/boot/zImage ${pkgdir}/boot/zImage + cp .config ${pkgdir}/boot/config-${_kernver} + cp System.map System.map-${_kernver} + + # set correct depmod command for install + sed \ + -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \ + -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \ + -i $startdir/kernel26.install + + # Generate an imx233 boot image + msg "Generating sdcard image ..." + ln -sf /opt/imx-bootlets-olinuxino + elftosb -z -c ./imx-bootlets-olinuxino/linux.bd -o ${pkgdir}/boot/oli-${_kernver}.sb + + # remove build and source links + rm -f ${pkgdir}/lib/modules/${_kernver}/{source,build} +} + +package_kernel26-headers-olinuxino() { + pkgdesc="Header files and scripts for building modules for kernel26 for iMX233-OLinuXino-Maxi" + provides=("kernel26-headers=${pkgver}" "linux-headers=${pkgver}") + KARCH=arm + + cd ${srcdir}/${__gitname} + + # get kernel version + _kernver="$(make kernelrelease)" + + mkdir -p ${pkgdir}/lib/modules/${_kernver} + cd ${pkgdir}/lib/modules/${_kernver} + ln -sf ../../../usr/src/linux-${_kernver} build + + cd ${srcdir}/${__gitname} + install -D -m644 Makefile \ + ${pkgdir}/usr/src/linux-${_kernver}/Makefile + install -D -m644 kernel/Makefile \ + ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile + install -D -m644 .config \ + ${pkgdir}/usr/src/linux-${_kernver}/.config + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include + + for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do + cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/ + done + + # copy arch includes for external modules + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH + cp -a arch/$KARCH/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ + + # install platform- and machine-specific headers + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-mx23 + cp -a arch/$KARCH/mach-mx23/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-mx23/ + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/plat-mxs + cp -a arch/$KARCH/plat-mxs/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/plat-mxs/ + + # copy files necessary for later builds, like nvidia and vmware + cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver} + cp -a scripts ${pkgdir}/usr/src/linux-${_kernver} + + # fix permissions on scripts dir + chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions + + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel + + cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ + cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/ + + # add headers for lirc package + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video + cp drivers/media/video/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/ + for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo; do + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i + cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i + done + + # add docbook makefile + install -D -m644 Documentation/DocBook/Makefile \ + ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile + + # add dm headers + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md + cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md + + # add inotify.h + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux + cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/ + + # add wireless headers + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/ + cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/ + + # add dvb headers for external modules + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core + cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/ + + # add dvb headers for external modules + #mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ + #cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ + + # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ + cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ + cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ + + # add dvb headers + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb + cp drivers/media/dvb/dvb-usb/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/ + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends + cp drivers/media/dvb/frontends/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners + cp drivers/media/common/tuners/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/ + + # add xfs and shmem for aufs building + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm + cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h + + # add headers vor virtualbox + cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/ + + # add headers for broadcom wl + cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/ + + # copy in Kconfig files + for i in `find . -name "Kconfig*"`; do + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'` + cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i + done + + chown -R root.root ${pkgdir}/usr/src/linux-${_kernver} + find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \; + + # remove unneeded architectures + rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa,x86} +} + diff --git a/core/kernel26-olinuxino/config b/core/kernel26-olinuxino/config new file mode 100644 index 000000000..b1c586a37 --- /dev/null +++ b/core/kernel26-olinuxino/config @@ -0,0 +1,1632 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.35-4 +# Sat Jul 14 17:57:00 2012 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_FIQ=y +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_CONSTRUCTORS=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="-OLinuXino-ARCH" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_TINY_RCU is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +# CONFIG_NAMESPACES is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +# CONFIG_RD_LZO is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +# CONFIG_PERF_EVENTS is not set +# CONFIG_PERF_COUNTERS is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +# CONFIG_SLUB is not set +CONFIG_SLOB=y +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_CLK=y + +# +# GCOV-based kernel profiling +# +# CONFIG_SLOW_WORK is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_UNLOCK is not set +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_UNLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_BH is not set +# CONFIG_INLINE_READ_UNLOCK_IRQ is not set +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_UNLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_STMP3XXX is not set +CONFIG_ARCH_MXS=y +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_NUC93X is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P6440 is not set +# CONFIG_ARCH_S5P6442 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_PLAT_SPEAR is not set +CONFIG_IRAM_ALLOC=y +CONFIG_DMA_ZONE_SIZE=12 + +# +# Freescale i.MXS implementations +# +# CONFIG_ARCH_MX28 is not set +CONFIG_ARCH_MX23=y +CONFIG_VECTORS_PHY_ADDR=0 +# CONFIG_MACH_MX23EVK is not set +CONFIG_MACH_IMX233_OLINUXINO=y +# CONFIG_MXS_UNIQUE_ID is not set +CONFIG_MXS_ICOLL=y +CONFIG_MXS_EARLY_CONSOLE=y +CONFIG_MXS_DMA_ENGINE=y +CONFIG_MXS_LRADC=y +CONFIG_MXS_PWM_CHANNELS=8 + +# +# Freescale Application UART: +# +CONFIG_MXS_AUART_DMA_SUPPORT=y +CONFIG_MXS_AUART_PORTS=5 +# CONFIG_MXS_AUART0_DEVICE_ENABLE is not set +# CONFIG_MXS_AUART0_DMA_ENABLE is not set +CONFIG_MXS_AUART1_DEVICE_ENABLE=y +# CONFIG_MXS_AUART1_DMA_ENABLE is not set +# CONFIG_MXS_AUART2_DEVICE_ENABLE is not set +# CONFIG_MXS_AUART2_DMA_ENABLE is not set +# CONFIG_MXS_AUART3_DEVICE_ENABLE is not set +# CONFIG_MXS_AUART3_DMA_ENABLE is not set +# CONFIG_MXS_AUART4_DEVICE_ENABLE is not set +# CONFIG_MXS_AUART4_DMA_ENABLE is not set +CONFIG_MXS_RAM_FREQ_SCALING=y +# CONFIG_MXS_RAM_MDDR is not set +CONFIG_MXS_RAM_DDR=y + +# +# Processor Type +# +CONFIG_CPU_ARM926T=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_PABRT_LEGACY=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_COMMON_CLKDEV=y + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_HZ=100 +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_HIGHMEM is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=999999 +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait" +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# CPU Power Management +# +# CONFIG_CPU_IDLE is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +# CONFIG_VFP is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_NVS=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_APM_EMULATION is not set +# CONFIG_PM_RUNTIME is not set +CONFIG_PM_OPS=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +CONFIG_ARPD=y +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_NETLABEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +# CONFIG_MAC80211_MESH is not set +# CONFIG_MAC80211_LEDS is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +# CONFIG_MTD is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set + +# +# DRBD disabled because PROC_FS, INET or CONNECTOR not selected +# +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=4 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_ISL29003 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_DS1682 is not set +CONFIG_MXS_PERSISTENT=y +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=m +# CONFIG_IWMC3200TOP is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_AX88796 is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_ETHOC is not set +# CONFIG_SMC911X is not set +# CONFIG_SMSC911X is not set +# CONFIG_DNET is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +# CONFIG_B44 is not set +# CONFIG_KS8842 is not set +# CONFIG_KS8851_MLL is not set +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +CONFIG_WLAN=y +# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_AT76C50X_USB is not set +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +CONFIG_RTL8187=m +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_P54_COMMON is not set +CONFIG_RT2X00=m +# CONFIG_RT2500USB is not set +# CONFIG_RT73USB is not set +# CONFIG_RT2800USB is not set +# CONFIG_WL12XX is not set +# CONFIG_ZD1211RW is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +CONFIG_USB_USBNET=y +# CONFIG_USB_NET_AX8817X is not set +# CONFIG_USB_NET_CDCETHER is not set +# CONFIG_USB_NET_CDC_EEM is not set +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_SMSC75XX is not set +CONFIG_USB_NET_SMSC95XX=y +# CONFIG_USB_NET_GL620A is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +CONFIG_INPUT_POLLDEV=y +# CONFIG_INPUT_SPARSEKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=m +# CONFIG_KEYBOARD_TCA6416 is not set +CONFIG_KEYBOARD_MATRIX=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_MXS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_DEVKMEM=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +CONFIG_MXS_VIIM=y + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_MXS_DUART=y +CONFIG_SERIAL_MXS_AUART=y +# CONFIG_SERIAL_MXS_AUART_CONSOLE is not set +CONFIG_SERIAL_MXS_DUART_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_FSL_OTP is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +# CONFIG_I2C_CHARDEV is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_MXS is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# PPS support +# +# CONFIG_PPS is not set +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# +# CONFIG_GPIO_IT8761E is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# +# CONFIG_W1 is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +CONFIG_BATTERY_MXS=y +CONFIG_MXS_VBUS_CURRENT_DRAW=y +# CONFIG_BATTERY_DS2438 is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_MXS_WATCHDOG=y +# CONFIG_MAX63XX_WATCHDOG is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_MFD_SUPPORT=y +# CONFIG_MFD_CORE is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_TC35892 is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_LTC3589_I2C is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_MAX17135 is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +CONFIG_REGULATOR_MXS=y +CONFIG_MEDIA_SUPPORT=m + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_IR_CORE=m +CONFIG_VIDEO_IR=m +# CONFIG_RC_MAP is not set +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_IMON is not set +# CONFIG_MEDIA_ATTACH is not set +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_IR_I2C=m +# CONFIG_VIDEO_MXS_PXP is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +# CONFIG_USB_GSPCA is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_VICAM is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +CONFIG_FB_MXS=y +# CONFIG_FB_MXS_LCD_43WVF1G is not set +# CONFIG_FB_MXS_LCD_LMS430 is not set +CONFIG_FB_MXS_TVENC=y +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE is not set +# CONFIG_LOGO is not set +CONFIG_SOUND=y +# CONFIG_SOUND_OSS_CORE is not set +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_JACK=y +# CONFIG_SND_SEQUENCER is not set +# CONFIG_SND_MIXER_OSS is not set +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_HRTIMER=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_USB is not set +CONFIG_SND_SOC=y +CONFIG_SND_MXS_SOC=y +CONFIG_SND_MXS_SOC_EVK_ADC=y +CONFIG_SND_MXS_SOC_ADC=y +# CONFIG_SND_MXS_SOC_EVK_DEVB_SPDIF is not set +CONFIG_SND_SOC_I2C_AND_SPI=y +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_MXS_ADC_CODEC=y +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set + +# +# Special HID drivers +# +# CONFIG_HID_3M_PCT is not set +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CANDO is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EGALAX is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LOGITECH is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MOSART is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_QUANTA is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_ROCCAT_KONE is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SONY is not set +# CONFIG_HID_STANTUM is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +CONFIG_USB_DEBUG=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=y +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ARC=y +CONFIG_USB_EHCI_ARC_OTG=y +# CONFIG_USB_STATIC_IRAM is not set +# CONFIG_USB_EHCI_FSL_MC13783 is not set +# CONFIG_USB_EHCI_FSL_1301 is not set +# CONFIG_USB_EHCI_FSL_1504 is not set +CONFIG_USB_EHCI_FSL_UTMI=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HWA_HCD is not set +# CONFIG_USB_MUSB_HDRC is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +CONFIG_USB_LIBUSUAL=y + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ULPI is not set +# CONFIG_NOP_USB_XCEIV is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_UNSAFE_RESUME=y + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_SDHCI is not set +# CONFIG_MMC_IMX_ESDHCI_PIO_MODE is not set +CONFIG_MMC_MXS=y +CONFIG_MMC_MXS_NODETECT=y +# CONFIG_MEMSTICK is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_ACCESSIBILITY is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_MXS=y +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_STAGING is not set + +# +# File systems +# +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_XATTR=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +# CONFIG_EXT4_FS_SECURITY is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m +# CONFIG_CUSE is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_NETWORK_FILESYSTEMS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y +# CONFIG_DLM is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_ARM_UNWIND=y +# CONFIG_DEBUG_USER is not set +# CONFIG_OC_ETM is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +# CONFIG_SECURITYFS is not set +# CONFIG_SECURITY_NETWORK is not set +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_IMA is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_SMACK is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_TESTS=y +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_WORKQUEUE=y +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_CRYPTODEV=y + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +CONFIG_CRYPTO_LZO=y + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_DCP=y +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y diff --git a/core/kernel26-olinuxino/dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch b/core/kernel26-olinuxino/dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch new file mode 100644 index 000000000..6a2a94082 --- /dev/null +++ b/core/kernel26-olinuxino/dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch @@ -0,0 +1,32 @@ +dm9601: Added support for usb ethernet (0x0fe6, 0x9700) + +The device is very similar to (0x0fe6, 0x8101), +And works well with dm9601 driver. + +Upstream-Status: Backport [2.6.38] + +Signed-off-by: Shahar Havivi +Acked-by: Peter Korsgaard +Signed-off-by: David S. Miller +--- + drivers/net/usb/dm9601.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c +index 02b622e..5002f5b 100644 +--- a/drivers/net/usb/dm9601.c ++++ b/drivers/net/usb/dm9601.c +@@ -651,6 +651,10 @@ static const struct usb_device_id products[] = { + .driver_info = (unsigned long)&dm9601_info, + }, + { ++ USB_DEVICE(0x0fe6, 0x9700), /* DM9601 USB to Fast Ethernet Adapter */ ++ .driver_info = (unsigned long)&dm9601_info, ++ }, ++ { + USB_DEVICE(0x0a46, 0x9000), /* DM9000E */ + .driver_info = (unsigned long)&dm9601_info, + }, +-- +1.7.10 + diff --git a/core/kernel26-olinuxino/egalax_ts-enable-single-event-support.patch b/core/kernel26-olinuxino/egalax_ts-enable-single-event-support.patch new file mode 100644 index 000000000..e07a15d7d --- /dev/null +++ b/core/kernel26-olinuxino/egalax_ts-enable-single-event-support.patch @@ -0,0 +1,30 @@ +From ebe473696da4f4de48b973c93c8bd32300baa818 Mon Sep 17 00:00:00 2001 +From: Adrian Alonso +Date: Wed, 24 Aug 2011 16:11:14 -0500 +Subject: [PATCH] egalax_ts: enable single event support + +* Enable single event support for Ubuntu and + Sato desktop touchscreen support + +Signed-off-by: Adrian Alonso +--- + drivers/input/touchscreen/egalax_ts.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c +index 58273b9..05c9c49 100644 +--- a/drivers/input/touchscreen/egalax_ts.c ++++ b/drivers/input/touchscreen/egalax_ts.c +@@ -57,6 +57,9 @@ + + #define MAX_I2C_DATA_LEN 10 + ++/* Enable single touch event mode */ ++#define FORCE_SINGLE_POINTER_SUPPORT 1 ++ + struct egalax_pointer { + bool valid; + bool status; +-- +1.7.4.1 + diff --git a/core/kernel26-olinuxino/imx233-olinuxino.patch b/core/kernel26-olinuxino/imx233-olinuxino.patch new file mode 100644 index 000000000..2c13e5d6f --- /dev/null +++ b/core/kernel26-olinuxino/imx233-olinuxino.patch @@ -0,0 +1,864 @@ +imx233-olinuxino: add machine configuration support + +This includes the board support on the kernel. + +Upstream-Status: Pending + +Signed-off-by: Raivis Rengelis + +diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/device.c linux-2.6.31/arch/arm/mach-mx23/device.c +--- linux-2.6.31.orig/arch/arm/mach-mx23/device.c 2012-04-09 19:25:44.278144145 +0300 ++++ linux-2.6.31/arch/arm/mach-mx23/device.c 2012-04-09 20:00:49.704584387 +0300 +@@ -45,6 +45,7 @@ + #include "device.h" + #include "mx23_pins.h" + #include "mx23evk.h" ++#include "imx233_olinuxino.h" + #include "mach/mx23.h" + + #if defined(CONFIG_SERIAL_MXS_DUART) || \ +diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino.c linux-2.6.31/arch/arm/mach-mx23/imx233_olinuxino.c +--- linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino.c 1970-01-01 03:00:00.000000000 +0300 ++++ linux-2.6.31/arch/arm/mach-mx23/imx233_olinuxino.c 2012-04-09 20:10:26.315443645 +0300 +@@ -0,0 +1,96 @@ ++/* ++ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv ++ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "device.h" ++#include "imx233_olinuxino.h" ++#include "mx23_pins.h" ++ ++static void __init fixup_board(struct machine_desc *desc, struct tag *tags, ++ char **cmdline, struct meminfo *mi) ++{ ++ mx23_set_input_clk(24000000, 24000000, 32000, 50000000); ++} ++ ++#if defined(CONFIG_SND_MXS_SOC_ADC) || defined(CONFIG_SND_MXS_SOC_ADC_MODULE) ++static void __init imx233_olinuxino_init_adc(void) ++{ ++ struct platform_device *pdev; ++ pdev = mxs_get_device("mxs-adc", 0); ++ if (pdev == NULL) ++ return; ++ mxs_add_device(pdev, 3); ++} ++#else ++static void __init imx233_olinuxino_init_adc(void) ++{ ++ ++} ++#endif ++ ++static void __init imx233_olinuxino_device_init(void) ++{ ++ imx233_olinuxino_init_adc(); ++} ++ ++ ++static void __init imx233_olinuxino_init_machine(void) ++{ ++ mx23_pinctrl_init(); ++ ++ /* Init iram allocate */ ++#ifdef CONFIG_VECTORS_PHY_ADDR ++ /* reserve the first page for irq vectors table*/ ++ iram_init(MX23_OCRAM_PHBASE + PAGE_SIZE, MX23_OCRAM_SIZE - PAGE_SIZE); ++#else ++ iram_init(MX23_OCRAM_PHBASE, MX23_OCRAM_SIZE); ++#endif ++ ++ mx23_gpio_init(); ++ imx233_olinuxino_pins_init(); ++ mx23_device_init(); ++ imx233_olinuxino_device_init(); ++} ++ ++MACHINE_START(IMX233_OLINUXINO, "iMX233-OLinuXino low cost board") ++ .phys_io = 0x80000000, ++ .io_pg_offst = ((0xf0000000) >> 18) & 0xfffc, ++ .boot_params = 0x40000100, ++ .fixup = fixup_board, ++ .map_io = mx23_map_io, ++ .init_irq = mx23_irq_init, ++ .init_machine = imx233_olinuxino_init_machine, ++ .timer = &mx23_timer.timer, ++MACHINE_END +diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino.h linux-2.6.31/arch/arm/mach-mx23/imx233_olinuxino.h +--- linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino.h 1970-01-01 03:00:00.000000000 +0300 ++++ linux-2.6.31/arch/arm/mach-mx23/imx233_olinuxino.h 2012-04-10 12:14:33.630292991 +0300 +@@ -0,0 +1,29 @@ ++/* ++ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv ++ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++#ifndef __ASM_ARM_MACH_IMX233_OLINUXINO_H ++#define __ASM_ARM_MACH_IMX233_OLINUXINO_H ++ ++extern void __init imx233_olinuxino_pins_init(void); ++extern int mxs_mmc_hw_init_mmc0(void); ++extern int mxs_mmc_get_wp_mmc0(void); ++extern void mxs_mmc_hw_release_mmc0(void); ++extern void mxs_mmc_cmd_pullup_mmc0(int enable); ++ ++#endif /* __ASM_ARM_MACH_IMX233_OLINUXINO_H */ +diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino_pins.c linux-2.6.31/arch/arm/mach-mx23/imx233_olinuxino_pins.c +--- linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino_pins.c 1970-01-01 03:00:00.000000000 +0300 ++++ linux-2.6.31/arch/arm/mach-mx23/imx233_olinuxino_pins.c 2012-04-20 20:07:11.618237832 +0300 +@@ -0,0 +1,638 @@ ++/* ++ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv ++ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "mx23_pins.h" ++ ++static struct pin_desc imx233_olinuxino_fixed_pins[] = { ++ { ++ .name = "DUART.RX", ++ .id = PINID_PWM0, ++ .fun = PIN_FUN3, ++ }, ++ { ++ .name = "DUART.TX", ++ .id = PINID_PWM1, ++ .fun = PIN_FUN3, ++ }, ++#ifdef CONFIG_MXS_AUART1_DEVICE_ENABLE ++ { ++ .name = "AUART1.RX", ++ .id = PINID_I2C_SDA, ++ .fun = PIN_FUN3, ++ }, ++ { ++ .name = "AUART1.TX", ++ .id = PINID_I2C_SCL, ++ .fun = PIN_FUN3, ++ }, ++#else ++ { ++ .name = "UEXT.4", ++ .id = PINID_I2C_SDA, ++ .fun = PIN_GPIO, ++ .voltage = PAD_3_3V, ++ .strength = PAD_8MA, ++ .drive = 1, ++ }, ++ { ++ .name = "UEXT.3", ++ .id = PINID_I2C_SCL, ++ .fun = PIN_GPIO, ++ .voltage = PAD_3_3V, ++ .strength = PAD_8MA, ++ .drive = 1, ++ }, ++#endif ++ ++#if defined(CONFIG_I2C_MXS) || \ ++ defined(CONFIG_I2C_MXS_MODULE) ++ { ++ .name = "I2C_SCL", ++ .id = PINID_LCD_ENABLE, ++ .fun = PIN_FUN2, ++ .strength = PAD_4MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "I2C_SDA", ++ .id = PINID_LCD_HSYNC, ++ .fun = PIN_FUN2, ++ .strength = PAD_4MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++#else ++ { ++ .name = "UEXT.5", ++ .id = PINID_LCD_ENABLE, ++ .fun = PIN_GPIO, ++ .voltage = PAD_3_3V, ++ .strength = PAD_12MA, ++ .drive = 1, ++ }, ++ { ++ .name = "UEXT.6", ++ .id = PINID_LCD_HSYNC, ++ .fun = PIN_GPIO, ++ .voltage = PAD_3_3V, ++ .strength = PAD_12MA, ++ .drive = 1, ++ }, ++#endif ++#if defined(CONFIG_FB_MXS) || defined(CONFIG_FB_MXS_MODULE) ++ { ++ .name = "LCD_D00", ++ .id = PINID_LCD_D00, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D01", ++ .id = PINID_LCD_D01, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D02", ++ .id = PINID_LCD_D02, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D03", ++ .id = PINID_LCD_D03, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D04", ++ .id = PINID_LCD_D04, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D05", ++ .id = PINID_LCD_D05, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D06", ++ .id = PINID_LCD_D06, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_D07", ++ .id = PINID_LCD_D07, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_RESET", ++ .id = PINID_LCD_RESET, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_VSYNC", ++ .id = PINID_LCD_VSYNC, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_HSYNC", ++ .id = PINID_LCD_HSYNC, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_ENABLE", ++ .id = PINID_LCD_ENABLE, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "LCD_DOTCLK", ++ .id = PINID_LCD_DOTCK, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++#else ++ { ++ .name = "GPIO.35", ++ .id = PINID_LCD_D00, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.33", ++ .id = PINID_LCD_D01, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.31", ++ .id = PINID_LCD_D02, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.29", ++ .id = PINID_LCD_D03, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.27", ++ .id = PINID_LCD_D04, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.25", ++ .id = PINID_LCD_D05, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.23", ++ .id = PINID_LCD_D06, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.21", ++ .id = PINID_LCD_D07, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.14", ++ .id = PINID_LCD_RESET, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.08", ++ .id = PINID_LCD_VSYNC, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.06", ++ .id = PINID_LCD_DOTCK, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++#endif ++ { ++ .name = "GPIO.30", ++ .id = PINID_GPMI_CE0N, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.28", ++ .id = PINID_GPMI_CE1N, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.26", ++ .id = PINID_GPMI_WPN, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.24", ++ .id = PINID_GPMI_RDN, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "UEXT.9", ++ .id = PINID_GPMI_WRN, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "UEXT.10", ++ .id = PINID_GPMI_RDY0, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "UEXT.8", ++ .id = PINID_GPMI_RDY1, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.04", ++ .id = PINID_GPMI_ALE, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ .output = 1, ++ .data = 1, ++ }, ++ { ++ .name = "GPIO.03", ++ .id = PINID_GPMI_CLE, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.05", ++ .id = PINID_GPMI_D07, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.07", ++ .id = PINID_GPMI_D06, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.09", ++ .id = PINID_GPMI_D05, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.11", ++ .id = PINID_GPMI_D04, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.13", ++ .id = PINID_GPMI_D03, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.15", ++ .id = PINID_GPMI_D02, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.17", ++ .id = PINID_GPMI_D01, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.19", ++ .id = PINID_GPMI_D00, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.16", ++ .id = PINID_LCD_WR, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.18", ++ .id = PINID_LCD_RS, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++ { ++ .name = "GPIO.20", ++ .id = PINID_LCD_CS, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ }, ++#if defined(CONFIG_MMC_MXS_NODETECT) ++ { ++ .name = "LED1", ++ .id = PINID_SSP1_DETECT, ++ .fun = PIN_GPIO, ++ .strength = PAD_12MA, ++ .voltage = PAD_3_3V, ++ .drive = 1, ++ .output = 1, ++ .data = 1, ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_MMC_MXS) || defined(CONFIG_MMC_MXS_MODULE) ++static struct pin_desc imx233_olinuxino_mmc_pins[] = { ++ /* Configurations of SSP0 SD/MMC port pins */ ++ { ++ .name = "SSP1_DATA0", ++ .id = PINID_SSP1_DATA0, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .pullup = 1, ++ .drive = 1, ++ .pull = 1, ++ }, ++ { ++ .name = "SSP1_DATA1", ++ .id = PINID_SSP1_DATA1, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .pullup = 1, ++ .drive = 1, ++ .pull = 1, ++ }, ++ { ++ .name = "SSP1_DATA2", ++ .id = PINID_SSP1_DATA2, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .pullup = 1, ++ .drive = 1, ++ .pull = 1, ++ }, ++ { ++ .name = "SSP1_DATA3", ++ .id = PINID_SSP1_DATA3, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .pullup = 1, ++ .drive = 1, ++ .pull = 1, ++ }, ++ { ++ .name = "SSP1_CMD", ++ .id = PINID_SSP1_CMD, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .pullup = 1, ++ .drive = 1, ++ .pull = 1, ++ }, ++ { ++ .name = "SSP1_SCK", ++ .id = PINID_SSP1_SCK, ++ .fun = PIN_FUN1, ++ .strength = PAD_8MA, ++ .voltage = PAD_3_3V, ++ .pullup = 0, ++ .drive = 1, ++ .pull = 0, ++ }, ++}; ++#endif ++ ++static void mxs_request_pins(struct pin_desc *pins, int nr) ++{ ++ int i; ++ struct pin_desc *pin; ++ ++ /* configure the pins */ ++ for (i = 0; i < nr; i++) { ++ pin = &pins[i]; ++ if (pin->fun == PIN_GPIO) ++ { ++ gpio_request(MXS_PIN_TO_GPIO(pin->id), pin->name); ++ gpio_export(MXS_PIN_TO_GPIO(pin->id), true); ++ } ++ else ++ mxs_request_pin(pin->id, pin->fun, pin->name); ++ if (pin->drive) { ++ mxs_set_strength(pin->id, pin->strength, pin->name); ++ mxs_set_voltage(pin->id, pin->voltage, pin->name); ++ } ++ if (pin->pull) ++ mxs_set_pullup(pin->id, pin->pullup, pin->name); ++ if (pin->fun == PIN_GPIO) { ++ if (pin->output) ++ gpio_direction_output(MXS_PIN_TO_GPIO(pin->id), ++ pin->data); ++ else ++ gpio_direction_input(MXS_PIN_TO_GPIO(pin->id)); ++ } ++ } ++} ++ ++static void mxs_release_pins(struct pin_desc *pins, int nr) ++{ ++ int i; ++ struct pin_desc *pin; ++ ++ /* release the pins */ ++ for (i = 0; i < nr; i++) { ++ pin = &pins[i]; ++ if (pin->fun == PIN_GPIO) ++ gpio_free(MXS_PIN_TO_GPIO(pin->id)); ++ else ++ mxs_release_pin(pin->id, pin->name); ++ } ++} ++ ++#if defined(CONFIG_MMC_MXS) || defined(CONFIG_MMC_MXS_MODULE) ++int mxs_mmc_hw_init_mmc0(void) ++{ ++ int ret = 0; ++ ++ mxs_request_pins(imx233_olinuxino_mmc_pins, ARRAY_SIZE(imx233_olinuxino_mmc_pins)); ++ mdelay(100); ++ ++ return 0; ++} ++ ++int mxs_mmc_get_wp_mmc0(void) ++{ ++ return 0; ++} ++ ++void mxs_mmc_hw_release_mmc0(void) ++{ ++ mxs_release_pins(imx233_olinuxino_mmc_pins, ARRAY_SIZE(imx233_olinuxino_mmc_pins)); ++} ++ ++void mxs_mmc_cmd_pullup_mmc0(int enable) ++{ ++ mxs_set_pullup(PINID_SSP1_CMD, enable, "mmc0_cmd"); ++} ++#else ++int mxs_mmc_hw_init_mmc0(void) ++{ ++ return 0; ++} ++ ++int mxs_mmc_get_wp_mmc0(void) ++{ ++} ++ ++void mxs_mmc_hw_release_mmc0(void) ++{ ++} ++ ++void mxs_mmc_cmd_pullup_mmc0(int enable) ++{ ++} ++#endif ++ ++void __init imx233_olinuxino_pins_init(void) ++{ ++ mxs_request_pins(imx233_olinuxino_fixed_pins, ARRAY_SIZE(imx233_olinuxino_fixed_pins)); ++} +diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/Kconfig linux-2.6.31/arch/arm/mach-mx23/Kconfig +--- linux-2.6.31.orig/arch/arm/mach-mx23/Kconfig 2012-04-09 19:25:44.446144985 +0300 ++++ linux-2.6.31/arch/arm/mach-mx23/Kconfig 2012-04-20 20:22:31.022796911 +0300 +@@ -6,6 +6,13 @@ config MACH_MX23EVK + depends on ARCH_MX23 + select USB_ARCH_HAS_EHCI + ++config MACH_IMX233_OLINUXINO ++ bool "iMX233-OLinuXino low cost board" ++ depends on ARCH_MX23 ++ select USB_ARCH_HAS_EHCI ++ select MMC_MXS ++ select MMC_MXS_NODETECT ++ + endchoice + + +diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/Makefile linux-2.6.31/arch/arm/mach-mx23/Makefile +--- linux-2.6.31.orig/arch/arm/mach-mx23/Makefile 2012-04-09 19:25:44.350144508 +0300 ++++ linux-2.6.31/arch/arm/mach-mx23/Makefile 2012-04-09 19:58:27.211877809 +0300 +@@ -5,6 +5,7 @@ obj-y += pinctrl.o clock.o device.o seri + + # Board select + obj-$(CONFIG_MACH_MX23EVK) += mx23evk.o mx23evk_pins.o ++obj-$(CONFIG_MACH_IMX233_OLINUXINO) += imx233_olinuxino.o imx233_olinuxino_pins.o + obj-$(CONFIG_GENERIC_GPIO) += gpio.o + obj-$(CONFIG_MXS_RAM_FREQ_SCALING) +=emi.o + obj-$(CONFIG_MXS_UNIQUE_ID_OTP) += otp.o +diff -rupN linux-2.6.31.orig/arch/arm/tools/mach-types linux-2.6.31/arch/arm/tools/mach-types +--- linux-2.6.31.orig/arch/arm/tools/mach-types 2012-04-09 19:25:41.182128849 +0300 ++++ linux-2.6.31/arch/arm/tools/mach-types 2012-04-09 19:37:16.381576093 +0300 +@@ -3257,3 +3257,4 @@ armadillo460 MACH_ARMADILLO460 ARMADILL + lq2 MACH_LQ2 LQ2 3271 + sweda_tms2 MACH_SWEDA_TMS2 SWEDA_TMS2 3272 + mx53_loco MACH_MX53_LOCO MX53_LOCO 3273 ++imx233_olinuxino MACH_IMX233_OLINUXINO IMX233_OLINUXINO 4105 +diff -rupN linux-2.6.31.orig/drivers/mmc/host/Kconfig linux-2.6.31/drivers/mmc/host/Kconfig +--- linux-2.6.31.orig/drivers/mmc/host/Kconfig 2012-04-09 19:24:49.213871096 +0300 ++++ linux-2.6.31/drivers/mmc/host/Kconfig 2012-04-20 20:27:16.360211824 +0300 +@@ -303,6 +303,14 @@ config MMC_MXS + + If unsure, say N. + ++config MMC_MXS_NODETECT ++ bool "Ignore card detection status on MXS MMC interface" ++ depends on MMC_MXS ++ help ++ This disables card presence detection in MXS MMC slot. ++ If only boot device is MMC card and/or you want to use ++ SSP_DETECT pin as GPIO, say Y here. ++ + config MMC_S3C + tristate "Samsung S3C SD/MMC Card Interface support" + depends on ARCH_S3C2410 +diff -rupN linux-2.6.31.orig/drivers/mmc/host/mxs-mmc.c linux-2.6.31/drivers/mmc/host/mxs-mmc.c +--- linux-2.6.31.orig/drivers/mmc/host/mxs-mmc.c 2012-04-09 19:24:49.177870911 +0300 ++++ linux-2.6.31/drivers/mmc/host/mxs-mmc.c 2012-04-20 20:07:20.570282222 +0300 +@@ -155,8 +155,12 @@ static int mxs_mmc_get_ro(struct mmc_hos + /* Detect if card is plugged */ + static inline int mxs_mmc_is_plugged(struct mxs_mmc_host *host) + { ++#if defined(CONFIG_MMC_MXS_NODETECT) ++ return 1; ++#else + u32 status = __raw_readl(host->ssp_base + HW_SSP_STATUS); + return !(status & BM_SSP_STATUS_CARD_DETECT); ++#endif + } + + /* Card detection polling function */ diff --git a/core/kernel26-olinuxino/kernel26.install b/core/kernel26-olinuxino/kernel26.install new file mode 100644 index 000000000..745b8a1a8 --- /dev/null +++ b/core/kernel26-olinuxino/kernel26.install @@ -0,0 +1,42 @@ +KERNEL_NAME=-olinuxino +KERNEL_VERSION=2.6.35-4-OLinuXino-ARCH+ + +flush_kernel() { + echo "Do you want the new kernel flashed onto mmcblk0p1? [y|N] " + # something traps the last line of output, so users can't see the + # question ... + read -r shouldwe + if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then + echo "Writing the kernel image on /dev/mmcblk0p1 ..." + # this first dd is probably unnecessary + #dd if=/dev/zero of=/dev/mmcblk0p1 bs=512 count=4 + dd if=/boot/oli-${KERNEL_VERSION}.sb of=/dev/mmcblk0p1 ibs=512 seek=4 conv=sync,notrunc + fi +} + +## arg 1: the new package version +post_install() { + flush_kernel + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod ${KERNEL_VERSION} + +} + +## arg 1: the new package version +## arg 2: the old package version +post_upgrade() { + flush_kernel + if grep "^[^#]*[[:space:]]/boot" etc/fstab 2>&1 >/dev/null; then + if ! grep "[[:space:]]/boot" etc/mtab 2>&1 >/dev/null; then + echo "WARNING: /boot appears to be a seperate partition but is not mounted." + echo " You probably just broke your system. Congratulations." + fi + fi + + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod ${KERNEL_VERSION} +} + +# vim:set ts=2 sw=2 et: diff --git a/core/kernel26-olinuxino/mx28-removecpufreq.patch b/core/kernel26-olinuxino/mx28-removecpufreq.patch new file mode 100644 index 000000000..0b7134b36 --- /dev/null +++ b/core/kernel26-olinuxino/mx28-removecpufreq.patch @@ -0,0 +1,79 @@ +From 7b781d1a67486a2ae50c174731ca1daebf381ab4 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Fri, 23 Mar 2012 13:13:49 -0300 +Subject: [PATCH] ARM: mx28: Remove CPUFREQ support + +When using CPUFREQ driver with the mainline U-boot, the kernel hangs. + +Remove CPUFREQ support for now. + +Signed-off-by: Fabio Estevam +--- + arch/arm/configs/imx28evk_defconfig | 1 - + arch/arm/plat-mxs/Kconfig | 2 -- + arch/arm/plat-mxs/clock.c | 10 ---------- + 3 files changed, 0 insertions(+), 13 deletions(-) + +diff --git a/arch/arm/configs/imx28evk_defconfig b/arch/arm/configs/imx28evk_defconfig +index 08f6a18..0c8bc66 100644 +--- a/arch/arm/configs/imx28evk_defconfig ++++ b/arch/arm/configs/imx28evk_defconfig +@@ -18,7 +18,6 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y + CONFIG_HARDIRQS_SW_RESEND=y + CONFIG_GENERIC_IRQ_PROBE=y + CONFIG_RWSEM_GENERIC_SPINLOCK=y +-CONFIG_ARCH_HAS_CPUFREQ=y + CONFIG_GENERIC_HWEIGHT=y + CONFIG_GENERIC_CALIBRATE_DELAY=y + CONFIG_ZONE_DMA=y +diff --git a/arch/arm/plat-mxs/Kconfig b/arch/arm/plat-mxs/Kconfig +index 831a24b..63768f8 100644 +--- a/arch/arm/plat-mxs/Kconfig ++++ b/arch/arm/plat-mxs/Kconfig +@@ -13,7 +13,6 @@ config ARCH_MX28 + select MXS_ICOLL + select MXS_DMA_ENGINE + select MXS_AUART_DMA_SUPPORT +- select ARCH_HAS_CPUFREQ + ---help--- + Support Freescale MX28 chips + +@@ -25,7 +24,6 @@ config ARCH_MX23 + select MXS_ICOLL + select MXS_DMA_ENGINE + select MXS_AUART_DMA_SUPPORT +- select ARCH_HAS_CPUFREQ + ---help--- + Support Freescale MX23 chips + +diff --git a/arch/arm/plat-mxs/clock.c b/arch/arm/plat-mxs/clock.c +index 1b98b1e..3ce7953 100644 +--- a/arch/arm/plat-mxs/clock.c ++++ b/arch/arm/plat-mxs/clock.c +@@ -119,11 +119,6 @@ int clk_enable(struct clk *clk) + + ret = __clk_enable(clk); + spin_unlock_irqrestore(&clockfw_lock, flags); +- if ((clk->flags & CPU_FREQ_TRIG_UPDATE) +- && (pre_usage == 0)) { +- cpufreq_trig_needed = 1; +- cpufreq_update_policy(0); +- } + return ret; + } + EXPORT_SYMBOL(clk_enable); +@@ -139,11 +134,6 @@ void clk_disable(struct clk *clk) + spin_lock_irqsave(&clockfw_lock, flags); + __clk_disable(clk); + spin_unlock_irqrestore(&clockfw_lock, flags); +- if ((clk->flags & CPU_FREQ_TRIG_UPDATE) +- && ((clk->ref & CLK_EN_MASK) == 0)) { +- cpufreq_trig_needed = 1; +- cpufreq_update_policy(0); +- } + } + EXPORT_SYMBOL(clk_disable); + +-- +1.7.1 + diff --git a/core/kernel26-olinuxino/mxs-duart-use-ttyAMA-for-device-name.patch b/core/kernel26-olinuxino/mxs-duart-use-ttyAMA-for-device-name.patch new file mode 100644 index 000000000..6b89bb66a --- /dev/null +++ b/core/kernel26-olinuxino/mxs-duart-use-ttyAMA-for-device-name.patch @@ -0,0 +1,42 @@ +From e0b2222000d04b43e7892148dc9892c9375de939 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Sat, 5 May 2012 15:04:24 -0300 +Subject: [PATCH] mxs-duart: use ttyAMA for device name + +This allow to easy configuration of u-boot avoiding divergences +between Freescale's and mainline kernels. + +Upstream-Status: Inapropriate [configuration] + +Signed-off-by: Otavio Salvador +--- + drivers/serial/mxs-duart.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/serial/mxs-duart.c b/drivers/serial/mxs-duart.c +index 64e5057..2ba0c33 100644 +--- a/drivers/serial/mxs-duart.c ++++ b/drivers/serial/mxs-duart.c +@@ -665,7 +665,7 @@ static int __init duart_console_setup(struct console *co, char *options) + } + + static struct console duart_console = { +- .name = "ttyAM", ++ .name = "ttyAMA", + .write = duart_console_write, + .device = uart_console_device, + .setup = duart_console_setup, +@@ -688,8 +688,8 @@ console_initcall(duart_console_init); + + static struct uart_driver duart_drv = { + .owner = THIS_MODULE, +- .driver_name = "ttyAM", +- .dev_name = "ttyAM", ++ .driver_name = "ttyAMA", ++ .dev_name = "ttyAMA", + .major = SERIAL_DUART_MAJOR, + .minor = SERIAL_DUART_MINOR, + .nr = 1, +-- +1.7.10 + diff --git a/core/kernel26-olinuxino/no-unaligned-access.patch b/core/kernel26-olinuxino/no-unaligned-access.patch new file mode 100644 index 000000000..23fe71ea6 --- /dev/null +++ b/core/kernel26-olinuxino/no-unaligned-access.patch @@ -0,0 +1,40 @@ +diff --git a/Makefile b/Makefile +index 554683d..087e0c0 100644 +--- a/Makefile ++++ b/Makefile +@@ -535,6 +535,9 @@ else + KBUILD_CFLAGS += -O2 + endif + ++# conserve stack if available ++KBUILD_CFLAGS += $(call cc-option,-fconserve-stack) ++ + include $(srctree)/arch/$(SRCARCH)/Makefile + + ifneq ($(CONFIG_FRAME_WARN),0) +@@ -579,9 +582,6 @@ KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) + # disable invalid "can't wrap" optimizations for signed / pointers + KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow) + +-# conserve stack if available +-KBUILD_CFLAGS += $(call cc-option,-fconserve-stack) +- + # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments + # But warn user when we do so + warn-assign = \ +diff --git a/arch/arm/Makefile b/arch/arm/Makefile +index 767874d..89afaea 100644 +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -93,6 +93,11 @@ ifeq ($(CONFIG_ARM_UNWIND),y) + CFLAGS_ABI +=-funwind-tables + endif + ++ifeq ($(CONFIG_ALIGNMENT_TRAP),y) ++CFLAGS_ABI +=$(call cc-option,-mno-unaligned-access,) ++endif ++KBUILD_CFLAGS += $(call cc-option,-fno-conserve-stack,) ++ + ifeq ($(CONFIG_THUMB2_KERNEL),y) + AFLAGS_AUTOIT :=$(call as-option,-Wa$(comma)-mimplicit-it=always,-Wa$(comma)-mauto-it) + AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W) diff --git a/core/kernel26-olinuxino/smsc95xx-randomize-mac-once.patch b/core/kernel26-olinuxino/smsc95xx-randomize-mac-once.patch new file mode 100644 index 000000000..18a5a7eb2 --- /dev/null +++ b/core/kernel26-olinuxino/smsc95xx-randomize-mac-once.patch @@ -0,0 +1,51 @@ +smsc95xx: generate random MAC address once, not every ifup + +The smsc95xx driver currently generates a new random MAC address +every time the interface is brought up. This makes it impossible to +override using the standard `ifconfig hw ether` approach. + +Past patches tried to make the MAC address a module parameter or +base it off the die ID, but it seems to me much simpler (and +hopefully less controversial) to stick with the current random +generation scheme, but allow the user to change the address. + +This patch does exactly that - it moves the random address +generation from smsc95xx_reset() into smsc95xx_bind(), so that it is +done once on module load, not on every ifup. The user can then +override this using the standard mechanisms. + +Applies against 2.6.35 and linux-2.6 head. + +Upstream-Status: Backport [2.6.36] + +Signed-off-by: Bernard Blackham +Signed-off-by: David S. Miller +--- + drivers/net/usb/smsc95xx.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index 12a3c88..65cb1ab 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -805,8 +805,6 @@ static int smsc95xx_reset(struct usbnet *dev) + return ret; + } + +- smsc95xx_init_mac_address(dev); +- + ret = smsc95xx_set_mac_address(dev); + if (ret < 0) + return ret; +@@ -1047,6 +1045,8 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf) + pdata->use_tx_csum = DEFAULT_TX_CSUM_ENABLE; + pdata->use_rx_csum = DEFAULT_RX_CSUM_ENABLE; + ++ smsc95xx_init_mac_address(dev); ++ + /* Init all registers */ + ret = smsc95xx_reset(dev); + +-- +1.7.7.6 + diff --git a/core/kernel26-olinuxino/w1-fix-support-multiple-master.patch b/core/kernel26-olinuxino/w1-fix-support-multiple-master.patch new file mode 100644 index 000000000..9ed730b8d --- /dev/null +++ b/core/kernel26-olinuxino/w1-fix-support-multiple-master.patch @@ -0,0 +1,79 @@ +drivers/w1/w1_int.c: multiple masters used same init_name + +When using multiple masters, w1_int.c would use the .init_name from w1.c +for all entities, which will fail when creating a corresponding sysfs +entry. This patch uses the unique name previously generated. + + WARNING: at fs/sysfs/dir.c:451 sysfs_add_one+0x48/0x64() + sysfs: cannot create duplicate filename '/devices/w1 bus master' + Modules linked in: + Call trace: + [<9001a604>] warn_slowpath_common+0x34/0x44 + [<9001a64c>] warn_slowpath_fmt+0x14/0x18 + [<90078020>] sysfs_add_one+0x48/0x64 + [<900784ec>] create_dir+0x40/0x68 + [<9007857a>] sysfs_create_dir+0x66/0x78 + [<900c1a8a>] kobject_add_internal+0x6e/0x104 + [<900c1bc0>] kobject_add_varg+0x20/0x2c + [<900c1c1c>] kobject_add+0x30/0x3c + [<900dbd66>] device_add+0x6a/0x378 + [<900dbb4a>] device_initialize+0x12/0x48 + [<900dc080>] device_register+0xc/0x10 + [<900f99be>] w1_add_master_device+0x162/0x274 + [<90008e7a>] w1_gpio_probe+0x66/0xb4 + [<9000030c>] kernel_init+0x0/0xe8 + [<900dde54>] platform_drv_probe+0xc/0xe + [<9000030c>] kernel_init+0x0/0xe8 + [<900dd4f8>] driver_probe_device+0x6c/0xdc + [<900dd5fc>] __driver_attach+0x34/0x48 + [<900dcce8>] bus_for_each_dev+0x2c/0x48 + [<900dd5c8>] __driver_attach+0x0/0x48 + [<900dd38c>] driver_attach+0x10/0x14 + [<900dd16a>] bus_add_driver+0x6a/0x18c + [<900dd768>] driver_register+0x60/0xb8 + [<90011594>] __initcall_w1_therm_init6+0x0/0x4 + [<90008e00>] w1_gpio_init+0x0/0x14 + [<9000030c>] kernel_init+0x0/0xe8 + [<900ddf48>] platform_driver_register+0x30/0x38 + [<90011594>] __initcall_w1_therm_init6+0x0/0x4 + [<90008e00>] w1_gpio_init+0x0/0x14 + [<9000030c>] kernel_init+0x0/0xe8 + [<900ddf5e>] platform_driver_probe+0xe/0x3c + [<90008e0c>] w1_gpio_init+0xc/0x14 + [<90011594>] __initcall_w1_therm_init6+0x0/0x4 + [<90008e00>] w1_gpio_init+0x0/0x14 + [<900126d4>] do_one_initcall+0x34/0x130 + [<90000372>] kernel_init+0x66/0xe8 + [<90011594>] __initcall_w1_therm_init6+0x0/0x4 + [<9001ca3e>] do_exit+0x0/0x3a6 + [<9000030c>] kernel_init+0x0/0xe8 + [<9001ca3e>] do_exit+0x0/0x3a6 + + ---[ end trace 5a9233884fead918 ]--- + kobject_add_internal failed for w1 bus master with -EEXIST, don't try to register things with the same name in the same directory. + +Upstream-Status: Backport [3.2] + +Signed-off-by: Florian Faber +Cc: Evgeniy Polyakov +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +--- + drivers/w1/w1_int.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/w1/w1_int.c b/drivers/w1/w1_int.c +index d220bce..f79e62e 100644 +--- a/drivers/w1/w1_int.c ++++ b/drivers/w1/w1_int.c +@@ -78,6 +78,7 @@ static struct w1_master * w1_alloc_dev(u32 id, int slave_count, int slave_ttl, + memcpy(&dev->dev, device, sizeof(struct device)); + dev_set_name(&dev->dev, "w1_bus_master%u", dev->id); + snprintf(dev->name, sizeof(dev->name), "w1_bus_master%u", dev->id); ++ dev->dev.init_name = dev->name; + + dev->driver = driver; + +-- +1.7.10 + diff --git a/core/kernel26-olinuxino/wire-up-sys_accept4-on-ARM.patch b/core/kernel26-olinuxino/wire-up-sys_accept4-on-ARM.patch new file mode 100644 index 000000000..7182e8070 --- /dev/null +++ b/core/kernel26-olinuxino/wire-up-sys_accept4-on-ARM.patch @@ -0,0 +1,53 @@ +From 1415ec63689ef39bcb24b5095941ec4cc884035c Mon Sep 17 00:00:00 2001 +From: Mikael Pettersson +Date: Sun, 15 Aug 2010 10:47:23 +0100 +Subject: [PATCH 1/2] ARM: 6329/1: wire up sys_accept4() on ARM + +sys_accept4() was added in kernel 2.6.28, but ARM was not updated +to include it. The number and types of parameters is such that +no ARM-specific processing is needed, so wiring up sys_accept4() +just requires defining __NR_accept4 and adding a direct call in +the syscall entry table. + +Tested with an EABI 2.6.35 kernel and Ulrich Drepper's original +accept4() test program, modified to define __NR_accept4 for ARM. + +Using the updated unistd.h also eliminates a warning then building +glibc (2.10.2 and newer) about accept4() being unimplemented. + +Upstream-Status: Backport [2.6.36] + +Signed-off-by: Mikael Pettersson +Signed-off-by: Russell King +--- + arch/arm/include/asm/unistd.h | 1 + + arch/arm/kernel/calls.S | 1 + + 2 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h +index dd2bf53..d02cfb6 100644 +--- a/arch/arm/include/asm/unistd.h ++++ b/arch/arm/include/asm/unistd.h +@@ -392,6 +392,7 @@ + #define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363) + #define __NR_perf_event_open (__NR_SYSCALL_BASE+364) + #define __NR_recvmmsg (__NR_SYSCALL_BASE+365) ++#define __NR_accept4 (__NR_SYSCALL_BASE+366) + + /* + * The following SWIs are ARM private. +diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S +index 37ae301..afeb71f 100644 +--- a/arch/arm/kernel/calls.S ++++ b/arch/arm/kernel/calls.S +@@ -375,6 +375,7 @@ + CALL(sys_rt_tgsigqueueinfo) + CALL(sys_perf_event_open) + /* 365 */ CALL(sys_recvmmsg) ++ CALL(sys_accept4) + #ifndef syscalls_counted + .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls + #define syscalls_counted +-- +1.6.6.1 +