Merge pull request #264 from kikcho/master

olinuxino kernel updates
This commit is contained in:
Kevin Mihelich 2012-09-18 13:29:52 -07:00
commit c107adf49c
30 changed files with 393 additions and 2558 deletions

View file

@ -4,7 +4,7 @@ buildarch=2
pkgname=imx-bootlets-olinuxino
pkgver=10.12.01
pkgrel=3
pkgrel=4
pkgdesc="Bootlets for the i.MX233 Freescale processor"
arch=(arm)
url="http://freescale.com"
@ -15,10 +15,11 @@ source=("http://download.ossystems.com.br/bsp/freescale/source/imx-bootlets-src-
"linux-fix-paths.patch"
"imx233-olinuxino-maxi.patch")
md5sums=('cf0ab3822dca694b930a051501c1d0e4'
'5d2ceded7e8ece6245063098090ac4fe'
'27056e5005be16bfa14ae9ee5233974d'
'a0834e59e0448d6944383bb9e7de524c'
'a3ecd391021d32723c34c955a3e2a0f5')
build() {
cd ${srcdir}/imx-bootlets-src-${pkgver}
patch -Np1 -i ../linux_prep-fix-cmdlines.patch

View file

@ -25,6 +25,6 @@ index 9a717eb..fdb7390 100644
-
-
-
+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=tvenc_pal 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

View file

@ -1,68 +0,0 @@
From 564ac4b9d7da4cc8e6fdca33ca45d19649dc3366 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
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 <eric@eukrea.com>
---
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

View file

@ -1,58 +0,0 @@
From 64bc6f1bfac43096d0102be252392f31405273ec Mon Sep 17 00:00:00 2001
From: Greg KH <gregkh@suse.de>
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 <menage@google.com>
Acked-by: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Lennart Poettering <lennart@poettering.net>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
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

View file

@ -1,23 +0,0 @@
commit 0ffabfea6c190d28e25587c95e282eb777b3feb2
Author: Phil Endecott <git@chezphil.org>
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;

View file

@ -1,50 +0,0 @@
commit 7237ebd59bf1cd8bcc9508ec4bc5674dc7cc6c58
Author: Phil Endecott <git@chezphil.org>
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:

View file

@ -1,41 +0,0 @@
From f7702086585465f6ccaa33ae815535e8ff10f025 Mon Sep 17 00:00:00 2001
From: Zhang Jiejing <jiejing.zhang@freescale.com>
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 <jiejing.zhang@freescale.com>
(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

View file

@ -1,48 +0,0 @@
From 8cece584b73434c1eb76a553424ff5b875fd1022 Mon Sep 17 00:00:00 2001
From: Robin Gong <B38343@freescale.com>
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 <B38343@freescale.com>
(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

View file

@ -1,29 +0,0 @@
From 0fd61785f56c2785b471e1d2dd1071a480380c3f Mon Sep 17 00:00:00 2001
From: Yuxi Sun <b36102@freescale.com>
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 <b36102@freescale.com>
(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

View file

@ -1,33 +0,0 @@
From 3083ae11d58fb7a083663865020c0a763540532b Mon Sep 17 00:00:00 2001
From: Sammy He <r62914@freescale.com>
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 <r62914@freescale.com>
(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

View file

@ -1,49 +0,0 @@
From 9ca7a0b9b98e41c543bd328469e213b89251d470 Mon Sep 17 00:00:00 2001
From: Sammy He <r62914@freescale.com>
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 <r62914@freescale.com>
(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

View file

@ -1,820 +0,0 @@
From 10841bda9560f6a5b5581f9a2df3760cf6ee8c17 Mon Sep 17 00:00:00 2001
From: Richard Zhao <richard.zhao@freescale.com>
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 <richard.zhao@freescale.com>
(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

View file

@ -1,434 +0,0 @@
From 7c0c7fc3189f456f1899bf4aa0a27e3f71f6a808 Mon Sep 17 00:00:00 2001
From: Wayne Zou <b36644@freescale.com>
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 <b36644@freescale.com>
(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

View file

@ -1,86 +0,0 @@
From 3bc50cddbc5bc8c20c3bac50794a7ec80602ab16 Mon Sep 17 00:00:00 2001
From: Wayne Zou <b36644@freescale.com>
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 <b36644@freescale.com>
(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

View file

@ -1,33 +0,0 @@
From bad1d7edba0addd5cb925d237242edbfbbf2f108 Mon Sep 17 00:00:00 2001
From: Yuxi Sun <b36102@freescale.com>
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 <b36102@freescale.com>
(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

View file

@ -1,109 +0,0 @@
From 690f2f35563a1f7a89b796f9b0e7996627dbda21 Mon Sep 17 00:00:00 2001
From: Robin Gong <B38343@freescale.com>
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 <B38343@freescale.com>
(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

View file

@ -1,37 +0,0 @@
From a5baaf44b75b0bd6d3411fc87531ddfd411e34fb Mon Sep 17 00:00:00 2001
From: Rogerio Pimentel <rogerio.pimentel@freescale.com>
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 <rogerio.pimentel@freescale.com>
(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

View file

@ -1,35 +0,0 @@
From d1eff01309855f850d82e4ce9abe42ad76aa7f9f Mon Sep 17 00:00:00 2001
From: Yuxi Sun <b36102@freescale.com>
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 <b36102@freescale.com>
(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

View file

@ -1,80 +0,0 @@
From 10df11bb736c8166e53b41f96688b2e6bd53773b Mon Sep 17 00:00:00 2001
From: Richard Zhu <r65037@freescale.com>
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 <r65037@freescale.com>
(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

View file

@ -1,53 +0,0 @@
From 3cb5c41657a793fd442766d076eddde06af9c9ce Mon Sep 17 00:00:00 2001
From: Richard Zhu <r65037@freescale.com>
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 <r65037@freescale.com>
(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

View file

@ -23,70 +23,24 @@ 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=('1b0c625fd3fa0a54dcac600ef1ddbd1e'
'bde087470cb0715ca709bd5bcd3803d0'
'ef8a1cf2d129de1a0a476a0b40e6f291'
md5sums=('953ddea92634bb713853f2c1b14ed130'
'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')
'ba72c5e3ea407e6214e237323d6b467b')
__gitname="linux-2.6-imx"
__gitroot="git://git.freescale.com/imx/${__gitname}.git"
__gittag="rel_imx_2.6.35_11.09.01"
__gitcommit="691c08adeed64d5153937a0e31aaf4c251924471"
__gitbranch="imx_2.6.35_10.12.01"
__gitcommit="38bf41cc376e24c384934fbeb10770d6712e9143"
build() {
cd "$srcdir"
@ -96,7 +50,8 @@ build() {
msg "The local files are updated."
else
msg "GIT Checkout of ${_gitroot}"
git clone --depth=1 --branch=${__gittag} ${__gitroot} ${__gitname}
git clone --depth=1 --branch=${__gitbranch} ${__gitroot} ${__gitname}
git checkout ${__gitcommit} -- .
fi
cd ${srcdir}/${__gitname}
@ -106,40 +61,13 @@ build() {
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
sed -i 's|/sbin/depmod|/bin/true|' Makefile
msg "Patching done, building the kernel."
@ -150,7 +78,7 @@ build() {
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 menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
#make oldconfig # using old config from previous kernel version

View file

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.35-6
# Sun Aug 5 13:12:05 2012
# Fri Aug 31 12:45:37 2012
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@ -18,6 +18,7 @@ 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
@ -104,6 +105,7 @@ CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
@ -116,6 +118,7 @@ CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
# CONFIG_ASHMEM is not set
CONFIG_AIO=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
@ -126,10 +129,11 @@ CONFIG_PERF_USE_VMALLOC=y
# CONFIG_PERF_EVENTS is not set
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
# CONFIG_SLUB is not set
CONFIG_SLOB=y
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
@ -142,12 +146,13 @@ CONFIG_HAVE_CLK=y
#
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=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 is not set
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_BLOCK=y
@ -266,7 +271,8 @@ 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_UNIQUE_ID=y
CONFIG_MXS_UNIQUE_ID_OTP=y
CONFIG_MXS_ICOLL=y
CONFIG_MXS_EARLY_CONSOLE=y
CONFIG_MXS_DMA_ENGINE=y
@ -373,6 +379,21 @@ CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait"
#
# CPU Power Management
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
# CONFIG_CPU_IDLE is not set
#
@ -413,38 +434,88 @@ CONFIG_NET=y
#
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
CONFIG_IP_MULTICAST=y
# 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_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE 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_TUNNEL=y
# 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_LRO=y
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_IPV6=y
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
CONFIG_INET6_XFRM_MODE_TUNNEL=y
CONFIG_INET6_XFRM_MODE_BEET=y
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=y
# CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
# CONFIG_NF_CONNTRACK is not set
# CONFIG_NETFILTER_XTABLES is not set
# CONFIG_IP_VS is not set
#
# IP: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV4 is not set
# CONFIG_IP_NF_QUEUE is not set
# CONFIG_IP_NF_IPTABLES is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
#
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
@ -525,6 +596,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
@ -554,6 +627,8 @@ CONFIG_MISC_DEVICES=y
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_DS1682 is not set
CONFIG_MXS_PERSISTENT=y
# CONFIG_ANDROID_PMEM is not set
# CONFIG_UID_STAT is not set
# CONFIG_C2PORT is not set
#
@ -616,7 +691,7 @@ CONFIG_NETDEVICES=y
# CONFIG_VETH is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_MII=m
# CONFIG_AX88796 is not set
# CONFIG_SMC91X is not set
# CONFIG_DM9000 is not set
@ -634,8 +709,8 @@ CONFIG_MII=y
# 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_NETDEV_1000=y
CONFIG_NETDEV_10000=y
CONFIG_WLAN=y
# CONFIG_LIBERTAS_THINFIRM is not set
# CONFIG_AT76C50X_USB is not set
@ -669,6 +744,7 @@ CONFIG_RT2X00_LIB_CRYPTO=y
# CONFIG_WL12XX is not set
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
# CONFIG_ATH6K_LEGACY is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
@ -681,13 +757,13 @@ CONFIG_ZD1211RW=m
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET=y
CONFIG_USB_USBNET=m
# 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_SMSC95XX=m
# CONFIG_USB_NET_GL620A is not set
# CONFIG_USB_NET_NET1080 is not set
# CONFIG_USB_NET_PLUSB is not set
@ -695,6 +771,7 @@ CONFIG_USB_NET_SMSC95XX=y
# 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_HSO is not set
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_USB_SIERRA_NET is not set
@ -718,7 +795,10 @@ CONFIG_INPUT_POLLDEV=y
#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
@ -731,9 +811,9 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=m
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_TCA6416 is not set
CONFIG_KEYBOARD_MATRIX=m
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
@ -741,7 +821,6 @@ CONFIG_KEYBOARD_MATRIX=m
# 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
@ -751,7 +830,11 @@ CONFIG_KEYBOARD_MATRIX=m
#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_GAMEPORT is not set
#
@ -839,6 +922,7 @@ CONFIG_I2C_MXS_SELECT0=y
# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
#
@ -880,7 +964,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_BATTERY_BQ27x00 is not set
# CONFIG_BATTERY_MAX17040 is not set
CONFIG_BATTERY_MXS=y
CONFIG_MXS_VBUS_CURRENT_DRAW=y
# CONFIG_MXS_VBUS_CURRENT_DRAW is not set
# CONFIG_BATTERY_DS2438 is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
@ -1070,8 +1154,16 @@ CONFIG_FB_MXS_TVENC=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE is not set
# CONFIG_LOGO is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
CONFIG_SND=y
@ -1167,8 +1259,8 @@ 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
# CONFIG_USB_DEBUG is not set
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
@ -1176,6 +1268,7 @@ CONFIG_USB_DEBUG=y
# CONFIG_USB_DEVICEFS is not set
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_MON=y
@ -1204,12 +1297,13 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_GADGET_MUSB_HDRC is not set
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set
@ -1244,7 +1338,56 @@ CONFIG_USB_LIBUSUAL=y
#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set
CONFIG_USB_SERIAL=m
# CONFIG_USB_EZUSB is not set
# CONFIG_USB_SERIAL_GENERIC is not set
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP210X is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
CONFIG_USB_SERIAL_FTDI_SIO=m
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IUU is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MOTOROLA is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QCAUX is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set
# CONFIG_USB_SERIAL_SPCP8X5 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_SYMBOL is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_OPTICON is not set
# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
# CONFIG_USB_SERIAL_ZIO is not set
# CONFIG_USB_SERIAL_DEBUG is not set
#
# USB Miscellaneous drivers
@ -1268,7 +1411,52 @@ CONFIG_USB_LIBUSUAL=y
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_GADGET is not set
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_ATMEL_USBA is not set
# CONFIG_USB_GADGET_FSL_USB2 is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_S3C_HSOTG is not set
# CONFIG_USB_GADGET_IMX is not set
# CONFIG_USB_GADGET_S3C2410 is not set
# CONFIG_USB_GADGET_M66592 is not set
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_QE is not set
# CONFIG_USB_GADGET_CI13XXX is not set
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_GOKU is not set
CONFIG_USB_GADGET_ARC=y
CONFIG_USB_ARC=y
# CONFIG_USB_GADGET_LANGWELL is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
CONFIG_USB_ETH=m
CONFIG_USB_ETH_RNDIS=y
# CONFIG_USB_ETH_EEM is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FUNCTIONFS is not set
CONFIG_USB_FILE_STORAGE=m
# CONFIG_FSL_UTP is not set
# CONFIG_USB_FILE_STORAGE_TEST is not set
# CONFIG_USB_MASS_STORAGE is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
CONFIG_USB_CDC_COMPOSITE=m
# CONFIG_USB_G_NOKIA is not set
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_WEBCAM is not set
#
# OTG and related infrastructure
@ -1277,6 +1465,7 @@ 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_MXC_OTG is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_UNSAFE_RESUME=y
@ -1393,12 +1582,12 @@ CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
CONFIG_QUOTA_DEBUG=y
CONFIG_QUOTA_TREE=y
CONFIG_QFMT_V1=y
CONFIG_QFMT_V2=y
CONFIG_QUOTA_TREE=m
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
# CONFIG_CUSE is not set
CONFIG_GENERIC_ACL=y
@ -1422,7 +1611,9 @@ 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
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
#
# Pseudo filesystems
@ -1436,7 +1627,15 @@ CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=m
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
@ -1513,20 +1712,63 @@ CONFIG_FRAME_WARN=1024
# 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_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_KMEMLEAK is not set
CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_PAGE_POISONING is not set
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_KGDB is not set
CONFIG_ARM_UNWIND=y
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_DEBUG_LL=y
# CONFIG_EARLY_PRINTK is not set
# CONFIG_DEBUG_ICEDCC is not set
# CONFIG_OC_ETM is not set
#
@ -1567,7 +1809,7 @@ CONFIG_CRYPTO_MANAGER_TESTS=y
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_TEST is not set
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_CRYPTODEV=y
#

View file

@ -1,32 +0,0 @@
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 <shaharh@redhat.com>
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
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

View file

@ -1,30 +0,0 @@
From ebe473696da4f4de48b973c93c8bd32300baa818 Mon Sep 17 00:00:00 2001
From: Adrian Alonso <b38018@freescale.com>
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 <b38018@freescale.com>
---
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

View file

@ -1,14 +1,62 @@
imx233-olinuxino: add machine configuration support
From: Otavio Salvador <otavio@ossystems.com.br>
Subject: [PATCH] Include iMX233-OlinuXino support
This includes the board support on the kernel.
This patch is based on imx_2.6.35_10.12.01 branch of Freescale GIT
repository and based on Raivis' original patch.
Upstream-Status: Pending
Upstream-Status: Applied
Signed-off-by: Raivis Rengelis <raivis@rrkb.lv>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
arch/arm/mach-mx23/Kconfig | 7 +
arch/arm/mach-mx23/Makefile | 1 +
arch/arm/mach-mx23/device.c | 1 +
arch/arm/mach-mx23/imx233_olinuxino.c | 96 +++++
arch/arm/mach-mx23/imx233_olinuxino.h | 29 ++
arch/arm/mach-mx23/imx233_olinuxino_pins.c | 638 ++++++++++++++++++++++++++++
arch/arm/tools/mach-types | 1 +
drivers/mmc/host/Kconfig | 8 +
drivers/mmc/host/mxs-mmc.c | 4 +
9 files changed, 785 insertions(+)
create mode 100644 arch/arm/mach-mx23/imx233_olinuxino.c
create mode 100644 arch/arm/mach-mx23/imx233_olinuxino.h
create mode 100644 arch/arm/mach-mx23/imx233_olinuxino_pins.c
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
diff --git a/arch/arm/mach-mx23/Kconfig b/arch/arm/mach-mx23/Kconfig
index 28009b0..0ebaf29 100644
--- a/arch/arm/mach-mx23/Kconfig
+++ b/arch/arm/mach-mx23/Kconfig
@@ -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 --git a/arch/arm/mach-mx23/Makefile b/arch/arm/mach-mx23/Makefile
index a5e2781..2a39dac 100644
--- a/arch/arm/mach-mx23/Makefile
+++ b/arch/arm/mach-mx23/Makefile
@@ -5,6 +5,7 @@ obj-y += pinctrl.o clock.o device.o serial.o power.o pm.o sleep.o bus_freq.o
# 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 --git a/arch/arm/mach-mx23/device.c b/arch/arm/mach-mx23/device.c
index 8352540..0f5f659 100644
--- a/arch/arm/mach-mx23/device.c
+++ b/arch/arm/mach-mx23/device.c
@@ -45,6 +45,7 @@
#include "device.h"
#include "mx23_pins.h"
@ -17,9 +65,11 @@ diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/device.c linux-2.6.31/arch/arm/m
#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
diff --git a/arch/arm/mach-mx23/imx233_olinuxino.c b/arch/arm/mach-mx23/imx233_olinuxino.c
new file mode 100644
index 0000000..e08ccdc
--- /dev/null
+++ b/arch/arm/mach-mx23/imx233_olinuxino.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv
@ -117,9 +167,11 @@ diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino.c linux-2.6.31/
+ .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
diff --git a/arch/arm/mach-mx23/imx233_olinuxino.h b/arch/arm/mach-mx23/imx233_olinuxino.h
new file mode 100644
index 0000000..e16f28e
--- /dev/null
+++ b/arch/arm/mach-mx23/imx233_olinuxino.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv
@ -150,9 +202,11 @@ diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino.h linux-2.6.31/
+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
diff --git a/arch/arm/mach-mx23/imx233_olinuxino_pins.c b/arch/arm/mach-mx23/imx233_olinuxino_pins.c
new file mode 100644
index 0000000..fe4d372
--- /dev/null
+++ b/arch/arm/mach-mx23/imx233_olinuxino_pins.c
@@ -0,0 +1,638 @@
+/*
+ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv
@ -792,46 +846,23 @@ diff -rupN linux-2.6.31.orig/arch/arm/mach-mx23/imx233_olinuxino_pins.c linux-2.
+{
+ 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
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index b969419..59367c2 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -2614,6 +2614,7 @@ qsd8x50a_st1_1 MACH_QSD8X50A_ST1_1 QSD8X50A_ST1_1 2626
qsd8x50a_st1_5 MACH_QSD8X50A_ST1_5 QSD8X50A_ST1_5 2627
bee MACH_BEE BEE 2628
mx23evk MACH_MX23EVK MX23EVK 2629
+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
ap4evb MACH_AP4EVB AP4EVB 2630
stockholm MACH_STOCKHOLM STOCKHOLM 2631
lpc_h3131 MACH_LPC_H3131 LPC_H3131 2632
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index 951f1fd..4d7846f 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -366,6 +366,14 @@ config MMC_MXS
If unsure, say N.
@ -846,10 +877,11 @@ diff -rupN linux-2.6.31.orig/drivers/mmc/host/Kconfig linux-2.6.31/drivers/mmc/h
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
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
index c8945ee..65e7fe0 100644
--- a/drivers/mmc/host/mxs-mmc.c
+++ b/drivers/mmc/host/mxs-mmc.c
@@ -160,8 +160,12 @@ static int mxs_mmc_get_ro(struct mmc_host *mmc)
/* Detect if card is plugged */
static inline int mxs_mmc_is_plugged(struct mxs_mmc_host *host)
{
@ -861,4 +893,7 @@ diff -rupN linux-2.6.31.orig/drivers/mmc/host/mxs-mmc.c linux-2.6.31/drivers/mmc
+#endif
}
/* Card detection polling function */
static void mxs_mmc_reset(struct mxs_mmc_host *host);
--
1.7.10.4

View file

@ -1,5 +1,5 @@
KERNEL_NAME=-olinuxino
KERNEL_VERSION=2.6.35-5-OLinuXino-ARCH+
KERNEL_VERSION=2.6.35-6-ARCH+
flush_kernel() {
echo "Do you want the new kernel flashed onto mmcblk0p1? [y|N] "

View file

@ -1,40 +0,0 @@
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)

View file

@ -1,51 +0,0 @@
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 <b-omap@largestprime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
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

View file

@ -1,79 +0,0 @@
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 <faber@faberman.de>
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---
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

View file

@ -1,53 +0,0 @@
From 1415ec63689ef39bcb24b5095941ec4cc884035c Mon Sep 17 00:00:00 2001
From: Mikael Pettersson <mikpe@it.uu.se>
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 <mikpe@it.uu.se>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
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