Merge relevant changes from 2.6.32-{14,15,16}
svn path=/dists/trunk/linux-2.6/; revision=15834
This commit is contained in:
commit
5bc5ff1632
|
@ -10,12 +10,38 @@ linux-2.6 (2.6.34-1~experimental.2) UNRELEASED; urgency=low
|
|||
* [mipsel] Add a loongson-2f flavour
|
||||
* [mipsel] Loongson: Define rtc device on MC146818-equipped systems
|
||||
* Make gcc-4.4 the default compiler
|
||||
* [ia64] Hardcode the output of the scripts under arch/ia64/scripts so
|
||||
that we can build out-of-tree modules correctly (refresh and re-add
|
||||
dropped patch) (Closes: #392592)
|
||||
* [ia64] Enable SGI SN support and mspec driver (Closes: #582224)
|
||||
* iwlwifi: Disable QoS when connected to a non-QoS-capable AP
|
||||
(Closes: #578262)
|
||||
* [x86] Disable e_powersaver cpufreq driver as unsafe. It has already
|
||||
been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used
|
||||
instead on some VIA C7 systems. (Closes: #566208)
|
||||
* [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize)
|
||||
* Install debug kernel image in /usr/lib/debug/boot (Closes: #582810)
|
||||
* Build inet_lro as a module
|
||||
* [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108)
|
||||
|
||||
[ maximilian attems ]
|
||||
* topconfig enable CFQ_GROUP_IOSCHED, MFD_WM8994, REGULATOR_MAX8649,
|
||||
REGULATOR_WM8994, VHOST_NET, BT_ATH3K, CRYPTO_PCRYPT.
|
||||
* [x86] Enable X86_PCC_CPUFREQ, VGA_SWITCHEROO (closes: #582637).
|
||||
|
||||
[ Martin Michlmayr ]
|
||||
* QNAP TS-419P: Export GPIO indicating jumper setting of JP1.
|
||||
|
||||
[ dann frazier ]
|
||||
* [hppa] clear floating point exception flag on SIGFPE signal
|
||||
(Closes: #559406)
|
||||
|
||||
[ Aurelien Jarno ]
|
||||
* [sh4] fix sh_tmu clocksource following recent nohz changes.
|
||||
|
||||
[ Moritz Muehlenhoff ]
|
||||
* Enable X86 board specific fixups for reboot (Closes: #536537)
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Wed, 26 May 2010 02:55:03 +0100
|
||||
|
||||
linux-2.6 (2.6.34-1~experimental.1) experimental; urgency=low
|
||||
|
|
|
@ -3663,7 +3663,7 @@ CONFIG_INET_IPCOMP=m
|
|||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_INET_LRO=y
|
||||
CONFIG_INET_LRO=m
|
||||
CONFIG_INET_DIAG=m
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_BIC=m
|
||||
|
|
|
@ -6,6 +6,7 @@ CONFIG_OPROFILE=m
|
|||
##
|
||||
## file: arch/ia64/Kconfig
|
||||
##
|
||||
CONFIG_IA64_UNCACHED_ALLOCATOR=y
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_PERMIT_BSP_REMOVE=y
|
||||
|
@ -14,8 +15,10 @@ CONFIG_IA32_SUPPORT=y
|
|||
CONFIG_IA64_MCA_RECOVERY=m
|
||||
CONFIG_PERFMON=y
|
||||
CONFIG_IA64_PALINFO=m
|
||||
CONFIG_SGI_SN=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_CRASH_DUMP=y
|
||||
CONFIG_MSPEC=m
|
||||
|
||||
##
|
||||
## file: arch/ia64/Kconfig.debug
|
||||
|
|
|
@ -9,7 +9,7 @@ CONFIG_VMI=y
|
|||
CONFIG_NR_CPUS=32
|
||||
CONFIG_VM86=y
|
||||
CONFIG_TOSHIBA=m
|
||||
# CONFIG_X86_REBOOTFIXUPS is not set
|
||||
CONFIG_X86_REBOOTFIXUPS=y
|
||||
## choice: High Memory Support
|
||||
# CONFIG_NOHIGHMEM is not set
|
||||
CONFIG_HIGHMEM4G=y
|
||||
|
@ -59,7 +59,7 @@ CONFIG_X86_P4_CLOCKMOD=m
|
|||
CONFIG_X86_CPUFREQ_NFORCE2=m
|
||||
CONFIG_X86_LONGRUN=m
|
||||
CONFIG_X86_LONGHAUL=m
|
||||
CONFIG_X86_E_POWERSAVER=m
|
||||
# CONFIG_X86_E_POWERSAVER is not set
|
||||
CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
|
||||
|
||||
##
|
||||
|
|
|
@ -455,6 +455,8 @@ CONFIG_FB_FFB=y
|
|||
# CONFIG_FB_CG14 is not set
|
||||
# CONFIG_FB_P9100 is not set
|
||||
# CONFIG_FB_LEO is not set
|
||||
CONFIG_FB_XVR500=y
|
||||
CONFIG_FB_XVR2500=y
|
||||
# CONFIG_FB_S1D13XXX is not set
|
||||
# CONFIG_FB_NVIDIA is not set
|
||||
# CONFIG_FB_RIVA is not set
|
||||
|
|
39
debian/patches/bugfix/all/ext4-Conditionally-define-compat-ioctl-numbers.patch
vendored
Normal file
39
debian/patches/bugfix/all/ext4-Conditionally-define-compat-ioctl-numbers.patch
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Mon, 17 May 2010 05:00:00 -0400
|
||||
Subject: [PATCH 1/2] ext4: Conditionally define compat ioctl numbers
|
||||
|
||||
commit 899ad0cea6ad7ff4ba24b16318edbc3cbbe03fad upstream.
|
||||
|
||||
It is unnecessary, and in general impossible, to define the compat
|
||||
ioctl numbers except when building the filesystem with CONFIG_COMPAT
|
||||
defined.
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
|
||||
---
|
||||
fs/ext4/ext4.h | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
|
||||
index 7441488..d8c28f6 100644
|
||||
--- a/fs/ext4/ext4.h
|
||||
+++ b/fs/ext4/ext4.h
|
||||
@@ -498,6 +498,7 @@ struct ext4_new_group_data {
|
||||
#define EXT4_IOC_ALLOC_DA_BLKS _IO('f', 12)
|
||||
#define EXT4_IOC_MOVE_EXT _IOWR('f', 15, struct move_extent)
|
||||
|
||||
+#if defined(__KERNEL__) && defined(CONFIG_COMPAT)
|
||||
/*
|
||||
* ioctl commands in 32 bit emulation
|
||||
*/
|
||||
@@ -513,6 +514,7 @@ struct ext4_new_group_data {
|
||||
#endif
|
||||
#define EXT4_IOC32_GETVERSION_OLD FS_IOC32_GETVERSION
|
||||
#define EXT4_IOC32_SETVERSION_OLD FS_IOC32_SETVERSION
|
||||
+#endif
|
||||
|
||||
|
||||
/*
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Mon, 17 May 2010 06:00:00 -0400
|
||||
Subject: [PATCH 2/2] ext4: Fix compat EXT4_IOC_ADD_GROUP
|
||||
|
||||
commit 4d92dc0f00a775dc2e1267b0e00befb783902fe7 upstream.
|
||||
|
||||
struct ext4_new_group_input needs to be converted because u64 has
|
||||
only 32-bit alignment on some 32-bit architectures, notably i386.
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
|
||||
---
|
||||
fs/ext4/ext4.h | 16 ++++++++++++++++
|
||||
fs/ext4/ioctl.c | 25 +++++++++++++++++++++++--
|
||||
2 files changed, 39 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
|
||||
index d8c28f6..2c1165f 100644
|
||||
--- a/fs/ext4/ext4.h
|
||||
+++ b/fs/ext4/ext4.h
|
||||
@@ -29,6 +29,9 @@
|
||||
#include <linux/wait.h>
|
||||
#include <linux/blockgroup_lock.h>
|
||||
#include <linux/percpu_counter.h>
|
||||
+#ifdef __KERNEL__
|
||||
+#include <linux/compat.h>
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* The fourth extended filesystem constants/structures
|
||||
@@ -432,6 +435,18 @@ struct ext4_new_group_input {
|
||||
__u16 unused;
|
||||
};
|
||||
|
||||
+#if defined(__KERNEL__) && defined(CONFIG_COMPAT)
|
||||
+struct compat_ext4_new_group_input {
|
||||
+ u32 group;
|
||||
+ compat_u64 block_bitmap;
|
||||
+ compat_u64 inode_bitmap;
|
||||
+ compat_u64 inode_table;
|
||||
+ u32 blocks_count;
|
||||
+ u16 reserved_blocks;
|
||||
+ u16 unused;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
/* The struct ext4_new_group_input in kernel space, with free_blocks_count */
|
||||
struct ext4_new_group_data {
|
||||
__u32 group;
|
||||
@@ -509,6 +524,7 @@ struct ext4_new_group_data {
|
||||
#define EXT4_IOC32_GETRSVSZ _IOR('f', 5, int)
|
||||
#define EXT4_IOC32_SETRSVSZ _IOW('f', 6, int)
|
||||
#define EXT4_IOC32_GROUP_EXTEND _IOW('f', 7, unsigned int)
|
||||
+#define EXT4_IOC32_GROUP_ADD _IOW('f', 8, struct compat_ext4_new_group_input)
|
||||
#ifdef CONFIG_JBD2_DEBUG
|
||||
#define EXT4_IOC32_WAIT_FOR_READONLY _IOR('f', 99, int)
|
||||
#endif
|
||||
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
|
||||
index 66fa0b0..6ddec84 100644
|
||||
--- a/fs/ext4/ioctl.c
|
||||
+++ b/fs/ext4/ioctl.c
|
||||
@@ -373,8 +373,29 @@ long ext4_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
case EXT4_IOC32_SETRSVSZ:
|
||||
cmd = EXT4_IOC_SETRSVSZ;
|
||||
break;
|
||||
- case EXT4_IOC_GROUP_ADD:
|
||||
- break;
|
||||
+ case EXT4_IOC32_GROUP_ADD: {
|
||||
+ struct compat_ext4_new_group_input __user *uinput;
|
||||
+ struct ext4_new_group_input input;
|
||||
+ mm_segment_t old_fs;
|
||||
+ int err;
|
||||
+
|
||||
+ uinput = compat_ptr(arg);
|
||||
+ err = get_user(input.group, &uinput->group);
|
||||
+ err |= get_user(input.block_bitmap, &uinput->block_bitmap);
|
||||
+ err |= get_user(input.inode_bitmap, &uinput->inode_bitmap);
|
||||
+ err |= get_user(input.inode_table, &uinput->inode_table);
|
||||
+ err |= get_user(input.blocks_count, &uinput->blocks_count);
|
||||
+ err |= get_user(input.reserved_blocks,
|
||||
+ &uinput->reserved_blocks);
|
||||
+ if (err)
|
||||
+ return -EFAULT;
|
||||
+ old_fs = get_fs();
|
||||
+ set_fs(KERNEL_DS);
|
||||
+ err = ext4_ioctl(file, EXT4_IOC_GROUP_ADD,
|
||||
+ (unsigned long) &input);
|
||||
+ set_fs(old_fs);
|
||||
+ return err;
|
||||
+ }
|
||||
default:
|
||||
return -ENOIOCTLCMD;
|
||||
}
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,357 @@
|
|||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Mon, 29 Mar 2010 12:18:35 +0200
|
||||
Subject: [PATCH] iwlwifi: manage QoS by mac stack
|
||||
|
||||
commit e61146e36b40fd9d346118c40285913236c329f3 upstream.
|
||||
|
||||
We activate/deactivate QoS and setup default queue parameters in iwlwifi
|
||||
driver. Mac stack do the same, so we do not need repeat that work here.
|
||||
Stack also will tell when disable QoS, this will fix driver when working
|
||||
with older APs, that do not have QoS implemented.
|
||||
|
||||
Patch make "force = true" in iwl_active_qos() assuming we always want
|
||||
to do with QoS what mac stack wish.
|
||||
|
||||
Patch also remove unused qos_cap bits, do not initialize qos_active = 0,
|
||||
as we have it initialized to zero by kzalloc.
|
||||
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
[bwh: Adjust context for 2.6.34]
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn.c | 15 ---
|
||||
drivers/net/wireless/iwlwifi/iwl-core.c | 142 +++------------------------
|
||||
drivers/net/wireless/iwlwifi/iwl-core.h | 3 +-
|
||||
drivers/net/wireless/iwlwifi/iwl-dev.h | 21 ----
|
||||
drivers/net/wireless/iwlwifi/iwl3945-base.c | 7 --
|
||||
5 files changed, 17 insertions(+), 171 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||
index 3f0fd75..b431e92 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||
@@ -2531,7 +2531,6 @@ void iwl_post_associate(struct iwl_priv *priv)
|
||||
{
|
||||
struct ieee80211_conf *conf = NULL;
|
||||
int ret = 0;
|
||||
- unsigned long flags;
|
||||
|
||||
if (priv->iw_mode == NL80211_IFTYPE_AP) {
|
||||
IWL_ERR(priv, "%s Should not be called in AP mode\n", __func__);
|
||||
@@ -2612,10 +2611,6 @@ void iwl_post_associate(struct iwl_priv *priv)
|
||||
if (priv->iw_mode == NL80211_IFTYPE_ADHOC)
|
||||
priv->assoc_station_added = 1;
|
||||
|
||||
- spin_lock_irqsave(&priv->lock, flags);
|
||||
- iwl_activate_qos(priv, 0);
|
||||
- spin_unlock_irqrestore(&priv->lock, flags);
|
||||
-
|
||||
/* the chain noise calibration will enabled PM upon completion
|
||||
* If chain noise has already been run, then we need to enable
|
||||
* power management here */
|
||||
@@ -2792,7 +2787,6 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
void iwl_config_ap(struct iwl_priv *priv)
|
||||
{
|
||||
int ret = 0;
|
||||
- unsigned long flags;
|
||||
|
||||
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|
||||
return;
|
||||
@@ -2844,10 +2838,6 @@ void iwl_config_ap(struct iwl_priv *priv)
|
||||
/* restore RXON assoc */
|
||||
priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK;
|
||||
iwlcore_commit_rxon(priv);
|
||||
- iwl_reset_qos(priv);
|
||||
- spin_lock_irqsave(&priv->lock, flags);
|
||||
- iwl_activate_qos(priv, 1);
|
||||
- spin_unlock_irqrestore(&priv->lock, flags);
|
||||
iwl_add_bcast_station(priv);
|
||||
}
|
||||
iwl_send_beacon_cmd(priv);
|
||||
@@ -3382,11 +3372,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
|
||||
|
||||
iwl_init_scan_params(priv);
|
||||
|
||||
- iwl_reset_qos(priv);
|
||||
-
|
||||
- priv->qos_data.qos_active = 0;
|
||||
- priv->qos_data.qos_cap.val = 0;
|
||||
-
|
||||
priv->rates_mask = IWL_RATES_MASK;
|
||||
/* Set the tx_power_user_lmt to the lowest power level
|
||||
* this value will get overwritten by channel max power avg
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
|
||||
index 1b4408a..38d19c1 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
|
||||
@@ -223,17 +223,13 @@ EXPORT_SYMBOL(iwl_hw_detect);
|
||||
/*
|
||||
* QoS support
|
||||
*/
|
||||
-void iwl_activate_qos(struct iwl_priv *priv, u8 force)
|
||||
+static void iwl_update_qos(struct iwl_priv *priv)
|
||||
{
|
||||
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|
||||
return;
|
||||
|
||||
priv->qos_data.def_qos_parm.qos_flags = 0;
|
||||
|
||||
- if (priv->qos_data.qos_cap.q_AP.queue_request &&
|
||||
- !priv->qos_data.qos_cap.q_AP.txop_request)
|
||||
- priv->qos_data.def_qos_parm.qos_flags |=
|
||||
- QOS_PARAM_FLG_TXOP_TYPE_MSK;
|
||||
if (priv->qos_data.qos_active)
|
||||
priv->qos_data.def_qos_parm.qos_flags |=
|
||||
QOS_PARAM_FLG_UPDATE_EDCA_MSK;
|
||||
@@ -241,118 +237,14 @@ void iwl_activate_qos(struct iwl_priv *priv, u8 force)
|
||||
if (priv->current_ht_config.is_ht)
|
||||
priv->qos_data.def_qos_parm.qos_flags |= QOS_PARAM_FLG_TGN_MSK;
|
||||
|
||||
- if (force || iwl_is_associated(priv)) {
|
||||
- IWL_DEBUG_QOS(priv, "send QoS cmd with Qos active=%d FLAGS=0x%X\n",
|
||||
- priv->qos_data.qos_active,
|
||||
- priv->qos_data.def_qos_parm.qos_flags);
|
||||
+ IWL_DEBUG_QOS(priv, "send QoS cmd with Qos active=%d FLAGS=0x%X\n",
|
||||
+ priv->qos_data.qos_active,
|
||||
+ priv->qos_data.def_qos_parm.qos_flags);
|
||||
|
||||
- iwl_send_cmd_pdu_async(priv, REPLY_QOS_PARAM,
|
||||
- sizeof(struct iwl_qosparam_cmd),
|
||||
- &priv->qos_data.def_qos_parm, NULL);
|
||||
- }
|
||||
+ iwl_send_cmd_pdu_async(priv, REPLY_QOS_PARAM,
|
||||
+ sizeof(struct iwl_qosparam_cmd),
|
||||
+ &priv->qos_data.def_qos_parm, NULL);
|
||||
}
|
||||
-EXPORT_SYMBOL(iwl_activate_qos);
|
||||
-
|
||||
-/*
|
||||
- * AC CWmin CW max AIFSN TXOP Limit TXOP Limit
|
||||
- * (802.11b) (802.11a/g)
|
||||
- * AC_BK 15 1023 7 0 0
|
||||
- * AC_BE 15 1023 3 0 0
|
||||
- * AC_VI 7 15 2 6.016ms 3.008ms
|
||||
- * AC_VO 3 7 2 3.264ms 1.504ms
|
||||
- */
|
||||
-void iwl_reset_qos(struct iwl_priv *priv)
|
||||
-{
|
||||
- u16 cw_min = 15;
|
||||
- u16 cw_max = 1023;
|
||||
- u8 aifs = 2;
|
||||
- bool is_legacy = false;
|
||||
- unsigned long flags;
|
||||
- int i;
|
||||
-
|
||||
- spin_lock_irqsave(&priv->lock, flags);
|
||||
- /* QoS always active in AP and ADHOC mode
|
||||
- * In STA mode wait for association
|
||||
- */
|
||||
- if (priv->iw_mode == NL80211_IFTYPE_ADHOC ||
|
||||
- priv->iw_mode == NL80211_IFTYPE_AP)
|
||||
- priv->qos_data.qos_active = 1;
|
||||
- else
|
||||
- priv->qos_data.qos_active = 0;
|
||||
-
|
||||
- /* check for legacy mode */
|
||||
- if ((priv->iw_mode == NL80211_IFTYPE_ADHOC &&
|
||||
- (priv->active_rate & IWL_OFDM_RATES_MASK) == 0) ||
|
||||
- (priv->iw_mode == NL80211_IFTYPE_STATION &&
|
||||
- (priv->staging_rxon.flags & RXON_FLG_SHORT_SLOT_MSK) == 0)) {
|
||||
- cw_min = 31;
|
||||
- is_legacy = 1;
|
||||
- }
|
||||
-
|
||||
- if (priv->qos_data.qos_active)
|
||||
- aifs = 3;
|
||||
-
|
||||
- /* AC_BE */
|
||||
- priv->qos_data.def_qos_parm.ac[0].cw_min = cpu_to_le16(cw_min);
|
||||
- priv->qos_data.def_qos_parm.ac[0].cw_max = cpu_to_le16(cw_max);
|
||||
- priv->qos_data.def_qos_parm.ac[0].aifsn = aifs;
|
||||
- priv->qos_data.def_qos_parm.ac[0].edca_txop = 0;
|
||||
- priv->qos_data.def_qos_parm.ac[0].reserved1 = 0;
|
||||
-
|
||||
- if (priv->qos_data.qos_active) {
|
||||
- /* AC_BK */
|
||||
- i = 1;
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_min = cpu_to_le16(cw_min);
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_max = cpu_to_le16(cw_max);
|
||||
- priv->qos_data.def_qos_parm.ac[i].aifsn = 7;
|
||||
- priv->qos_data.def_qos_parm.ac[i].edca_txop = 0;
|
||||
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||
-
|
||||
- /* AC_VI */
|
||||
- i = 2;
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_min =
|
||||
- cpu_to_le16((cw_min + 1) / 2 - 1);
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_max =
|
||||
- cpu_to_le16(cw_min);
|
||||
- priv->qos_data.def_qos_parm.ac[i].aifsn = 2;
|
||||
- if (is_legacy)
|
||||
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||
- cpu_to_le16(6016);
|
||||
- else
|
||||
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||
- cpu_to_le16(3008);
|
||||
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||
-
|
||||
- /* AC_VO */
|
||||
- i = 3;
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_min =
|
||||
- cpu_to_le16((cw_min + 1) / 4 - 1);
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_max =
|
||||
- cpu_to_le16((cw_min + 1) / 2 - 1);
|
||||
- priv->qos_data.def_qos_parm.ac[i].aifsn = 2;
|
||||
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||
- if (is_legacy)
|
||||
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||
- cpu_to_le16(3264);
|
||||
- else
|
||||
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||
- cpu_to_le16(1504);
|
||||
- } else {
|
||||
- for (i = 1; i < 4; i++) {
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_min =
|
||||
- cpu_to_le16(cw_min);
|
||||
- priv->qos_data.def_qos_parm.ac[i].cw_max =
|
||||
- cpu_to_le16(cw_max);
|
||||
- priv->qos_data.def_qos_parm.ac[i].aifsn = aifs;
|
||||
- priv->qos_data.def_qos_parm.ac[i].edca_txop = 0;
|
||||
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||
- }
|
||||
- }
|
||||
- IWL_DEBUG_QOS(priv, "set QoS to default \n");
|
||||
-
|
||||
- spin_unlock_irqrestore(&priv->lock, flags);
|
||||
-}
|
||||
-EXPORT_SYMBOL(iwl_reset_qos);
|
||||
|
||||
#define MAX_BIT_RATE_40_MHZ 150 /* Mbps */
|
||||
#define MAX_BIT_RATE_20_MHZ 72 /* Mbps */
|
||||
@@ -1894,12 +1786,6 @@ int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
cpu_to_le16((params->txop * 32));
|
||||
|
||||
priv->qos_data.def_qos_parm.ac[q].reserved1 = 0;
|
||||
- priv->qos_data.qos_active = 1;
|
||||
-
|
||||
- if (priv->iw_mode == NL80211_IFTYPE_AP)
|
||||
- iwl_activate_qos(priv, 1);
|
||||
- else if (priv->assoc_id && iwl_is_associated(priv))
|
||||
- iwl_activate_qos(priv, 0);
|
||||
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
@@ -2170,11 +2056,8 @@ int iwl_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
IWL_DEBUG_MAC80211(priv, "leave\n");
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
- iwl_reset_qos(priv);
|
||||
-
|
||||
priv->cfg->ops->lib->post_associate(priv);
|
||||
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(iwl_mac_beacon_update);
|
||||
@@ -2396,6 +2279,15 @@ int iwl_mac_config(struct ieee80211_hw *hw, u32 changed)
|
||||
iwl_set_tx_power(priv, conf->power_level, false);
|
||||
}
|
||||
|
||||
+ if (changed & IEEE80211_CONF_CHANGE_QOS) {
|
||||
+ bool qos_active = !!(conf->flags & IEEE80211_CONF_QOS);
|
||||
+
|
||||
+ spin_lock_irqsave(&priv->lock, flags);
|
||||
+ priv->qos_data.qos_active = qos_active;
|
||||
+ iwl_update_qos(priv);
|
||||
+ spin_unlock_irqrestore(&priv->lock, flags);
|
||||
+ }
|
||||
+
|
||||
if (!iwl_is_ready(priv)) {
|
||||
IWL_DEBUG_MAC80211(priv, "leave - not ready\n");
|
||||
goto out;
|
||||
@@ -2430,8 +2322,6 @@ void iwl_mac_reset_tsf(struct ieee80211_hw *hw)
|
||||
memset(&priv->current_ht_config, 0, sizeof(struct iwl_ht_config));
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
- iwl_reset_qos(priv);
|
||||
-
|
||||
spin_lock_irqsave(&priv->lock, flags);
|
||||
priv->assoc_id = 0;
|
||||
priv->assoc_capability = 0;
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||
index 9d7a68f..bc04b43 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||
@@ -316,8 +316,7 @@ struct iwl_cfg {
|
||||
struct ieee80211_hw *iwl_alloc_all(struct iwl_cfg *cfg,
|
||||
struct ieee80211_ops *hw_ops);
|
||||
void iwl_hw_detect(struct iwl_priv *priv);
|
||||
-void iwl_reset_qos(struct iwl_priv *priv);
|
||||
-void iwl_activate_qos(struct iwl_priv *priv, u8 force);
|
||||
+void iwl_activate_qos(struct iwl_priv *priv);
|
||||
int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
void iwl_set_rxon_hwcrypto(struct iwl_priv *priv, int hw_decrypt);
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||
index 46a5740..7f38d2d 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||
@@ -476,30 +476,9 @@ struct iwl_ht_config {
|
||||
u8 non_GF_STA_present;
|
||||
};
|
||||
|
||||
-union iwl_qos_capabity {
|
||||
- struct {
|
||||
- u8 edca_count:4; /* bit 0-3 */
|
||||
- u8 q_ack:1; /* bit 4 */
|
||||
- u8 queue_request:1; /* bit 5 */
|
||||
- u8 txop_request:1; /* bit 6 */
|
||||
- u8 reserved:1; /* bit 7 */
|
||||
- } q_AP;
|
||||
- struct {
|
||||
- u8 acvo_APSD:1; /* bit 0 */
|
||||
- u8 acvi_APSD:1; /* bit 1 */
|
||||
- u8 ac_bk_APSD:1; /* bit 2 */
|
||||
- u8 ac_be_APSD:1; /* bit 3 */
|
||||
- u8 q_ack:1; /* bit 4 */
|
||||
- u8 max_len:2; /* bit 5-6 */
|
||||
- u8 more_data_ack:1; /* bit 7 */
|
||||
- } q_STA;
|
||||
- u8 val;
|
||||
-};
|
||||
-
|
||||
/* QoS structures */
|
||||
struct iwl_qos_info {
|
||||
int qos_active;
|
||||
- union iwl_qos_capabity qos_cap;
|
||||
struct iwl_qosparam_cmd def_qos_parm;
|
||||
};
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||
index 4995134..24c240d 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||
@@ -3140,8 +3140,6 @@ void iwl3945_post_associate(struct iwl_priv *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
- iwl_activate_qos(priv, 0);
|
||||
-
|
||||
/* we have just associated, don't start scan too early */
|
||||
priv->next_scan_jiffies = jiffies + IWL_DELAY_NEXT_SCAN;
|
||||
}
|
||||
@@ -3889,11 +3887,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv)
|
||||
priv->iw_mode = NL80211_IFTYPE_STATION;
|
||||
priv->missed_beacon_threshold = IWL_MISSED_BEACON_THRESHOLD_DEF;
|
||||
|
||||
- iwl_reset_qos(priv);
|
||||
-
|
||||
- priv->qos_data.qos_active = 0;
|
||||
- priv->qos_data.qos_cap.val = 0;
|
||||
-
|
||||
priv->rates_mask = IWL_RATES_MASK;
|
||||
priv->tx_power_user_lmt = IWL_DEFAULT_TX_POWER;
|
||||
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Mon, 29 Mar 2010 12:18:34 +0200
|
||||
Subject: [PATCH] mac80211: explicitly disable/enable QoS
|
||||
|
||||
commit e1b3ec1a2a336c328c336cfa5485a5f0484cc90d upstream.
|
||||
|
||||
Add interface to disable/enable QoS (aka WMM or WME). Currently drivers
|
||||
enable it explicitly when ->conf_tx method is called, and newer disable.
|
||||
Disabling is needed for some APs, which do not support QoS, such
|
||||
we should send QoS frames to them.
|
||||
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
include/net/mac80211.h | 5 +++++
|
||||
net/mac80211/mlme.c | 9 ++++++++-
|
||||
net/mac80211/util.c | 5 +++++
|
||||
3 files changed, 18 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
|
||||
index ecaae10..dcf3c5f 100644
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -587,11 +587,15 @@ struct ieee80211_rx_status {
|
||||
* may turn the device off as much as possible. Typically, this flag will
|
||||
* be set when an interface is set UP but not associated or scanning, but
|
||||
* it can also be unset in that case when monitor interfaces are active.
|
||||
+ * @IEEE80211_CONF_QOS: Enable 802.11e QoS also know as WMM (Wireless
|
||||
+ * Multimedia). On some drivers (iwlwifi is one of know) we have
|
||||
+ * to enable/disable QoS explicitly.
|
||||
*/
|
||||
enum ieee80211_conf_flags {
|
||||
IEEE80211_CONF_MONITOR = (1<<0),
|
||||
IEEE80211_CONF_PS = (1<<1),
|
||||
IEEE80211_CONF_IDLE = (1<<2),
|
||||
+ IEEE80211_CONF_QOS = (1<<3),
|
||||
};
|
||||
|
||||
|
||||
@@ -616,6 +620,7 @@ enum ieee80211_conf_changed {
|
||||
IEEE80211_CONF_CHANGE_CHANNEL = BIT(6),
|
||||
IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7),
|
||||
IEEE80211_CONF_CHANGE_IDLE = BIT(8),
|
||||
+ IEEE80211_CONF_CHANGE_QOS = BIT(9),
|
||||
};
|
||||
|
||||
/**
|
||||
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
|
||||
index 65eafda..c686d1b 100644
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -586,6 +586,9 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
|
||||
int count;
|
||||
u8 *pos, uapsd_queues = 0;
|
||||
|
||||
+ if (!local->ops->conf_tx)
|
||||
+ return;
|
||||
+
|
||||
if (local->hw.queues < 4)
|
||||
return;
|
||||
|
||||
@@ -660,11 +663,15 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
|
||||
params.aifs, params.cw_min, params.cw_max, params.txop,
|
||||
params.uapsd);
|
||||
#endif
|
||||
- if (drv_conf_tx(local, queue, ¶ms) && local->ops->conf_tx)
|
||||
+ if (drv_conf_tx(local, queue, ¶ms))
|
||||
printk(KERN_DEBUG "%s: failed to set TX queue "
|
||||
"parameters for queue %d\n",
|
||||
wiphy_name(local->hw.wiphy), queue);
|
||||
}
|
||||
+
|
||||
+ /* enable WMM or activate new settings */
|
||||
+ local->hw.conf.flags |= IEEE80211_CONF_QOS;
|
||||
+ drv_config(local, IEEE80211_CONF_CHANGE_QOS);
|
||||
}
|
||||
|
||||
static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata,
|
||||
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
|
||||
index c453226..7b2c170 100644
|
||||
--- a/net/mac80211/util.c
|
||||
+++ b/net/mac80211/util.c
|
||||
@@ -796,6 +796,11 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
|
||||
|
||||
drv_conf_tx(local, queue, &qparam);
|
||||
}
|
||||
+
|
||||
+ /* after reinitialize QoS TX queues setting to default,
|
||||
+ * disable QoS at all */
|
||||
+ local->hw.conf.flags &= ~IEEE80211_CONF_QOS;
|
||||
+ drv_config(local, IEEE80211_CONF_CHANGE_QOS);
|
||||
}
|
||||
|
||||
void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata,
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
--- linux-source-2.6.18/arch/ia64/Makefile.orig 2007-01-03 17:26:31.000000000 -0700
|
||||
+++ linux-source-2.6.18/arch/ia64/Makefile 2007-01-03 17:57:52.000000000 -0700
|
||||
@@ -28,16 +28,7 @@
|
||||
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
|
||||
index e7cbaa0..c8af869 100644
|
||||
--- a/arch/ia64/Makefile
|
||||
+++ b/arch/ia64/Makefile
|
||||
@@ -30,16 +30,7 @@ cflags-y := -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \
|
||||
-falign-functions=32 -frename-registers -fno-optimize-sibling-calls
|
||||
CFLAGS_KERNEL := -mconstant-gp
|
||||
|
||||
|
@ -16,9 +18,9 @@
|
|||
-endif
|
||||
+KBUILD_CPPFLAGS += -DHAVE_WORKING_TEXT_ALIGN -DHAVE_MODEL_SMALL_ATTRIBUTE -DHAVE_SERIALIZE_DIRECTIVE
|
||||
|
||||
ifeq ($(call cc-version),0304)
|
||||
cflags-$(CONFIG_ITANIUM) += -mtune=merced
|
||||
@@ -67,7 +58,7 @@
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o
|
||||
@@ -69,7 +60,7 @@ boot := arch/ia64/hp/sim/boot
|
||||
|
||||
PHONY += boot compressed check
|
||||
|
||||
|
@ -27,7 +29,7 @@
|
|||
|
||||
compressed: vmlinux.gz
|
||||
|
||||
@@ -76,9 +67,6 @@
|
||||
@@ -78,9 +69,6 @@ vmlinuz: vmlinux.gz
|
||||
vmlinux.gz: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $@
|
||||
|
||||
|
@ -37,9 +39,11 @@
|
|||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
@@ -94,5 +82,4 @@
|
||||
@@ -96,7 +84,6 @@ define archhelp
|
||||
echo '* compressed - Build compressed kernel image'
|
||||
echo ' install - Install compressed kernel image'
|
||||
echo ' boot - Build vmlinux and bootloader for Ski simulator'
|
||||
- echo '* unwcheck - Check vmlinux for invalid unwind info'
|
||||
endef
|
||||
|
||||
archprepare: make_nr_irqs_h FORCE
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
From 550f0d922286556c7ea43974bb7921effb5a5278 Mon Sep 17 00:00:00 2001
|
||||
From: Helge Deller <deller@gmx.de>
|
||||
Date: Mon, 3 May 2010 20:44:21 +0000
|
||||
Subject: [PATCH] parisc: clear floating point exception flag on SIGFPE signal
|
||||
|
||||
Clear the floating point exception flag before returning to
|
||||
user space. This is needed, else the libc trampoline handler
|
||||
may hit the same SIGFPE again while building up a trampoline
|
||||
to a signal handler.
|
||||
|
||||
Fixes debian bug #559406.
|
||||
|
||||
Signed-off-by: Helge Deller <deller@gmx.de>
|
||||
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
|
||||
---
|
||||
arch/parisc/math-emu/decode_exc.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/parisc/math-emu/decode_exc.c b/arch/parisc/math-emu/decode_exc.c
|
||||
index 3ca1c61..27a7492 100644
|
||||
--- a/arch/parisc/math-emu/decode_exc.c
|
||||
+++ b/arch/parisc/math-emu/decode_exc.c
|
||||
@@ -342,6 +342,7 @@ decode_fpu(unsigned int Fpu_register[], unsigned int trap_counts[])
|
||||
return SIGNALCODE(SIGFPE, FPE_FLTINV);
|
||||
case DIVISIONBYZEROEXCEPTION:
|
||||
update_trap_counts(Fpu_register, aflags, bflags, trap_counts);
|
||||
+ Clear_excp_register(exception_index);
|
||||
return SIGNALCODE(SIGFPE, FPE_FLTDIV);
|
||||
case INEXACTEXCEPTION:
|
||||
update_trap_counts(Fpu_register, aflags, bflags, trap_counts);
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Mon, 31 May 2010 21:45:48 +0000 (+0000)
|
||||
Subject: clocksource: sh_tmu: compute mult and shift before registration
|
||||
|
||||
commit 66f49121ffa41a19c59965b31b046d8368fec3c7 upstream.
|
||||
|
||||
clocksource: sh_tmu: compute mult and shift before registration
|
||||
|
||||
Since commit 98962465ed9e6ea99c38e0af63fe1dcb5a79dc25 ("nohz: Prevent
|
||||
clocksource wrapping during idle"), the CPU of an R2D board never goes
|
||||
to idle. This commit assumes that mult and shift are assigned before
|
||||
the clocksource is registered. As a consequence the safe maximum sleep
|
||||
time is negative and the CPU never goes into idle.
|
||||
|
||||
This patch fixes the problem by moving mult and shift initialization
|
||||
from sh_tmu_clocksource_enable() to sh_tmu_register_clocksource().
|
||||
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Cc: stable@kernel.org
|
||||
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
|
||||
---
|
||||
|
||||
diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c
|
||||
index 8e44e14..de71590 100644
|
||||
--- a/drivers/clocksource/sh_tmu.c
|
||||
+++ b/drivers/clocksource/sh_tmu.c
|
||||
@@ -199,16 +199,8 @@ static cycle_t sh_tmu_clocksource_read(struct clocksource *cs)
|
||||
static int sh_tmu_clocksource_enable(struct clocksource *cs)
|
||||
{
|
||||
struct sh_tmu_priv *p = cs_to_sh_tmu(cs);
|
||||
- int ret;
|
||||
-
|
||||
- ret = sh_tmu_enable(p);
|
||||
- if (ret)
|
||||
- return ret;
|
||||
|
||||
- /* TODO: calculate good shift from rate and counter bit width */
|
||||
- cs->shift = 10;
|
||||
- cs->mult = clocksource_hz2mult(p->rate, cs->shift);
|
||||
- return 0;
|
||||
+ return sh_tmu_enable(p);
|
||||
}
|
||||
|
||||
static void sh_tmu_clocksource_disable(struct clocksource *cs)
|
||||
@@ -228,6 +220,16 @@
|
||||
cs->disable = sh_tmu_clocksource_disable;
|
||||
cs->mask = CLOCKSOURCE_MASK(32);
|
||||
cs->flags = CLOCK_SOURCE_IS_CONTINUOUS;
|
||||
+
|
||||
+ /* clk_get_rate() needs an enabled clock */
|
||||
+ clk_enable(p->clk);
|
||||
+ /* channel will be configured at parent clock / 4 */
|
||||
+ p->rate = clk_get_rate(p->clk) / 4;
|
||||
+ clk_disable(p->clk);
|
||||
+ /* TODO: calculate good shift from rate and counter bit width */
|
||||
+ cs->shift = 10;
|
||||
+ cs->mult = clocksource_hz2mult(p->rate, cs->shift);
|
||||
+
|
||||
pr_info("sh_tmu: %s used as clock source\n", cs->name);
|
||||
clocksource_register(cs);
|
||||
return 0;
|
34
debian/patches/features/all/revert-ipv4-Make-INET_LRO-a-bool-instead-of-tristate.patch
vendored
Normal file
34
debian/patches/features/all/revert-ipv4-Make-INET_LRO-a-bool-instead-of-tristate.patch
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sat, 5 Jun 2010 00:42:57 +0100
|
||||
Subject: [PATCH] Revert "ipv4: Make INET_LRO a bool instead of tristate."
|
||||
|
||||
This reverts commit e81963b180ac502fda0326edf059b1e29cdef1a2.
|
||||
|
||||
This code is now deprecated in favour of GRO, and only a few drivers
|
||||
use it. For Debian kernels (and probably other distribution kernels)
|
||||
it should be built as a module.
|
||||
|
||||
The original change to prevent building it as a module was made in an
|
||||
attempt to avoid the case where some dependents are set to y and some
|
||||
to m, and INET_LRO can be set to m rather than y. However, the
|
||||
Kconfig system will now reliably set INET_LRO=y in this case.
|
||||
---
|
||||
net/ipv4/Kconfig | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
|
||||
index 70491d9..483d427 100644
|
||||
--- a/net/ipv4/Kconfig
|
||||
+++ b/net/ipv4/Kconfig
|
||||
@@ -398,7 +398,7 @@ config INET_XFRM_MODE_BEET
|
||||
If unsure, say Y.
|
||||
|
||||
config INET_LRO
|
||||
- bool "Large Receive Offload (ipv4/tcp)"
|
||||
+ tristate "Large Receive Offload (ipv4/tcp)"
|
||||
default y
|
||||
---help---
|
||||
Support for Large Receive Offload (ipv4/tcp).
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Kirkwood: Export GPIO indicating jumper setting of JP1
|
||||
|
||||
Export GPIO 45 which is used to indicate the setting of the JP1
|
||||
jumper. This is useful for userland tools, such as qcontrol, to
|
||||
see whether the LCD or a serial console is connected.
|
||||
|
||||
Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
|
||||
[bwh: Adjust context for 2.6.34]
|
||||
|
||||
--- a/arch/arm/mach-kirkwood/ts41x-setup.c 2010-05-21 19:27:57.000000000 +0000
|
||||
+++ b/arch/arm/mach-kirkwood/ts41x-setup.c 2010-05-21 19:28:34.000000000 +0000
|
||||
@@ -32,6 +33,8 @@
|
||||
#include "mpp.h"
|
||||
#include "tsx1x-common.h"
|
||||
|
||||
+#define QNAP_TS41X_JUMPER_JP1 45
|
||||
+
|
||||
static struct i2c_board_info __initdata qnap_ts41x_i2c_rtc = {
|
||||
I2C_BOARD_INFO("s35390a", 0x30),
|
||||
};
|
||||
@@ -230,6 +233,8 @@
|
||||
|
||||
pm_power_off = qnap_tsx1x_power_off;
|
||||
|
||||
+ if (gpio_request(QNAP_TS41X_JUMPER_JP1, "JP1") == 0)
|
||||
+ gpio_export(QNAP_TS41X_JUMPER_JP1, 0);
|
||||
}
|
||||
|
||||
static int __init ts41x_pci_init(void)
|
|
@ -5,3 +5,12 @@
|
|||
+ features/all/RTC-rtc-cmos-Fix-binary-mode-support.patch
|
||||
+ features/mips/MIPS-Loongson-Define-rtc-device-on-MC146818-systems.patch
|
||||
+ debian/revert-removal-of-r8192sU_HWImg-c.patch
|
||||
+ bugfix/ia64/hardcode-arch-script-output.patch
|
||||
+ bugfix/all/mac80211-explicitly-disable-enable-QoS.patch
|
||||
+ bugfix/all/iwlwifi-manage-QoS-by-mac-stack.patch
|
||||
+ bugfix/all/ext4-Conditionally-define-compat-ioctl-numbers.patch
|
||||
+ bugfix/all/ext4-Fix-compat-EXT4_IOC_ADD_GROUP.patch
|
||||
+ features/arm/ts41x-export-jp1.patch
|
||||
+ bugfix/parisc/clear-fp-exception-flag-on-SIGFPE.patch
|
||||
+ bugfix/sh4/fix-sh_tmu.patch
|
||||
+ features/all/revert-ipv4-Make-INET_LRO-a-bool-instead-of-tristate.patch
|
||||
|
|
|
@ -51,12 +51,12 @@ else
|
|||
endif
|
||||
|
||||
maintainerclean:
|
||||
rm -f debian/config.defines.dump debian/control debian/control.md5sum debian/rules.gen debian/bin/patch.* debian/linux-*
|
||||
rm -f debian/config.defines.dump debian/control debian/control.md5sum debian/rules.gen debian/bin/patch.*
|
||||
rm -rf $(filter-out debian .svk .svn, $(wildcard * .[^.]*))
|
||||
|
||||
clean: debian/control
|
||||
dh_testdir
|
||||
rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/debian_linux/*.pyc
|
||||
rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/debian_linux/*.pyc debian/linux-headers-* debian/linux-image-*
|
||||
dh_clean
|
||||
|
||||
binary-indep: $(STAMPS_DIR)/source-base
|
||||
|
|
|
@ -98,7 +98,7 @@ $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source
|
|||
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): CONFIG=$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
||||
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(ARCH)_$(FEATURESET)
|
||||
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
||||
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET)
|
||||
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
||||
rm -rf '$(DIR)'
|
||||
mkdir '$(DIR)'
|
||||
cp '$(CONFIG)' '$(DIR)/.config'
|
||||
|
@ -465,8 +465,8 @@ install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_
|
|||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_installdirs usr/lib/debug
|
||||
install -m644 $(DIR)/vmlinux $(DEBUG_DIR)/vmlinux-$(REAL_VERSION)
|
||||
dh_installdirs usr/lib/debug usr/lib/debug/boot
|
||||
install -m644 $(DIR)/vmlinux $(DEBUG_DIR)/boot/vmlinux-$(REAL_VERSION)
|
||||
ifeq ($(MODULES),True)
|
||||
+$(MAKE_CLEAN) -C $(DIR) modules_install INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR)
|
||||
rm $(DEBUG_DIR)/lib/modules/*/{build,source,modules.*}
|
||||
|
@ -483,7 +483,7 @@ install-patch:
|
|||
dh_testroot
|
||||
dh_prep
|
||||
dh_installdirs '$(pbase)/apply' '$(pbase)/debian' '$(pbase)/unpatch'
|
||||
dh_install debian/patches/* '$(pbase)/debian'
|
||||
dh_install -X.svn debian/patches/* '$(pbase)/debian'
|
||||
install debian/bin/patch.apply '$(pfull)/apply/debian'
|
||||
install debian/templates/patch.unpatch '$(pfull)/unpatch/debian'
|
||||
find '$(pfull)/debian' ! -path '*/series/*' -type f -execdir bzip2 '{}' ';' -execdir chmod 644 '{}.bz2' ';'
|
||||
|
|
Loading…
Reference in New Issue