From ddbcf28662828b9e0c37101a1b893995dcc6caa0 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 14 Nov 2011 15:49:29 +0000 Subject: [PATCH] Update to 3.2-rc1 Drop a large number of patches that were merged upstream. Fix context in features/all/sound-pci-cs46xx-request_firmware.patch. Remove another firmware image sneaked into staging. svn path=/dists/trunk/linux-2.6/; revision=18288 --- debian/changelog | 6 + ...IFS-Fixup-trivial-checkpatch-warning.patch | 27 -- ...ld-break-when-freezer-not-configured.patch | 37 --- ...lement-wait_event_freezekillable-usi.patch | 64 ----- ...-wait_event_freezekillable-and-have-.patch | 81 ------ ..._find_init-sb-ext_tree-NULL-ptr-oops.patch | 89 ------ ...gn-fix-modinfo-display-for-135-ucode.patch | 32 --- ...-shrinker-callback-bug-in-fs-super.c.patch | 46 ---- .../alpha/alpha-wire-up-accept4-syscall.patch | 52 ---- ...add-io-read-write-16-32-be-functions.patch | 38 --- .../arm/ARM-ixp4xx-gpiolib-support.patch | 158 ----------- ...-gpio-GENERIC_GPIO-default-must-be-n.patch | 28 -- ...owerpc-ptrace-Fix-build-with-gcc-4.6.patch | 66 ----- debian/patches/debian/dfsg/files-1 | 2 + ...module-bug-Add-TAINT_OOT_MODULE-flag.patch | 99 ------- .../sound-pci-cs46xx-request_firmware.patch | 4 +- .../features/arm/allow_imx5x_build.patch | 140 ---------- debian/patches/features/arm/imx51_pata1.patch | 111 -------- debian/patches/features/arm/imx51_pata2.patch | 34 --- debian/patches/features/arm/imx51_pata3.patch | 36 --- debian/patches/features/arm/imx53_ahci1.patch | 258 ------------------ debian/patches/features/arm/imx53_ahci2.patch | 85 ------ debian/patches/features/arm/imx53_ahci3.patch | 21 -- debian/patches/features/arm/imx53_ahci4.patch | 21 -- debian/patches/features/arm/imx53_ahci5.patch | 50 ---- ...8_olpc.bin-firmware-on-OLPC-machines.patch | 56 ---- debian/patches/series/base | 24 -- 27 files changed, 10 insertions(+), 1655 deletions(-) delete mode 100644 debian/patches/bugfix/all/CIFS-Fixup-trivial-checkpatch-warning.patch delete mode 100644 debian/patches/bugfix/all/Fix-build-break-when-freezer-not-configured.patch delete mode 100644 debian/patches/bugfix/all/PM-Freezer-Reimplement-wait_event_freezekillable-usi.patch delete mode 100644 debian/patches/bugfix/all/cifs-freezer-add-wait_event_freezekillable-and-have-.patch delete mode 100644 debian/patches/bugfix/all/hfs-fix-hfs_find_init-sb-ext_tree-NULL-ptr-oops.patch delete mode 100644 debian/patches/bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch delete mode 100644 debian/patches/bugfix/all/vmscan-fix-shrinker-callback-bug-in-fs-super.c.patch delete mode 100644 debian/patches/bugfix/alpha/alpha-wire-up-accept4-syscall.patch delete mode 100644 debian/patches/bugfix/arm/ARM-add-io-read-write-16-32-be-functions.patch delete mode 100644 debian/patches/bugfix/arm/ARM-ixp4xx-gpiolib-support.patch delete mode 100644 debian/patches/bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch delete mode 100644 debian/patches/bugfix/powerpc/powerpc-ptrace-Fix-build-with-gcc-4.6.patch delete mode 100644 debian/patches/debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch delete mode 100644 debian/patches/features/arm/allow_imx5x_build.patch delete mode 100644 debian/patches/features/arm/imx51_pata1.patch delete mode 100644 debian/patches/features/arm/imx51_pata2.patch delete mode 100644 debian/patches/features/arm/imx51_pata3.patch delete mode 100644 debian/patches/features/arm/imx53_ahci1.patch delete mode 100644 debian/patches/features/arm/imx53_ahci2.patch delete mode 100644 debian/patches/features/arm/imx53_ahci3.patch delete mode 100644 debian/patches/features/arm/imx53_ahci4.patch delete mode 100644 debian/patches/features/arm/imx53_ahci5.patch delete mode 100644 debian/patches/features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch diff --git a/debian/changelog b/debian/changelog index 1db490886..9dae4d814 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +linux-2.6 (3.2~rc1-1~experimental.1) UNRELEASED; urgency=low + + * New upstream release candidate + + -- Ben Hutchings Mon, 14 Nov 2011 15:21:10 +0000 + linux-2.6 (3.1.1-1) unstable; urgency=high * New upstream stable update: diff --git a/debian/patches/bugfix/all/CIFS-Fixup-trivial-checkpatch-warning.patch b/debian/patches/bugfix/all/CIFS-Fixup-trivial-checkpatch-warning.patch deleted file mode 100644 index b7f5cd7f7..000000000 --- a/debian/patches/bugfix/all/CIFS-Fixup-trivial-checkpatch-warning.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Steve French -Date: Wed, 19 Oct 2011 21:27:11 -0500 -Subject: [PATCH] [CIFS] Fixup trivial checkpatch warning - -commit b957ae9c53d5715a07f8bac644d8ff0a407c7e07 upstream. - -Signed-off-by: Steve French ---- - include/linux/freezer.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/include/linux/freezer.h b/include/linux/freezer.h -index 3672f73..a155561 100644 ---- a/include/linux/freezer.h -+++ b/include/linux/freezer.h -@@ -143,7 +143,7 @@ static inline void set_freezable_with_signal(void) - ({ \ - int __retval; \ - do { \ -- __retval = wait_event_killable(wq, \ -+ __retval = wait_event_killable(wq, \ - (condition) || freezing(current)); \ - if (__retval && !freezing(current)) \ - break; \ --- -1.7.7.2 - diff --git a/debian/patches/bugfix/all/Fix-build-break-when-freezer-not-configured.patch b/debian/patches/bugfix/all/Fix-build-break-when-freezer-not-configured.patch deleted file mode 100644 index 00132de2c..000000000 --- a/debian/patches/bugfix/all/Fix-build-break-when-freezer-not-configured.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Steve French -Date: Tue, 25 Oct 2011 10:02:53 -0500 -Subject: [PATCH] Fix build break when freezer not configured - -commit e0c8ea1a69410ef44043646938a6a4175f5307e4 upstream. - -fs/cifs/transport.c: In function 'wait_for_response': -fs/cifs/transport.c:328: error: implicit declaration of function 'wait_event_freezekillable' - -Caused by commit f06ac72e9291 ("cifs, freezer: add -wait_event_freezekillable and have cifs use it"). In this config, -CONFIG_FREEZER is not set. - -Reviewed-by: Shirish Pargaonkar -CC: Jeff Layton -Signed-off-by: Steve French ---- - include/linux/freezer.h | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/include/linux/freezer.h b/include/linux/freezer.h -index a155561..5989883 100644 ---- a/include/linux/freezer.h -+++ b/include/linux/freezer.h -@@ -203,6 +203,9 @@ static inline void set_freezable_with_signal(void) {} - #define wait_event_freezable_timeout(wq, condition, timeout) \ - wait_event_interruptible_timeout(wq, condition, timeout) - -+#define wait_event_freezekillable(wq, condition) \ -+ wait_event_killable(wq, condition) -+ - #endif /* !CONFIG_FREEZER */ - - #endif /* FREEZER_H_INCLUDED */ --- -1.7.7.2 - diff --git a/debian/patches/bugfix/all/PM-Freezer-Reimplement-wait_event_freezekillable-usi.patch b/debian/patches/bugfix/all/PM-Freezer-Reimplement-wait_event_freezekillable-usi.patch deleted file mode 100644 index b0a7e2500..000000000 --- a/debian/patches/bugfix/all/PM-Freezer-Reimplement-wait_event_freezekillable-usi.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Oleg Nesterov -Date: Thu, 3 Nov 2011 16:07:49 -0700 -Subject: [PATCH] PM / Freezer: Reimplement wait_event_freezekillable using - freezer_do_not_count/freezer_count - -commit 6f35c4abd7f0294166a5e0ab0401fe7949b33034 upstream. - -Commit 27920651fe "PM / Freezer: Make fake_signal_wake_up() wake -TASK_KILLABLE tasks too" updated fake_signal_wake_up() used by freezer -to wake up KILLABLE tasks. Sending unsolicited wakeups to tasks in -killable sleep is dangerous as there are code paths which depend on -tasks not waking up spuriously from KILLABLE sleep. - -For example. sys_read() or page can sleep in TASK_KILLABLE assuming -that wait/down/whatever _killable can only fail if we can not return -to the usermode. TASK_TRACED is another obvious example. - -The offending commit was to resolve freezer hang during system PM -operations caused by KILLABLE sleeps in network filesystems. -wait_event_freezekillable(), which depends on the spurious KILLABLE -wakeup, was added by f06ac72e92 "cifs, freezer: add -wait_event_freezekillable and have cifs use it" to be used to -implement killable & freezable sleeps in network filesystems. - -To prepare for reverting of 27920651fe, this patch reimplements -wait_event_freezekillable() using freezer_do_not_count/freezer_count() -so that it doesn't depend on the spurious KILLABLE wakeup. This isn't -very nice but should do for now. - -[tj: Refreshed patch to apply to linus/master and updated commit - description on Rafael's request.] - -Signed-off-by: Oleg Nesterov -Signed-off-by: Tejun Heo -Signed-off-by: Rafael J. Wysocki ---- - include/linux/freezer.h | 11 +++-------- - 1 files changed, 3 insertions(+), 8 deletions(-) - -diff --git a/include/linux/freezer.h b/include/linux/freezer.h -index a49b529..a5386e3 100644 ---- a/include/linux/freezer.h -+++ b/include/linux/freezer.h -@@ -143,14 +143,9 @@ static inline void set_freezable_with_signal(void) - #define wait_event_freezekillable(wq, condition) \ - ({ \ - int __retval; \ -- do { \ -- __retval = wait_event_killable(wq, \ -- (condition) || freezing(current)); \ -- if (__retval && !freezing(current)) \ -- break; \ -- else if (!(condition)) \ -- __retval = -ERESTARTSYS; \ -- } while (try_to_freeze()); \ -+ freezer_do_not_count(); \ -+ __retval = wait_event_killable(wq, (condition)); \ -+ freezer_count(); \ - __retval; \ - }) - --- -1.7.7.2 - diff --git a/debian/patches/bugfix/all/cifs-freezer-add-wait_event_freezekillable-and-have-.patch b/debian/patches/bugfix/all/cifs-freezer-add-wait_event_freezekillable-and-have-.patch deleted file mode 100644 index 9371f0460..000000000 --- a/debian/patches/bugfix/all/cifs-freezer-add-wait_event_freezekillable-and-have-.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Jeff Layton -Date: Wed, 19 Oct 2011 15:30:40 -0400 -Subject: [PATCH] cifs, freezer: add wait_event_freezekillable and have cifs - use it - -commit f06ac72e929115f2772c29727152ba0832d641e4 upstream. - -CIFS currently uses wait_event_killable to put tasks to sleep while -they await replies from the server. That function though does not -allow the freezer to run. In many cases, the network interface may -be going down anyway, in which case the reply will never come. The -client then ends up blocking the computer from suspending. - -Fix this by adding a new wait_event_freezable variant -- -wait_event_freezekillable. The idea is to combine the behavior of -wait_event_killable and wait_event_freezable -- put the task to -sleep and only allow it to be awoken by fatal signals, but also -allow the freezer to do its job. - -Signed-off-by: Jeff Layton ---- - fs/cifs/transport.c | 3 ++- - include/linux/freezer.h | 19 +++++++++++++++++-- - 2 files changed, 19 insertions(+), 3 deletions(-) - -diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c -index e7398d0..0cc9584 100644 ---- a/fs/cifs/transport.c -+++ b/fs/cifs/transport.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -324,7 +325,7 @@ wait_for_response(struct TCP_Server_Info *server, struct mid_q_entry *midQ) - { - int error; - -- error = wait_event_killable(server->response_q, -+ error = wait_event_freezekillable(server->response_q, - midQ->midState != MID_REQUEST_SUBMITTED); - if (error < 0) - return -ERESTARTSYS; -diff --git a/include/linux/freezer.h b/include/linux/freezer.h -index 1effc8b..3672f73 100644 ---- a/include/linux/freezer.h -+++ b/include/linux/freezer.h -@@ -134,10 +134,25 @@ static inline void set_freezable_with_signal(void) - } - - /* -- * Freezer-friendly wrappers around wait_event_interruptible() and -- * wait_event_interruptible_timeout(), originally defined in -+ * Freezer-friendly wrappers around wait_event_interruptible(), -+ * wait_event_killable() and wait_event_interruptible_timeout(), originally -+ * defined in - */ - -+#define wait_event_freezekillable(wq, condition) \ -+({ \ -+ int __retval; \ -+ do { \ -+ __retval = wait_event_killable(wq, \ -+ (condition) || freezing(current)); \ -+ if (__retval && !freezing(current)) \ -+ break; \ -+ else if (!(condition)) \ -+ __retval = -ERESTARTSYS; \ -+ } while (try_to_freeze()); \ -+ __retval; \ -+}) -+ - #define wait_event_freezable(wq, condition) \ - ({ \ - int __retval; \ --- -1.7.7.2 - diff --git a/debian/patches/bugfix/all/hfs-fix-hfs_find_init-sb-ext_tree-NULL-ptr-oops.patch b/debian/patches/bugfix/all/hfs-fix-hfs_find_init-sb-ext_tree-NULL-ptr-oops.patch deleted file mode 100644 index 8f9ebcb58..000000000 --- a/debian/patches/bugfix/all/hfs-fix-hfs_find_init-sb-ext_tree-NULL-ptr-oops.patch +++ /dev/null @@ -1,89 +0,0 @@ -From: Phillip Lougher -Date: Wed, 2 Nov 2011 13:38:01 -0700 -Subject: [PATCH] hfs: fix hfs_find_init() sb->ext_tree NULL ptr oops - -commit 434a964daa14b9db083ce20404a4a2add54d037a upstream. - -Clement Lecigne reports a filesystem which causes a kernel oops in -hfs_find_init() trying to dereference sb->ext_tree which is NULL. - -This proves to be because the filesystem has a corrupted MDB extent -record, where the extents file does not fit into the first three extents -in the file record (the first blocks). - -In hfs_get_block() when looking up the blocks for the extent file -(HFS_EXT_CNID), it fails the first blocks special case, and falls -through to the extent code (which ultimately calls hfs_find_init()) -which is in the process of being initialised. - -Hfs avoids this scenario by always having the extents b-tree fitting -into the first blocks (the extents B-tree can't have overflow extents). - -The fix is to check at mount time that the B-tree fits into first -blocks, i.e. fail if HFS_I(inode)->alloc_blocks >= -HFS_I(inode)->first_blocks - -Note, the existing commit 47f365eb57573 ("hfs: fix oops on mount with -corrupted btree extent records") becomes subsumed into this as a special -case, but only for the extents B-tree (HFS_EXT_CNID), it is perfectly -acceptable for the catalog B-Tree file to grow beyond three extents, -with the remaining extent descriptors in the extents overfow. - -This fixes CVE-2011-2203 - -Reported-by: Clement LECIGNE -Signed-off-by: Phillip Lougher -Cc: Jeff Mahoney -Cc: Christoph Hellwig -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds ---- - fs/hfs/btree.c | 20 +++++++++++++++----- - 1 files changed, 15 insertions(+), 5 deletions(-) - -diff --git a/fs/hfs/btree.c b/fs/hfs/btree.c -index 3ebc437..1cbdeea 100644 ---- a/fs/hfs/btree.c -+++ b/fs/hfs/btree.c -@@ -46,11 +46,26 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, u32 id, btree_keycmp ke - case HFS_EXT_CNID: - hfs_inode_read_fork(tree->inode, mdb->drXTExtRec, mdb->drXTFlSize, - mdb->drXTFlSize, be32_to_cpu(mdb->drXTClpSiz)); -+ if (HFS_I(tree->inode)->alloc_blocks > -+ HFS_I(tree->inode)->first_blocks) { -+ printk(KERN_ERR "hfs: invalid btree extent records\n"); -+ unlock_new_inode(tree->inode); -+ goto free_inode; -+ } -+ - tree->inode->i_mapping->a_ops = &hfs_btree_aops; - break; - case HFS_CAT_CNID: - hfs_inode_read_fork(tree->inode, mdb->drCTExtRec, mdb->drCTFlSize, - mdb->drCTFlSize, be32_to_cpu(mdb->drCTClpSiz)); -+ -+ if (!HFS_I(tree->inode)->first_blocks) { -+ printk(KERN_ERR "hfs: invalid btree extent records " -+ "(0 size).\n"); -+ unlock_new_inode(tree->inode); -+ goto free_inode; -+ } -+ - tree->inode->i_mapping->a_ops = &hfs_btree_aops; - break; - default: -@@ -59,11 +74,6 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, u32 id, btree_keycmp ke - } - unlock_new_inode(tree->inode); - -- if (!HFS_I(tree->inode)->first_blocks) { -- printk(KERN_ERR "hfs: invalid btree extent records (0 size).\n"); -- goto free_inode; -- } -- - mapping = tree->inode->i_mapping; - page = read_mapping_page(mapping, 0, NULL); - if (IS_ERR(page)) --- -1.7.7.2 - diff --git a/debian/patches/bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch b/debian/patches/bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch deleted file mode 100644 index 777b8cf68..000000000 --- a/debian/patches/bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: "Fry, Donald H" -Date: Thu, 15 Sep 2011 11:46:37 -0700 -Subject: [PATCH] iwlagn: fix modinfo display for 135 ucode. - -commit 5092e47afcbe6c470094c32095794b16083dfac2 upstream. - -The modinfo report for 135 ucode is iwlwifi-135-IWL135_UCODE_API_MAX.ucode -Change to show the value of the define: iwlwifi-135-6.ucode - -Signed-off-by: Don Fry -Signed-off-by: Wey-Yi Guy -Signed-off-by: John W. Linville ---- - drivers/net/wireless/iwlwifi/iwl-2000.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/net/wireless/iwlwifi/iwl-2000.c b/drivers/net/wireless/iwlwifi/iwl-2000.c -index 913f2a2..0579398 100644 ---- a/drivers/net/wireless/iwlwifi/iwl-2000.c -+++ b/drivers/net/wireless/iwlwifi/iwl-2000.c -@@ -75,7 +75,7 @@ - #define IWL105_MODULE_FIRMWARE(api) IWL105_FW_PRE __stringify(api) ".ucode" - - #define IWL135_FW_PRE "iwlwifi-135-" --#define IWL135_MODULE_FIRMWARE(api) IWL135_FW_PRE #api ".ucode" -+#define IWL135_MODULE_FIRMWARE(api) IWL135_FW_PRE __stringify(api) ".ucode" - - static void iwl2000_set_ct_threshold(struct iwl_priv *priv) - { --- -1.7.7 - diff --git a/debian/patches/bugfix/all/vmscan-fix-shrinker-callback-bug-in-fs-super.c.patch b/debian/patches/bugfix/all/vmscan-fix-shrinker-callback-bug-in-fs-super.c.patch deleted file mode 100644 index d1eafd2dc..000000000 --- a/debian/patches/bugfix/all/vmscan-fix-shrinker-callback-bug-in-fs-super.c.patch +++ /dev/null @@ -1,46 +0,0 @@ -From: Mikulas Patocka -Date: Mon, 31 Oct 2011 17:08:57 -0700 -Subject: [PATCH] vmscan: fix shrinker callback bug in fs/super.c - -commit 09f363c7363eb10cfb4b82094bd7064e5608258b upstream. - -The callback must not return -1 when nr_to_scan is zero. Fix the bug in -fs/super.c and add this requirement to the callback specification. - -Signed-off-by: Mikulas Patocka -Cc: Dave Chinner -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds ---- - fs/super.c | 2 +- - include/linux/shrinker.h | 1 + - 2 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/fs/super.c b/fs/super.c -index 3f56a26..32a81f3 100644 ---- a/fs/super.c -+++ b/fs/super.c -@@ -61,7 +61,7 @@ static int prune_super(struct shrinker *shrink, struct shrink_control *sc) - return -1; - - if (!grab_super_passive(sb)) -- return -1; -+ return !sc->nr_to_scan ? 0 : -1; - - if (sb->s_op && sb->s_op->nr_cached_objects) - fs_objects = sb->s_op->nr_cached_objects(sb); -diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h -index 790651b..a83833a 100644 ---- a/include/linux/shrinker.h -+++ b/include/linux/shrinker.h -@@ -20,6 +20,7 @@ struct shrink_control { - * 'nr_to_scan' entries and attempt to free them up. It should return - * the number of objects which remain in the cache. If it returns -1, it means - * it cannot do any scanning at this time (eg. there is a risk of deadlock). -+ * The callback must not return -1 if nr_to_scan is zero. - * - * The 'gfpmask' refers to the allocation we are currently trying to - * fulfil. --- -1.7.7.2 - diff --git a/debian/patches/bugfix/alpha/alpha-wire-up-accept4-syscall.patch b/debian/patches/bugfix/alpha/alpha-wire-up-accept4-syscall.patch deleted file mode 100644 index a4334d366..000000000 --- a/debian/patches/bugfix/alpha/alpha-wire-up-accept4-syscall.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Michael Cree -Date: Mon, 31 Oct 2011 17:09:49 -0700 -Subject: [PATCH] alpha: wire up accept4 syscall - -commit 0a8c384ebe4cc1c462076732dbffb595e7e81d5c upstream. - -Somehow wiring up the accept4 syscall on Alpha was missed long ago. -This commit rectifies that oversight. - -Signed-off-by: Michael Cree -Reviewed-by: Matt Turner -Cc: Richard Henderson -Cc: Ivan Kokshaysky -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds ---- - arch/alpha/include/asm/unistd.h | 3 ++- - arch/alpha/kernel/systbls.S | 1 + - 2 files changed, 3 insertions(+), 1 deletions(-) - -diff --git a/arch/alpha/include/asm/unistd.h b/arch/alpha/include/asm/unistd.h -index 4ac48a0..1fbfd64 100644 ---- a/arch/alpha/include/asm/unistd.h -+++ b/arch/alpha/include/asm/unistd.h -@@ -457,10 +457,11 @@ - #define __NR_clock_adjtime 499 - #define __NR_syncfs 500 - #define __NR_setns 501 -+#define __NR_accept4 502 - - #ifdef __KERNEL__ - --#define NR_SYSCALLS 502 -+#define NR_SYSCALLS 503 - - #define __ARCH_WANT_IPC_PARSE_VERSION - #define __ARCH_WANT_OLD_READDIR -diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S -index 6acea1f..53d0ce2 100644 ---- a/arch/alpha/kernel/systbls.S -+++ b/arch/alpha/kernel/systbls.S -@@ -520,6 +520,7 @@ sys_call_table: - .quad sys_clock_adjtime - .quad sys_syncfs /* 500 */ - .quad sys_setns -+ .quad sys_accept4 - - .size sys_call_table, . - sys_call_table - .type sys_call_table, @object --- -1.7.7 - diff --git a/debian/patches/bugfix/arm/ARM-add-io-read-write-16-32-be-functions.patch b/debian/patches/bugfix/arm/ARM-add-io-read-write-16-32-be-functions.patch deleted file mode 100644 index f804d5488..000000000 --- a/debian/patches/bugfix/arm/ARM-add-io-read-write-16-32-be-functions.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Arnd Bergmann -Date: Sat, 3 Sep 2011 17:54:44 +0200 -Subject: [PATCH] ARM: add io{read,write}{16,32}be functions - -commit 06901bd83412db5a31de7526e637101ed0c2c472 upstream. - -These functions are used in some PCI drivers with big-endian -MMIO space, and they are trivial to add here. - -Signed-off-by: Arnd Bergmann ---- - arch/arm/include/asm/io.h | 6 ++++++ - 1 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h -index d66605d..bad7bfb 100644 ---- a/arch/arm/include/asm/io.h -+++ b/arch/arm/include/asm/io.h -@@ -260,10 +260,16 @@ extern void _memset_io(volatile void __iomem *, int, size_t); - #define ioread16(p) ({ unsigned int __v = le16_to_cpu((__force __le16)__raw_readw(p)); __iormb(); __v; }) - #define ioread32(p) ({ unsigned int __v = le32_to_cpu((__force __le32)__raw_readl(p)); __iormb(); __v; }) - -+#define ioread16be(p) ({ unsigned int __v = be16_to_cpu((__force __be16)__raw_readw(p)); __iormb(); __v; }) -+#define ioread32be(p) ({ unsigned int __v = be32_to_cpu((__force __be32)__raw_readl(p)); __iormb(); __v; }) -+ - #define iowrite8(v,p) ({ __iowmb(); (void)__raw_writeb(v, p); }) - #define iowrite16(v,p) ({ __iowmb(); (void)__raw_writew((__force __u16)cpu_to_le16(v), p); }) - #define iowrite32(v,p) ({ __iowmb(); (void)__raw_writel((__force __u32)cpu_to_le32(v), p); }) - -+#define iowrite16be(v,p) ({ __iowmb(); (void)__raw_writew((__force __u16)cpu_to_be16(v), p); }) -+#define iowrite32be(v,p) ({ __iowmb(); (void)__raw_writel((__force __u32)cpu_to_be32(v), p); }) -+ - #define ioread8_rep(p,d,c) __raw_readsb(p,d,c) - #define ioread16_rep(p,d,c) __raw_readsw(p,d,c) - #define ioread32_rep(p,d,c) __raw_readsl(p,d,c) --- -1.7.7.2 - diff --git a/debian/patches/bugfix/arm/ARM-ixp4xx-gpiolib-support.patch b/debian/patches/bugfix/arm/ARM-ixp4xx-gpiolib-support.patch deleted file mode 100644 index 55923362e..000000000 --- a/debian/patches/bugfix/arm/ARM-ixp4xx-gpiolib-support.patch +++ /dev/null @@ -1,158 +0,0 @@ -From: Imre Kaloz -Subject: [RFC/PATCH] ARM: ixp4xx gpiolib support -Date: Mon, 5 Sep 2011 14:49:51 +0200 - -This patch adds gpiolib support for the IXP4xx platform - -Signed-off-by: Imre Kaloz ---- - arch/arm/Kconfig | 2 +- - arch/arm/mach-ixp4xx/common.c | 39 +++++++++++++++++++++++++ - arch/arm/mach-ixp4xx/include/mach/gpio.h | 46 ++++++++++-------------------- - 3 files changed, 55 insertions(+), 32 deletions(-) - -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 3269576..e793a75 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -481,7 +481,7 @@ config ARCH_IXP4XX - depends on MMU - select CLKSRC_MMIO - select CPU_XSCALE -- select GENERIC_GPIO -+ select ARCH_REQUIRE_GPIOLIB - select GENERIC_CLOCKEVENTS - select HAVE_SCHED_CLOCK - select MIGHT_HAVE_PCI -diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c -index 0777257..7603456 100644 ---- a/arch/arm/mach-ixp4xx/common.c -+++ b/arch/arm/mach-ixp4xx/common.c -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -375,12 +376,50 @@ static struct platform_device *ixp46x_devices[] __initdata = { - unsigned long ixp4xx_exp_bus_size; - EXPORT_SYMBOL(ixp4xx_exp_bus_size); - -+static int ixp4xx_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) -+{ -+ gpio_line_config(gpio, IXP4XX_GPIO_IN); -+ return 0; -+} -+ -+static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level) -+{ -+ gpio_line_set(gpio, level); -+ gpio_line_config(gpio, IXP4XX_GPIO_OUT); -+ return 0; -+} -+ -+static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio) -+{ -+ int value; -+ -+ gpio_line_get(gpio, &value); -+ return value; -+} -+ -+static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) -+{ -+ gpio_line_set(gpio, value); -+} -+ -+static struct gpio_chip ixp4xx_gpio_chip = { -+ .label = "IXP4XX_GPIO_CHIP", -+ .direction_input = ixp4xx_gpio_direction_input, -+ .direction_output = ixp4xx_gpio_direction_output, -+ .get = ixp4xx_gpio_get_value, -+ .set = ixp4xx_gpio_set_value, -+ .base = 0, -+ .ngpio = 16, -+}; -+ - void __init ixp4xx_sys_init(void) - { - ixp4xx_exp_bus_size = SZ_16M; - - platform_add_devices(ixp4xx_devices, ARRAY_SIZE(ixp4xx_devices)); - -+ gpiochip_add(&ixp4xx_gpio_chip); -+ - if (cpu_is_ixp46x()) { - int region; - -diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h -index a5f87de..86f3596 100644 ---- a/arch/arm/mach-ixp4xx/include/mach/gpio.h -+++ b/arch/arm/mach-ixp4xx/include/mach/gpio.h -@@ -27,47 +27,31 @@ - - #include - #include -+#include /* cansleep wrappers */ - --static inline int gpio_request(unsigned gpio, const char *label) --{ -- return 0; --} -- --static inline void gpio_free(unsigned gpio) --{ -- might_sleep(); -- -- return; --} -- --static inline int gpio_direction_input(unsigned gpio) --{ -- gpio_line_config(gpio, IXP4XX_GPIO_IN); -- return 0; --} -- --static inline int gpio_direction_output(unsigned gpio, int level) --{ -- gpio_line_set(gpio, level); -- gpio_line_config(gpio, IXP4XX_GPIO_OUT); -- return 0; --} -+#define NR_BUILTIN_GPIO 16 - - static inline int gpio_get_value(unsigned gpio) - { -- int value; -- -- gpio_line_get(gpio, &value); -- -- return value; -+ if (gpio < NR_BUILTIN_GPIO) -+ { -+ int value; -+ gpio_line_get(gpio, &value); -+ return value; -+ } -+ else -+ return __gpio_get_value(gpio); - } - - static inline void gpio_set_value(unsigned gpio, int value) - { -- gpio_line_set(gpio, value); -+ if (gpio < NR_BUILTIN_GPIO) -+ gpio_line_set(gpio, value); -+ else -+ __gpio_set_value(gpio, value); - } - --#include /* cansleep wrappers */ -+#define gpio_cansleep __gpio_cansleep - - extern int gpio_to_irq(int gpio); - extern int irq_to_gpio(unsigned int irq); --- -1.7.1 diff --git a/debian/patches/bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch b/debian/patches/bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch deleted file mode 100644 index 7fd65e1d0..000000000 --- a/debian/patches/bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Ben Hutchings -Date: Thu, 1 Sep 2011 05:32:51 +0100 -Subject: [PATCH 1/2] ia64, gpio: GENERIC_GPIO default must be n - -Since GPIOLIB is optional on ia64, GENERIC_GPIO must not be selected by -default. If GPIOLIB is enabled, it will select GENERIC_GPIO. - -Signed-off-by: Ben Hutchings ---- - arch/ia64/Kconfig | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig -index 3ff7785..27489b6 100644 ---- a/arch/ia64/Kconfig -+++ b/arch/ia64/Kconfig -@@ -92,7 +92,7 @@ config HAVE_SETUP_PER_CPU_AREA - def_bool y - - config GENERIC_GPIO -- def_bool y -+ bool - - config DMI - bool --- -1.7.5.4 - diff --git a/debian/patches/bugfix/powerpc/powerpc-ptrace-Fix-build-with-gcc-4.6.patch b/debian/patches/bugfix/powerpc/powerpc-ptrace-Fix-build-with-gcc-4.6.patch deleted file mode 100644 index 8133eef43..000000000 --- a/debian/patches/bugfix/powerpc/powerpc-ptrace-Fix-build-with-gcc-4.6.patch +++ /dev/null @@ -1,66 +0,0 @@ -From: Benjamin Herrenschmidt -Date: Mon, 26 Sep 2011 19:37:57 +0000 -Subject: [PATCH] powerpc/ptrace: Fix build with gcc 4.6 - -commit e69b742a6793dc5bf16f6eedca534d4bc10d68b2 upstream. - -gcc (rightfully) complains that we are accessing beyond the -end of the fpr array (we do, to access the fpscr). - -The only sane thing to do (whether anything in that code can be -called remotely sane is debatable) is to special case fpscr and -handle it as a separate statement. - -I initially tried to do it it by making the array access conditional -to index < PT_FPSCR and using a 3rd else leg but for some reason gcc -was unable to understand it and still spewed the warning. - -So I ended up with something a tad more intricated but it seems to -build on 32-bit and on 64-bit with and without VSX. - -Signed-off-by: Benjamin Herrenschmidt ---- - arch/powerpc/kernel/ptrace.c | 18 ++++++++++++++---- - 1 files changed, 14 insertions(+), 4 deletions(-) - -diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c -index 05b7dd2..18447c4 100644 ---- a/arch/powerpc/kernel/ptrace.c -+++ b/arch/powerpc/kernel/ptrace.c -@@ -1497,9 +1497,14 @@ long arch_ptrace(struct task_struct *child, long request, - if (index < PT_FPR0) { - tmp = ptrace_get_reg(child, (int) index); - } else { -+ unsigned int fpidx = index - PT_FPR0; -+ - flush_fp_to_thread(child); -- tmp = ((unsigned long *)child->thread.fpr) -- [TS_FPRWIDTH * (index - PT_FPR0)]; -+ if (fpidx < (PT_FPSCR - PT_FPR0)) -+ tmp = ((unsigned long *)child->thread.fpr) -+ [fpidx * TS_FPRWIDTH]; -+ else -+ tmp = child->thread.fpscr.val; - } - ret = put_user(tmp, datalp); - break; -@@ -1525,9 +1530,14 @@ long arch_ptrace(struct task_struct *child, long request, - if (index < PT_FPR0) { - ret = ptrace_put_reg(child, index, data); - } else { -+ unsigned int fpidx = index - PT_FPR0; -+ - flush_fp_to_thread(child); -- ((unsigned long *)child->thread.fpr) -- [TS_FPRWIDTH * (index - PT_FPR0)] = data; -+ if (fpidx < (PT_FPSCR - PT_FPR0)) -+ ((unsigned long *)child->thread.fpr) -+ [fpidx * TS_FPRWIDTH] = data; -+ else -+ child->thread.fpscr.val = data; - ret = 0; - } - break; --- -1.7.7.2 - diff --git a/debian/patches/debian/dfsg/files-1 b/debian/patches/debian/dfsg/files-1 index 6578884f7..9dc41800c 100644 --- a/debian/patches/debian/dfsg/files-1 +++ b/debian/patches/debian/dfsg/files-1 @@ -18,6 +18,8 @@ rm drivers/staging/ft1000/ft1000-*/*.img rm drivers/staging/keucr/init.h +rm drivers/staging/rtl8192e/r8192E_hwimg.c + rm drivers/staging/wlags49_h2/ap_*.c rm drivers/staging/wlags49_h2/sta_*.c diff --git a/debian/patches/debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch b/debian/patches/debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch deleted file mode 100644 index 9da428dd1..000000000 --- a/debian/patches/debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 129d27b59502c85e9427f2c5299083818f77bad2 Mon Sep 17 00:00:00 2001 -From: Ben Hutchings -Date: Sun, 9 Jan 2011 06:41:52 +0000 -Subject: [PATCH] module,bug: Add TAINT_OOT_MODULE flag for modules that weren't built in-tree - -This makes it easier to spot out-of-tree modules. We have enough -bugs of our own to deal with, before supporting these. - -Signed-off-by: Ben Hutchings ---- - include/linux/kernel.h | 1 + - kernel/module.c | 5 +++++ - kernel/panic.c | 2 ++ - scripts/mod/modpost.c | 7 +++++++ - 4 files changed, 15 insertions(+), 0 deletions(-) - -diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index b6de9a6..7d41307 100644 ---- a/include/linux/kernel.h -+++ b/include/linux/kernel.h -@@ -250,6 +250,7 @@ extern enum system_states { - #define TAINT_WARN 9 - #define TAINT_CRAP 10 - #define TAINT_FIRMWARE_WORKAROUND 11 -+#define TAINT_OOT_MODULE 12 - - extern const char hex_asc[]; - #define hex_asc_lo(x) hex_asc[((x) & 0x0f)] -diff --git a/kernel/module.c b/kernel/module.c -index d190664..0549df3 100644 ---- a/kernel/module.c -+++ b/kernel/module.c -@@ -2260,6 +2260,9 @@ static int check_modinfo(struct module *mod, struct load_info *info) - return -ENOEXEC; - } - -+ if (!get_modinfo(info, "intree")) -+ add_taint_module(mod, TAINT_OOT_MODULE); -+ - if (get_modinfo(info, "staging")) { - add_taint_module(mod, TAINT_CRAP); - printk(KERN_WARNING "%s: module is from the staging directory," -@@ -3001,6 +3004,8 @@ static char *module_flags(struct module *mod, char *buf) - buf[bx++] = '('; - if (mod->taints & (1 << TAINT_PROPRIETARY_MODULE)) - buf[bx++] = 'P'; -+ else if (mod->taints & (1 << TAINT_OOT_MODULE)) -+ buf[bx++] = 'O'; - if (mod->taints & (1 << TAINT_FORCED_MODULE)) - buf[bx++] = 'F'; - if (mod->taints & (1 << TAINT_CRAP)) -diff --git a/kernel/panic.c b/kernel/panic.c -index 4c13b1a..9385d25 100644 ---- a/kernel/panic.c -+++ b/kernel/panic.c -@@ -174,6 +174,7 @@ static const struct tnt tnts[] = { - { TAINT_WARN, 'W', ' ' }, - { TAINT_CRAP, 'C', ' ' }, - { TAINT_FIRMWARE_WORKAROUND, 'I', ' ' }, -+ { TAINT_OOT_MODULE, 'O', ' ' }, - }; - - /** -@@ -191,6 +192,7 @@ static const struct tnt tnts[] = { - * 'W' - Taint on warning. - * 'C' - modules from drivers/staging are loaded. - * 'I' - Working around severe firmware bug. -+ * 'O' - Out-of-tree module has been loaded. - * - * The string is overwritten by the next call to print_tainted(). - */ -diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c -index 33122ca..d0cb92c 100644 ---- a/scripts/mod/modpost.c -+++ b/scripts/mod/modpost.c -@@ -1818,6 +1818,12 @@ static void add_header(struct buffer *b, struct module *mod) - buf_printf(b, "};\n"); - } - -+static void add_intree_flag(struct buffer *b, int is_intree) -+{ -+ if (is_intree) -+ buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n"); -+} -+ - static void add_staging_flag(struct buffer *b, const char *name) - { - static const char *staging_dir = "drivers/staging"; -@@ -2138,6 +2144,7 @@ int main(int argc, char **argv) - buf.pos = 0; - - add_header(&buf, mod); -+ add_intree_flag(&buf, !external_module); - add_staging_flag(&buf, mod->name); - err |= add_versions(&buf, mod); - add_depends(&buf, mod, modules); --- -1.7.4.1 - diff --git a/debian/patches/features/all/sound-pci-cs46xx-request_firmware.patch b/debian/patches/features/all/sound-pci-cs46xx-request_firmware.patch index 5e2e5f50e..d85292786 100644 --- a/debian/patches/features/all/sound-pci-cs46xx-request_firmware.patch +++ b/debian/patches/features/all/sound-pci-cs46xx-request_firmware.patch @@ -31,10 +31,10 @@ diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 1be96ea..b12b930 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c -@@ -53,6 +53,7 @@ - #include +@@ -54,6 +54,7 @@ #include #include + #include +#include diff --git a/debian/patches/features/arm/allow_imx5x_build.patch b/debian/patches/features/arm/allow_imx5x_build.patch deleted file mode 100644 index f29bef446..000000000 --- a/debian/patches/features/arm/allow_imx5x_build.patch +++ /dev/null @@ -1,140 +0,0 @@ -commit 7409cd1cd554a0bdedfecf2afde58ff468b7045e -Author: Sascha Hauer -Date: Wed Aug 24 08:54:04 2011 +0200 - - ARM i.MX: allow to compile together all i.MX5 based SoCs - - For this we need CONFIG_AUTO_ZRELADDR and CONFIG_ARM_PATCH_PHYS_VIRT. - - Signed-off-by: Sascha Hauer - -Index: linux-3.1/arch/arm/mach-mx5/Kconfig -=================================================================== ---- linux-3.1.orig/arch/arm/mach-mx5/Kconfig 2011-11-13 14:24:52.090827440 +0100 -+++ linux-3.1/arch/arm/mach-mx5/Kconfig 2011-11-13 14:24:52.158827438 +0100 -@@ -1,8 +1,9 @@ --if ARCH_MX503 || ARCH_MX51 -+if ARCH_MX5 -+ - # ARCH_MX5/50/53 are left to mark places where prevent multi-soc in single - # image. So for most time, SOC_IMX50/51/53 should be used. - --config ARCH_MX5 -+config ARCH_MX51 - bool - - config ARCH_MX50 -@@ -19,7 +20,6 @@ config SOC_IMX50 - select ARCH_MXC_IOMUX_V3 - select ARCH_MXC_AUDMUX_V2 - select ARCH_HAS_CPUFREQ -- select ARCH_MX5 - select ARCH_MX50 - - config SOC_IMX51 -@@ -30,7 +30,7 @@ config SOC_IMX51 - select ARCH_MXC_IOMUX_V3 - select ARCH_MXC_AUDMUX_V2 - select ARCH_HAS_CPUFREQ -- select ARCH_MX5 -+ select ARCH_MX51 - - config SOC_IMX53 - bool -@@ -38,10 +38,8 @@ config SOC_IMX53 - select ARM_L1_CACHE_SHIFT_6 - select MXC_TZIC - select ARCH_MXC_IOMUX_V3 -- select ARCH_MX5 - select ARCH_MX53 - --if ARCH_MX50_SUPPORTED - #comment "i.MX50 machines:" - - config MACH_MX50_RDP -@@ -57,9 +55,6 @@ config MACH_MX50_RDP - Include support for MX50 reference design platform (RDP) board. This - includes specific configurations for the board and its peripherals. - --endif # ARCH_MX50_SUPPORTED -- --if ARCH_MX51 - comment "i.MX51 machines:" - - config MACH_MX51_BABBAGE -@@ -168,9 +163,6 @@ config MACH_MX51_EFIKASB - Include support for Genesi Efika Smartbook. This includes specific - configurations for the board and its peripherals. - --endif # ARCH_MX51 -- --if ARCH_MX53_SUPPORTED - comment "i.MX53 machines:" - - config MACH_MX53_EVK -@@ -222,6 +214,4 @@ config MACH_MX53_ARD - Include support for MX53 ARD platform. This includes specific - configurations for the board and its peripherals. - --endif # ARCH_MX53_SUPPORTED -- - endif -Index: linux-3.1/arch/arm/plat-mxc/Kconfig -=================================================================== ---- linux-3.1.orig/arch/arm/plat-mxc/Kconfig 2011-11-13 14:20:20.026839411 +0100 -+++ linux-3.1/arch/arm/plat-mxc/Kconfig 2011-11-13 14:24:52.158827438 +0100 -@@ -4,12 +4,6 @@ source "arch/arm/plat-mxc/devices/Kconfi - - menu "Freescale MXC Implementations" - --config ARCH_MX50_SUPPORTED -- bool -- --config ARCH_MX53_SUPPORTED -- bool -- - choice - prompt "Freescale CPU family:" - default ARCH_MX3 -@@ -34,20 +28,14 @@ config ARCH_MX3 - help - This enables support for systems based on the Freescale i.MX3 family - --config ARCH_MX503 -- bool "i.MX50 + i.MX53" -- select ARCH_MX50_SUPPORTED -- select ARCH_MX53_SUPPORTED -+config ARCH_MX5 -+ bool "i.MX50, i.MX51, i.MX53" -+ select AUTO_ZRELADDR -+ select ARM_PATCH_PHYS_VIRT - help - This enables support for machines using Freescale's i.MX50 and i.MX51 - processors. - --config ARCH_MX51 -- bool "i.MX51" -- select ARCH_MX51_SUPPORTED -- help -- This enables support for systems based on the Freescale i.MX51 family -- - endchoice - - source "arch/arm/mach-imx/Kconfig" -Index: linux-3.1/arch/arm/plat-mxc/include/mach/memory.h -=================================================================== ---- linux-3.1.orig/arch/arm/plat-mxc/include/mach/memory.h 2011-11-13 14:20:20.014839413 +0100 -+++ linux-3.1/arch/arm/plat-mxc/include/mach/memory.h 2011-11-13 14:24:52.158827438 +0100 -@@ -31,12 +31,6 @@ - # define PLAT_PHYS_OFFSET MX27_PHYS_OFFSET - # elif defined CONFIG_ARCH_MX3 - # define PLAT_PHYS_OFFSET MX3x_PHYS_OFFSET --# elif defined CONFIG_ARCH_MX50 --# define PLAT_PHYS_OFFSET MX50_PHYS_OFFSET --# elif defined CONFIG_ARCH_MX51 --# define PLAT_PHYS_OFFSET MX51_PHYS_OFFSET --# elif defined CONFIG_ARCH_MX53 --# define PLAT_PHYS_OFFSET MX53_PHYS_OFFSET - # endif - #endif - diff --git a/debian/patches/features/arm/imx51_pata1.patch b/debian/patches/features/arm/imx51_pata1.patch deleted file mode 100644 index 4e85044a9..000000000 --- a/debian/patches/features/arm/imx51_pata1.patch +++ /dev/null @@ -1,111 +0,0 @@ -commit a45adf1ce8012f67fe6014175f666ab2960e0350 -Author: Arnaud Patard (Rtp) -Date: Tue Jul 26 16:54:25 2011 +0200 - - imx51: add pata device - - Declare the pata device found on mx51 - - Signed-off-by: Arnaud Patard - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h -index e11bc0e..89fe77f 100644 ---- a/arch/arm/mach-mx5/devices-imx51.h -+++ b/arch/arm/mach-mx5/devices-imx51.h -@@ -52,3 +52,7 @@ extern const struct imx_mxc_pwm_data imx51_mxc_pwm_data[]; - extern const struct imx_imx_keypad_data imx51_imx_keypad_data; - #define imx51_add_imx_keypad(pdata) \ - imx_add_imx_keypad(&imx51_imx_keypad_data, pdata) -+ -+extern const struct imx_pata_imx_data imx51_pata_imx_data; -+#define imx51_add_pata_imx() \ -+ imx_add_pata_imx(&imx51_pata_imx_data) -diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig -index bd294ad..c55916c 100644 ---- a/arch/arm/plat-mxc/devices/Kconfig -+++ b/arch/arm/plat-mxc/devices/Kconfig -@@ -31,6 +31,9 @@ config IMX_HAVE_PLATFORM_IMX_I2C - config IMX_HAVE_PLATFORM_IMX_KEYPAD - bool - -+config IMX_HAVE_PLATFORM_PATA_IMX -+ bool -+ - config IMX_HAVE_PLATFORM_IMX_SSI - bool - -diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile -index b41bf97..a093b45 100644 ---- a/arch/arm/plat-mxc/devices/Makefile -+++ b/arch/arm/plat-mxc/devices/Makefile -@@ -10,6 +10,7 @@ obj-y += platform-imx-dma.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_FB) += platform-imx-fb.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_KEYPAD) += platform-imx-keypad.o -+obj-$(CONFIG_IMX_HAVE_PLATFORM_PATA_IMX) += platform-pata_imx.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SSI) += platform-imx-ssi.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UART) += platform-imx-uart.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UDC) += platform-imx_udc.o -diff --git a/arch/arm/plat-mxc/devices/platform-pata_imx.c b/arch/arm/plat-mxc/devices/platform-pata_imx.c -new file mode 100644 -index 0000000..c1cbaf9 ---- /dev/null -+++ b/arch/arm/plat-mxc/devices/platform-pata_imx.c -@@ -0,0 +1,38 @@ -+/* -+ * This program is free software; you can redistribute it and/or modify it under -+ * the terms of the GNU General Public License version 2 as published by the -+ * Free Software Foundation. -+ */ -+#include -+#include -+ -+#define imx_pata_imx_data_entry_single(soc) \ -+ { \ -+ .iobase = soc ## _ATA_BASE_ADDR, \ -+ .irq = soc ## _MXC_INT_ATA, \ -+ } -+ -+#ifdef CONFIG_SOC_IMX51 -+const struct imx_pata_imx_data imx51_pata_imx_data __initconst = -+ imx_pata_imx_data_entry_single(MX51); -+#endif /* ifdef CONFIG_SOC_IMX51 */ -+ -+struct platform_device *__init imx_add_pata_imx( -+ const struct imx_pata_imx_data *data) -+{ -+ struct resource res[] = { -+ { -+ .start = data->iobase, -+ .end = data->iobase + SZ_16K - 1, -+ .flags = IORESOURCE_MEM, -+ }, -+ { -+ .start = data->irq, -+ .end = data->irq, -+ .flags = IORESOURCE_IRQ, -+ }, -+ }; -+ return imx_add_platform_device("pata_imx", -1, -+ res, ARRAY_SIZE(res), NULL, 0); -+} -+ -diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h -index 524538a..1b76c67 100644 ---- a/arch/arm/plat-mxc/include/mach/devices-common.h -+++ b/arch/arm/plat-mxc/include/mach/devices-common.h -@@ -251,6 +251,13 @@ struct platform_device *__init imx_add_mxc_nand( - const struct imx_mxc_nand_data *data, - const struct mxc_nand_platform_data *pdata); - -+struct imx_pata_imx_data { -+ resource_size_t iobase; -+ resource_size_t irq; -+}; -+struct platform_device *__init imx_add_pata_imx( -+ const struct imx_pata_imx_data *data); -+ - struct imx_mxc_pwm_data { - int id; - resource_size_t iobase; diff --git a/debian/patches/features/arm/imx51_pata2.patch b/debian/patches/features/arm/imx51_pata2.patch deleted file mode 100644 index 7e3f10d0a..000000000 --- a/debian/patches/features/arm/imx51_pata2.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 5bc59bff8c3ee0971fbddb8d6885cb5f30f91c5a -Author: Arnaud Patard (Rtp) -Date: Tue Jul 26 16:54:26 2011 +0200 - - imx51: add pata clock - - Define the clock used by the imx51 pata device. - - Signed-off-by: Arnaud Patard - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c -index 7f20308..b653133 100644 ---- a/arch/arm/mach-mx5/clock-mx51-mx53.c -+++ b/arch/arm/mach-mx5/clock-mx51-mx53.c -@@ -1414,6 +1414,10 @@ DEFINE_CLOCK(ipu_di0_clk, 0, MXC_CCM_CCGR6, MXC_CCM_CCGRx_CG5_OFFSET, - DEFINE_CLOCK(ipu_di1_clk, 0, MXC_CCM_CCGR6, MXC_CCM_CCGRx_CG6_OFFSET, - NULL, NULL, &pll3_sw_clk, NULL); - -+/* PATA */ -+DEFINE_CLOCK(pata_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG0_OFFSET, -+ NULL, NULL, &ipg_clk, &spba_clk); -+ - #define _REGISTER_CLOCK(d, n, c) \ - { \ - .dev_id = d, \ -@@ -1470,6 +1474,7 @@ static struct clk_lookup mx51_lookups[] = { - _REGISTER_CLOCK("imx-ipuv3", "di0", ipu_di0_clk) - _REGISTER_CLOCK("imx-ipuv3", "di1", ipu_di1_clk) - _REGISTER_CLOCK(NULL, "gpc_dvfs", gpc_dvfs_clk) -+ _REGISTER_CLOCK("pata_imx", NULL, pata_clk) - }; - - static struct clk_lookup mx53_lookups[] = { diff --git a/debian/patches/features/arm/imx51_pata3.patch b/debian/patches/features/arm/imx51_pata3.patch deleted file mode 100644 index 58a8f0585..000000000 --- a/debian/patches/features/arm/imx51_pata3.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit d8f4059bf96d9bc1b8d2003602404f3d011ac9f2 -Author: Arnaud Patard (Rtp) -Date: Tue Jul 26 16:54:27 2011 +0200 - - imx: efika: Enable pata. - - Enable pata support on efika mx/sb platforms. - - Signed-off-by: Arnaud Patard - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig -index b4e7c58..28b94e0 100644 ---- a/arch/arm/mach-mx5/Kconfig -+++ b/arch/arm/mach-mx5/Kconfig -@@ -147,6 +147,7 @@ config MX51_EFIKA_COMMON - bool - select SOC_IMX51 - select IMX_HAVE_PLATFORM_IMX_UART -+ select IMX_HAVE_PLATFORM_PATA_IMX - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX - select IMX_HAVE_PLATFORM_SPI_IMX - select MXC_ULPI if USB_ULPI -diff --git a/arch/arm/mach-mx5/mx51_efika.c b/arch/arm/mach-mx5/mx51_efika.c -index 4435e03..31c152e 100644 ---- a/arch/arm/mach-mx5/mx51_efika.c -+++ b/arch/arm/mach-mx5/mx51_efika.c -@@ -627,6 +627,8 @@ void __init efika_board_common_init(void) - ARRAY_SIZE(mx51_efika_spi_board_info)); - imx51_add_ecspi(0, &mx51_efika_spi_pdata); - -+ imx51_add_pata_imx(); -+ - #if defined(CONFIG_CPU_FREQ_IMX) - get_cpu_op = mx51_get_cpu_op; - #endif diff --git a/debian/patches/features/arm/imx53_ahci1.patch b/debian/patches/features/arm/imx53_ahci1.patch deleted file mode 100644 index 531e04bd9..000000000 --- a/debian/patches/features/arm/imx53_ahci1.patch +++ /dev/null @@ -1,258 +0,0 @@ -commit 97915bdf3c1833e7855272788a24b191a17c67f4 -Author: Richard Zhu -Date: Wed Sep 28 15:41:53 2011 +0800 - - AHCI Add the AHCI SATA feature on the MX53 platforms - - Signed-off-by: Richard Zhu - Tested-by: Hector Oron Martinez - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c -index f7bf996..1ef7e97 100644 ---- a/arch/arm/mach-mx5/clock-mx51-mx53.c -+++ b/arch/arm/mach-mx5/clock-mx51-mx53.c -@@ -1401,6 +1401,22 @@ static struct clk esdhc4_mx53_clk = { - .secondary = &esdhc4_ipg_clk, - }; - -+static struct clk sata_clk = { -+ .parent = &ipg_clk, -+ .enable = _clk_max_enable, -+ .enable_reg = MXC_CCM_CCGR4, -+ .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET, -+ .disable = _clk_max_disable, -+}; -+ -+static struct clk ahci_phy_clk = { -+ .parent = &usb_phy1_clk, -+}; -+ -+static struct clk ahci_dma_clk = { -+ .parent = &ahb_clk, -+}; -+ - DEFINE_CLOCK(mipi_esc_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG5_OFFSET, NULL, NULL, NULL, &pll2_sw_clk); - DEFINE_CLOCK(mipi_hsc2_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG4_OFFSET, NULL, NULL, &mipi_esc_clk, &pll2_sw_clk); - DEFINE_CLOCK(mipi_hsc1_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG3_OFFSET, NULL, NULL, &mipi_hsc2_clk, &pll2_sw_clk); -@@ -1507,6 +1523,9 @@ static struct clk_lookup mx53_lookups[] = { - _REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk) - _REGISTER_CLOCK("imx-ssi.2", NULL, ssi3_clk) - _REGISTER_CLOCK("imx-keypad", NULL, dummy_clk) -+ _REGISTER_CLOCK("imx53-ahci.0", "ahci", sata_clk) -+ _REGISTER_CLOCK("imx53-ahci.0", "ahci_phy", ahci_phy_clk) -+ _REGISTER_CLOCK("imx53-ahci.0", "ahci_dma", ahci_dma_clk) - }; - - static void clk_tree_init(void) -diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h -index c27fe8b..1ab399e 100644 ---- a/arch/arm/mach-mx5/devices-imx53.h -+++ b/arch/arm/mach-mx5/devices-imx53.h -@@ -40,3 +40,5 @@ extern const struct imx_imx_ssi_data imx53_imx_ssi_data[]; - extern const struct imx_imx_keypad_data imx53_imx_keypad_data; - #define imx53_add_imx_keypad(pdata) \ - imx_add_imx_keypad(&imx53_imx_keypad_data, pdata) -+ -+extern struct platform_device *__init imx53_add_ahci_imx(void); -diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig -index bd294ad..f63887b 100644 ---- a/arch/arm/plat-mxc/devices/Kconfig -+++ b/arch/arm/plat-mxc/devices/Kconfig -@@ -76,3 +76,7 @@ config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX - - config IMX_HAVE_PLATFORM_SPI_IMX - bool -+ -+config IMX_HAVE_PLATFORM_AHCI -+ bool -+ default y if ARCH_MX53 -diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile -index b41bf97..e858ad9 100644 ---- a/arch/arm/plat-mxc/devices/Makefile -+++ b/arch/arm/plat-mxc/devices/Makefile -@@ -25,3 +25,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_RTC) += platform-mxc_rtc.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o - obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o -+obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) += platform-ahci-imx.o -diff --git a/arch/arm/plat-mxc/devices/platform-ahci-imx.c b/arch/arm/plat-mxc/devices/platform-ahci-imx.c -new file mode 100644 -index 0000000..d8a56ae ---- /dev/null -+++ b/arch/arm/plat-mxc/devices/platform-ahci-imx.c -@@ -0,0 +1,156 @@ -+/* -+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ */ -+ -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define imx_ahci_imx_data_entry_single(soc, _devid) \ -+ { \ -+ .devid = _devid, \ -+ .iobase = soc ## _SATA_BASE_ADDR, \ -+ .irq = soc ## _INT_SATA, \ -+ } -+ -+#ifdef CONFIG_SOC_IMX53 -+const struct imx_ahci_imx_data imx53_ahci_imx_data __initconst = -+ imx_ahci_imx_data_entry_single(MX53, "imx53-ahci"); -+#endif -+ -+enum { -+ HOST_CAP = 0x00, -+ HOST_CAP_SSS = (1 << 27), /* Staggered Spin-up */ -+ HOST_PORTS_IMPL = 0x0c, -+ HOST_TIMER1MS = 0xe0, /* Timer 1-ms */ -+}; -+ -+static struct clk *sata_clk, *sata_ref_clk; -+ -+/* AHCI module Initialization, if return 0, initialization is successful. */ -+static int imx_sata_init(struct device *dev, void __iomem *addr) -+{ -+ u32 tmpdata; -+ int ret = 0; -+ struct clk *clk; -+ -+ sata_clk = clk_get(dev, "ahci"); -+ if (IS_ERR(sata_clk)) { -+ dev_err(dev, "no sata clock.\n"); -+ return PTR_ERR(sata_clk); -+ } -+ ret = clk_enable(sata_clk); -+ if (ret) { -+ dev_err(dev, "can't enable sata clock.\n"); -+ goto put_sata_clk; -+ } -+ -+ /* Get the AHCI SATA PHY CLK */ -+ sata_ref_clk = clk_get(dev, "ahci_phy"); -+ if (IS_ERR(sata_ref_clk)) { -+ dev_err(dev, "no sata ref clock.\n"); -+ ret = PTR_ERR(sata_ref_clk); -+ goto release_sata_clk; -+ } -+ ret = clk_enable(sata_ref_clk); -+ if (ret) { -+ dev_err(dev, "can't enable sata ref clock.\n"); -+ goto put_sata_ref_clk; -+ } -+ -+ /* Get the AHB clock rate, and configure the TIMER1MS reg later */ -+ clk = clk_get(dev, "ahci_dma"); -+ if (IS_ERR(clk)) { -+ dev_err(dev, "no dma clock.\n"); -+ ret = PTR_ERR(clk); -+ goto release_sata_ref_clk; -+ } -+ tmpdata = clk_get_rate(clk) / 1000; -+ clk_put(clk); -+ -+ writel(tmpdata, addr + HOST_TIMER1MS); -+ -+ tmpdata = readl(addr + HOST_CAP); -+ if (!(tmpdata & HOST_CAP_SSS)) { -+ tmpdata |= HOST_CAP_SSS; -+ writel(tmpdata, addr + HOST_CAP); -+ } -+ -+ if (!(readl(addr + HOST_PORTS_IMPL) & 0x1)) -+ writel((readl(addr + HOST_PORTS_IMPL) | 0x1), -+ addr + HOST_PORTS_IMPL); -+ -+ return 0; -+ -+release_sata_ref_clk: -+ clk_disable(sata_ref_clk); -+put_sata_ref_clk: -+ clk_put(sata_ref_clk); -+release_sata_clk: -+ clk_disable(sata_clk); -+put_sata_clk: -+ clk_put(sata_clk); -+ -+ return ret; -+} -+ -+static void imx_sata_exit(struct device *dev) -+{ -+ clk_disable(sata_ref_clk); -+ clk_put(sata_ref_clk); -+ -+ clk_disable(sata_clk); -+ clk_put(sata_clk); -+ -+} -+struct platform_device *__init imx_add_ahci_imx( -+ const struct imx_ahci_imx_data *data, -+ const struct ahci_platform_data *pdata) -+{ -+ struct resource res[] = { -+ { -+ .start = data->iobase, -+ .end = data->iobase + SZ_4K - 1, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = data->irq, -+ .end = data->irq, -+ .flags = IORESOURCE_IRQ, -+ }, -+ }; -+ -+ return imx_add_platform_device_dmamask(data->devid, 0, -+ res, ARRAY_SIZE(res), -+ pdata, sizeof(*pdata), DMA_BIT_MASK(32)); -+} -+ -+struct platform_device *__init imx53_add_ahci_imx(void) -+{ -+ struct ahci_platform_data pdata = { -+ .init = imx_sata_init, -+ .exit = imx_sata_exit, -+ }; -+ -+ return imx_add_ahci_imx(&imx53_ahci_imx_data, &pdata); -+} -diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h -index 524538a..f04e063 100644 ---- a/arch/arm/plat-mxc/include/mach/devices-common.h -+++ b/arch/arm/plat-mxc/include/mach/devices-common.h -@@ -301,3 +301,13 @@ struct platform_device *__init imx_add_spi_imx( - struct platform_device *imx_add_imx_dma(void); - struct platform_device *imx_add_imx_sdma(char *name, - resource_size_t iobase, int irq, struct sdma_platform_data *pdata); -+ -+#include -+struct imx_ahci_imx_data { -+ const char *devid; -+ resource_size_t iobase; -+ resource_size_t irq; -+}; -+struct platform_device *__init imx_add_ahci_imx( -+ const struct imx_ahci_imx_data *data, -+ const struct ahci_platform_data *pdata); diff --git a/debian/patches/features/arm/imx53_ahci2.patch b/debian/patches/features/arm/imx53_ahci2.patch deleted file mode 100644 index 9eca40afc..000000000 --- a/debian/patches/features/arm/imx53_ahci2.patch +++ /dev/null @@ -1,85 +0,0 @@ -commit 904c04feaf13ed58790a34a0b11cd7b885b94b4b -Author: Richard Zhu -Date: Wed Sep 28 15:41:54 2011 +0800 - - [libata] ahci_platform: Add the board_ids and pi refer to different features - - On imx53 AHCI, soft reset fails with IPMS set when PMP - is enabled but SATA HDD/ODD is connected to SATA port, - do soft reset again to port 0. - So the 'ahci_pmp_retry_srst_ops' is required when imx53 - ahci is present. - - Signed-off-by: Richard Zhu - Acked-by: Eric Miao - Signed-off-by: Jeff Garzik - -diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c -index 6fef1fa..c03277d 100644 ---- a/drivers/ata/ahci_platform.c -+++ b/drivers/ata/ahci_platform.c -@@ -23,6 +23,41 @@ - #include - #include "ahci.h" - -+enum ahci_type { -+ AHCI, /* standard platform ahci */ -+ IMX53_AHCI, /* ahci on i.mx53 */ -+}; -+ -+static struct platform_device_id ahci_devtype[] = { -+ { -+ .name = "ahci", -+ .driver_data = AHCI, -+ }, { -+ .name = "imx53-ahci", -+ .driver_data = IMX53_AHCI, -+ }, { -+ /* sentinel */ -+ } -+}; -+MODULE_DEVICE_TABLE(platform, ahci_devtype); -+ -+ -+static const struct ata_port_info ahci_port_info[] = { -+ /* by features */ -+ [AHCI] = { -+ .flags = AHCI_FLAG_COMMON, -+ .pio_mask = ATA_PIO4, -+ .udma_mask = ATA_UDMA6, -+ .port_ops = &ahci_ops, -+ }, -+ [IMX53_AHCI] = { -+ .flags = AHCI_FLAG_COMMON, -+ .pio_mask = ATA_PIO4, -+ .udma_mask = ATA_UDMA6, -+ .port_ops = &ahci_pmp_retry_srst_ops, -+ }, -+}; -+ - static struct scsi_host_template ahci_platform_sht = { - AHCI_SHT("ahci_platform"), - }; -@@ -31,12 +66,8 @@ static int __init ahci_probe(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; - struct ahci_platform_data *pdata = dev->platform_data; -- struct ata_port_info pi = { -- .flags = AHCI_FLAG_COMMON, -- .pio_mask = ATA_PIO4, -- .udma_mask = ATA_UDMA6, -- .port_ops = &ahci_ops, -- }; -+ const struct platform_device_id *id = platform_get_device_id(pdev); -+ struct ata_port_info pi = ahci_port_info[id->driver_data]; - const struct ata_port_info *ppi[] = { &pi, NULL }; - struct ahci_host_priv *hpriv; - struct ata_host *host; -@@ -177,6 +208,7 @@ static struct platform_driver ahci_driver = { - .name = "ahci", - .owner = THIS_MODULE, - }, -+ .id_table = ahci_devtype, - }; - - static int __init ahci_init(void) diff --git a/debian/patches/features/arm/imx53_ahci3.patch b/debian/patches/features/arm/imx53_ahci3.patch deleted file mode 100644 index 2e059cd38..000000000 --- a/debian/patches/features/arm/imx53_ahci3.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit e97e303d801f9ab74590ff5d56e614e811efe98b -Author: Richard Zhu -Date: Wed Sep 28 15:41:55 2011 +0800 - - MX53 Enable the AHCI SATA on MX53 ARD board - - Signed-off-by: Richard Zhu - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c -index 76a67c4..ef2039e 100644 ---- a/arch/arm/mach-mx5/board-mx53_ard.c -+++ b/arch/arm/mach-mx5/board-mx53_ard.c -@@ -234,6 +234,7 @@ static void __init mx53_ard_board_init(void) - imx53_add_imx_i2c(1, &mx53_ard_i2c2_data); - imx53_add_imx_i2c(2, &mx53_ard_i2c3_data); - imx_add_gpio_keys(&ard_button_data); -+ imx53_add_ahci_imx(); - } - - static void __init mx53_ard_timer_init(void) diff --git a/debian/patches/features/arm/imx53_ahci4.patch b/debian/patches/features/arm/imx53_ahci4.patch deleted file mode 100644 index bf6575a29..000000000 --- a/debian/patches/features/arm/imx53_ahci4.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 0661b82c94925fb47708165eaf78cf380b31ffb3 -Author: Richard Zhu -Date: Wed Sep 28 15:41:56 2011 +0800 - - MX53 Enable the AHCI SATA on MX53 LOCO board - - Signed-off-by: Richard Zhu - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/board-mx53_loco.c b/arch/arm/mach-mx5/board-mx53_loco.c -index 4e1d51d..940aac9 100644 ---- a/arch/arm/mach-mx5/board-mx53_loco.c -+++ b/arch/arm/mach-mx5/board-mx53_loco.c -@@ -273,6 +273,7 @@ static void __init mx53_loco_board_init(void) - imx53_add_sdhci_esdhc_imx(2, &mx53_loco_sd3_data); - imx_add_gpio_keys(&loco_button_data); - gpio_led_register_device(-1, &mx53loco_leds_data); -+ imx53_add_ahci_imx(); - } - - static void __init mx53_loco_timer_init(void) diff --git a/debian/patches/features/arm/imx53_ahci5.patch b/debian/patches/features/arm/imx53_ahci5.patch deleted file mode 100644 index d6e8d82cb..000000000 --- a/debian/patches/features/arm/imx53_ahci5.patch +++ /dev/null @@ -1,50 +0,0 @@ -commit d870ea1d6bc5057f2599416655b42ab192dae6d0 -Author: Richard Zhu -Date: Wed Sep 28 15:41:57 2011 +0800 - - MX53 Enable the AHCI SATA on MX53 SMD board - - Signed-off-by: Richard Zhu - Signed-off-by: Sascha Hauer - -diff --git a/arch/arm/mach-mx5/board-mx53_smd.c b/arch/arm/mach-mx5/board-mx53_smd.c -index bc02894..efcab68 100644 ---- a/arch/arm/mach-mx5/board-mx53_smd.c -+++ b/arch/arm/mach-mx5/board-mx53_smd.c -@@ -35,6 +35,7 @@ - #include "devices-imx53.h" - - #define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6) -+#define MX53_SMD_SATA_PWR_EN IMX_GPIO_NR(3, 3) - - static iomux_v3_cfg_t mx53_smd_pads[] = { - MX53_PAD_CSI0_DAT10__UART1_TXD_MUX, -@@ -111,6 +112,19 @@ static const struct imxi2c_platform_data mx53_smd_i2c_data __initconst = { - .bitrate = 100000, - }; - -+static inline void mx53_smd_ahci_pwr_on(void) -+{ -+ int ret; -+ -+ /* Enable SATA PWR */ -+ ret = gpio_request_one(MX53_SMD_SATA_PWR_EN, -+ GPIOF_DIR_OUT | GPIOF_INIT_HIGH, "ahci-sata-pwr"); -+ if (ret) { -+ pr_err("failed to enable SATA_PWR_EN: %d\n", ret); -+ return; -+ } -+} -+ - static void __init mx53_smd_board_init(void) - { - imx53_soc_init(); -@@ -125,6 +139,8 @@ static void __init mx53_smd_board_init(void) - imx53_add_sdhci_esdhc_imx(0, NULL); - imx53_add_sdhci_esdhc_imx(1, NULL); - imx53_add_sdhci_esdhc_imx(2, NULL); -+ mx53_smd_ahci_pwr_on(); -+ imx53_add_ahci_imx(); - } - - static void __init mx53_smd_timer_init(void) diff --git a/debian/patches/features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch b/debian/patches/features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch deleted file mode 100644 index 26893ca2a..000000000 --- a/debian/patches/features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch +++ /dev/null @@ -1,56 +0,0 @@ -Subject: [v2] libertas: prioritize usb8388_olpc.bin firmware on OLPC machines -Date: Thu, 04 Aug 2011 23:06:52 -0000 -From: Andres Salomon - -Normally, the v9 firmware will be loaded if it's available. However, on -OLPC XO-1 machines, the olpc-specific firmware supports extra functionality. -This makes the libertas driver attempt to load the custom firmware first -if the machine is an OLPC machine; if that fails (or it's not an OLPC -machine), fall back to attempting to load the other firmwares. - -Signed-off-by: Andres Salomon -Signed-off-by: Dan Williams -[bwh: Add "libertas/" to path] ---- -drivers/net/wireless/libertas/if_usb.c | 21 +++++++++++++++++++++ - 1 files changed, 21 insertions(+), 0 deletions(-) - -diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c -index b5acc39..527cb11 100644 ---- a/drivers/net/wireless/libertas/if_usb.c -+++ b/drivers/net/wireless/libertas/if_usb.c -@@ -973,6 +973,23 @@ static const struct { - { MODEL_8682, "libertas/usb8682.bin" } - }; - -+#ifdef CONFIG_OLPC -+ -+static int try_olpc_fw(struct if_usb_card *cardp) -+{ -+ int retval = -ENOENT; -+ -+ /* try the OLPC firmware first; fall back to fw_table list */ -+ if (machine_is_olpc() && cardp->model == MODEL_8388) -+ retval = request_firmware(&cardp->fw, "libertas/usb8388_olpc.bin", -+ &cardp->udev->dev); -+ return retval; -+} -+ -+#else -+static int try_olpc_fw(struct if_usb_card *cardp) { return -ENOENT; } -+#endif /* !CONFIG_OLPC */ -+ - static int get_fw(struct if_usb_card *cardp, const char *fwname) - { - int i; -@@ -981,6 +998,10 @@ static int get_fw(struct if_usb_card *cardp, const char *fwname) - if (fwname) - return request_firmware(&cardp->fw, fwname, &cardp->udev->dev); - -+ /* Handle OLPC firmware */ -+ if (try_olpc_fw(cardp) == 0) -+ return 0; -+ - /* Otherwise search for firmware to use */ - for (i = 0; i < ARRAY_SIZE(fw_table); i++) { - if (fw_table[i].model != cardp->model) diff --git a/debian/patches/series/base b/debian/patches/series/base index a9db79d6c..512cd027a 100644 --- a/debian/patches/series/base +++ b/debian/patches/series/base @@ -22,7 +22,6 @@ + bugfix/powerpc/lpar-console.patch + debian/sysrq-mask.patch -+ debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch + debian/arch-sh4-fix-uimage-build.patch @@ -40,36 +39,13 @@ + features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch + debian/cgroups-Document-the-Debian-memory-resource-controll.patch + bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch -+ bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch -+ features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch -+ bugfix/arm/ARM-ixp4xx-gpiolib-support.patch + bugfix/all/ark3116-initialisation-fix.patch + bugfix/all/xfs-fix-memory-corruption-in-xfs_readlink.patch + bugfix/all/xfs-fix-memory-corruption-in-xfs_readlink-2.patch + bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch -+ bugfix/alpha/alpha-wire-up-accept4-syscall.patch -+ bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch -+ bugfix/powerpc/powerpc-ptrace-Fix-build-with-gcc-4.6.patch -+ bugfix/arm/ARM-add-io-read-write-16-32-be-functions.patch -+ bugfix/all/cifs-freezer-add-wait_event_freezekillable-and-have-.patch -+ bugfix/all/CIFS-Fixup-trivial-checkpatch-warning.patch -+ bugfix/all/Fix-build-break-when-freezer-not-configured.patch -+ bugfix/all/PM-Freezer-Reimplement-wait_event_freezekillable-usi.patch -+ bugfix/all/hfs-fix-hfs_find_init-sb-ext_tree-NULL-ptr-oops.patch -+ bugfix/all/vmscan-fix-shrinker-callback-bug-in-fs-super.c.patch + bugfix/all/block-Always-check-length-of-all-iov-entries-in-blk_.patch + features/x86/x86-Add-amilo-rfkill-driver-for-some-Fujitsu-Siemens.patch # Defer until we're sure about the system call number #+ bugfix/ia64/ia64-Add-accept4-syscall.patch + bugfix/arm/ixp4xx_iobe.patch -+ features/arm/allow_imx5x_build.patch -+ features/arm/imx51_pata1.patch -+ features/arm/imx51_pata2.patch -+ features/arm/imx51_pata3.patch -+ features/arm/imx53_ahci1.patch -+ features/arm/imx53_ahci2.patch -+ features/arm/imx53_ahci3.patch -+ features/arm/imx53_ahci4.patch -+ features/arm/imx53_ahci5.patch -