Linux 3.1-git1 (138c4ae9cfda upstream)
First take on the upcomming Linux 3.2 kernel. The moving of the ethernet drivers into vendor subdirectories caused a lot of churn in config-generic, but hopefully it's a bit cleaner now.
This commit is contained in:
parent
829bffe3f9
commit
34f9218fe5
@ -1,701 +0,0 @@
|
||||
From e11e9e78799a7641fe0dc5289f35f2604a4b71a3 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Sun, 17 Jan 2010 00:40:15 +0000
|
||||
Subject: [PATCH] Input: add appleir USB driver
|
||||
|
||||
This driver was originally written by James McKenzie, updated by
|
||||
Greg Kroah-Hartman, further updated by myself, with suspend support
|
||||
added.
|
||||
|
||||
More recent versions of the IR receiver are also supported through
|
||||
a patch by Alex Karpenko. The patch also adds support for the 2nd
|
||||
and 5th generation of the controller, and the menu key on newer
|
||||
brushed metal remotes.
|
||||
|
||||
Tested on a MacbookAir1,1
|
||||
|
||||
Signed-off-by: Bastien Nocera <hadess@hadess.net>
|
||||
---
|
||||
Documentation/input/appleir.txt | 46 ++++
|
||||
drivers/hid/hid-apple.c | 4 -
|
||||
drivers/hid/hid-core.c | 7 +-
|
||||
drivers/hid/hid-ids.h | 5 +-
|
||||
drivers/input/misc/Kconfig | 13 +
|
||||
drivers/input/misc/Makefile | 1 +
|
||||
drivers/input/misc/appleir.c | 519 +++++++++++++++++++++++++++++++++++++++
|
||||
7 files changed, 588 insertions(+), 7 deletions(-)
|
||||
create mode 100644 Documentation/input/appleir.txt
|
||||
create mode 100644 drivers/input/misc/appleir.c
|
||||
|
||||
diff --git a/Documentation/input/appleir.txt b/Documentation/input/appleir.txt
|
||||
new file mode 100644
|
||||
index 0000000..db637fb
|
||||
--- /dev/null
|
||||
+++ b/Documentation/input/appleir.txt
|
||||
@@ -0,0 +1,46 @@
|
||||
+Apple IR receiver Driver (appleir)
|
||||
+----------------------------------
|
||||
+ Copyright (C) 2009 Bastien Nocera <hadess@hadess.net>
|
||||
+
|
||||
+The appleir driver is a kernel input driver to handle Apple's IR
|
||||
+receivers (and associated remotes) in the kernel.
|
||||
+
|
||||
+The driver is an input driver which only handles "official" remotes
|
||||
+as built and sold by Apple.
|
||||
+
|
||||
+Authors
|
||||
+-------
|
||||
+
|
||||
+James McKenzie (original driver)
|
||||
+Alex Karpenko (05ac:8242 support)
|
||||
+Greg Kroah-Hartman (cleanups and original submission)
|
||||
+Bastien Nocera (further cleanups, brushed metal "enter"
|
||||
+button support and suspend support)
|
||||
+
|
||||
+Supported hardware
|
||||
+------------------
|
||||
+
|
||||
+- All Apple laptops and desktops from 2005 onwards, except:
|
||||
+ - the unibody Macbook (2009)
|
||||
+ - Mac Pro (all versions)
|
||||
+- Apple TV (all revisions prior to September 2010)
|
||||
+
|
||||
+The remote will only support the 6 (old white) or 7 (brushed metal) buttons
|
||||
+of the remotes as sold by Apple. See the next section if you want to use
|
||||
+other remotes or want to use lirc with the device instead of the kernel driver.
|
||||
+
|
||||
+Using lirc (native) instead of the kernel driver
|
||||
+------------------------------------------------
|
||||
+
|
||||
+First, you will need to disable the kernel driver for the receiver.
|
||||
+
|
||||
+This can be achieved by passing quirks to the usbhid driver.
|
||||
+The quirk line would be:
|
||||
+usbhid.quirks=0x05ac:0x8242:0x40000010
|
||||
+
|
||||
+With 0x05ac being the vendor ID (Apple, you shouldn't need to change this)
|
||||
+With 0x8242 being the product ID (check the output of lsusb for your hardware)
|
||||
+And 0x10 being "HID_QUIRK_HIDDEV_FORCE" and 0x40000000 being "HID_QUIRK_NO_IGNORE"
|
||||
+
|
||||
+This should force the creation of a hiddev device for the receiver, and
|
||||
+make it usable under lirc.
|
||||
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
|
||||
index bba05d0..0059d5a 100644
|
||||
--- a/drivers/hid/hid-apple.c
|
||||
+++ b/drivers/hid/hid-apple.c
|
||||
@@ -361,10 +361,6 @@ static void apple_remove(struct hid_device *hdev)
|
||||
}
|
||||
|
||||
static const struct hid_device_id apple_devices[] = {
|
||||
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL),
|
||||
- .driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
|
||||
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4),
|
||||
- .driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE),
|
||||
.driver_data = APPLE_MIGHTYMOUSE | APPLE_INVERT_HWHEEL },
|
||||
|
||||
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
||||
index baa25ad..abc5bd7 100644
|
||||
--- a/drivers/hid/hid-core.c
|
||||
+++ b/drivers/hid/hid-core.c
|
||||
@@ -1244,8 +1244,6 @@ static const struct hid_device_id hid_blacklist[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR, USB_DEVICE_ID_ACTIONSTAR_1011) },
|
||||
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL) },
|
||||
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI) },
|
||||
@@ -1577,6 +1575,11 @@ static const struct hid_device_id hid_ignore_list[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_24) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AIRCABLE, USB_DEVICE_ID_AIRCABLE1) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ALCOR, USB_DEVICE_ID_ALCOR_USBRS232) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL2) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL3) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL5) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_LCM)},
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_LCM2)},
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AVERMEDIA, USB_DEVICE_ID_AVER_FM_MR800) },
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index 11af537..360a5ca 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -100,8 +100,11 @@
|
||||
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b
|
||||
#define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a
|
||||
#define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b
|
||||
-#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL2 0x1440
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241
|
||||
#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243
|
||||
|
||||
#define USB_VENDOR_ID_ASUS 0x0486
|
||||
#define USB_DEVICE_ID_ASUS_T91MT 0x0185
|
||||
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
||||
index 60de906..2f2f2e7 100644
|
||||
--- a/drivers/input/misc/Kconfig
|
||||
+++ b/drivers/input/misc/Kconfig
|
||||
help
|
||||
Say Y here if you need accelerometer to work in polling mode.
|
||||
|
||||
+config INPUT_APPLEIR
|
||||
+ tristate "Apple infrared receiver (built in)"
|
||||
+ depends on USB_ARCH_HAS_HCD
|
||||
+ select USB
|
||||
+ help
|
||||
+ Say Y here if you want to use a Apple infrared remote control. All
|
||||
+ the Apple computers from 2005 onwards include such a port, except
|
||||
+ the unibody Macbook (2009), and Mac Pros. This receiver is also
|
||||
+ used in the Apple TV set-top box prior to the 2010 model.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the module will
|
||||
+ be called appleir.
|
||||
+
|
||||
config INPUT_POWERMATE
|
||||
tristate "Griffin PowerMate and Contour Jog support"
|
||||
depends on USB_ARCH_HAS_HCD
|
||||
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
|
||||
index 1fe1f6c..d5ef2b9 100644
|
||||
--- a/drivers/input/misc/Makefile
|
||||
+++ b/drivers/input/misc/Makefile
|
||||
@@ -13,6 +13,7 @@ obj-$(CONFIG_INPUT_ADXL34X) += adxl34x.o
|
||||
obj-$(CONFIG_INPUT_ADXL34X_I2C) += adxl34x-i2c.o
|
||||
obj-$(CONFIG_INPUT_ADXL34X_SPI) += adxl34x-spi.o
|
||||
obj-$(CONFIG_INPUT_APANEL) += apanel.o
|
||||
+obj-$(CONFIG_INPUT_APPLEIR) += appleir.o
|
||||
obj-$(CONFIG_INPUT_ATI_REMOTE) += ati_remote.o
|
||||
obj-$(CONFIG_INPUT_ATI_REMOTE2) += ati_remote2.o
|
||||
obj-$(CONFIG_INPUT_ATLAS_BTNS) += atlas_btns.o
|
||||
diff --git a/drivers/input/misc/appleir.c b/drivers/input/misc/appleir.c
|
||||
new file mode 100644
|
||||
index 0000000..3817a3c
|
||||
--- /dev/null
|
||||
+++ b/drivers/input/misc/appleir.c
|
||||
@@ -0,0 +1,519 @@
|
||||
+/*
|
||||
+ * appleir: USB driver for the apple ir device
|
||||
+ *
|
||||
+ * Original driver written by James McKenzie
|
||||
+ * Ported to recent 2.6 kernel versions by Greg Kroah-Hartman <gregkh@suse.de>
|
||||
+ *
|
||||
+ * Copyright (C) 2006 James McKenzie
|
||||
+ * Copyright (C) 2008 Greg Kroah-Hartman <greg@kroah.com>
|
||||
+ * Copyright (C) 2008 Novell Inc.
|
||||
+ *
|
||||
+ * 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, version 2.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/slab.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/usb/input.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/usb.h>
|
||||
+#include <linux/usb/input.h>
|
||||
+#include <asm/unaligned.h>
|
||||
+#include <asm/byteorder.h>
|
||||
+
|
||||
+#define DRIVER_VERSION "v1.2"
|
||||
+#define DRIVER_AUTHOR "James McKenzie"
|
||||
+#define DRIVER_DESC "Apple infrared receiver driver"
|
||||
+#define DRIVER_LICENSE "GPL"
|
||||
+
|
||||
+MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||
+MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
+MODULE_LICENSE(DRIVER_LICENSE);
|
||||
+
|
||||
+#define USB_VENDOR_ID_APPLE 0x05ac
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL2 0x1440
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
|
||||
+#define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243
|
||||
+
|
||||
+#define URB_SIZE 32
|
||||
+
|
||||
+#define MAX_KEYS 9
|
||||
+#define MAX_KEYS_MASK (MAX_KEYS - 1)
|
||||
+
|
||||
+#define dbginfo(dev, format, arg...) do { if (debug) dev_info(dev , format , ## arg); } while (0)
|
||||
+
|
||||
+static int debug;
|
||||
+module_param(debug, int, 0644);
|
||||
+MODULE_PARM_DESC(debug, "Enable extra debug messages and information");
|
||||
+
|
||||
+/* I have two devices both of which report the following */
|
||||
+/* 25 87 ee 83 0a + */
|
||||
+/* 25 87 ee 83 0c - */
|
||||
+/* 25 87 ee 83 09 << */
|
||||
+/* 25 87 ee 83 06 >> */
|
||||
+/* 25 87 ee 83 05 >" */
|
||||
+/* 25 87 ee 83 03 menu */
|
||||
+/* 26 00 00 00 00 for key repeat*/
|
||||
+
|
||||
+/* Thomas Glanzmann reports the following responses */
|
||||
+/* 25 87 ee ca 0b + */
|
||||
+/* 25 87 ee ca 0d - */
|
||||
+/* 25 87 ee ca 08 << */
|
||||
+/* 25 87 ee ca 07 >> */
|
||||
+/* 25 87 ee ca 04 >" */
|
||||
+/* 25 87 ee ca 02 menu */
|
||||
+/* 26 00 00 00 00 for key repeat*/
|
||||
+/* He also observes the following event sometimes */
|
||||
+/* sent after a key is release, which I interpret */
|
||||
+/* as a flat battery message */
|
||||
+/* 25 87 e0 ca 06 flat battery */
|
||||
+
|
||||
+/* Alexandre Karpenko reports the following responses for Device ID 0x8242 */
|
||||
+/* 25 87 ee 47 0b + */
|
||||
+/* 25 87 ee 47 0d - */
|
||||
+/* 25 87 ee 47 08 << */
|
||||
+/* 25 87 ee 47 07 >> */
|
||||
+/* 25 87 ee 47 04 >" */
|
||||
+/* 25 87 ee 47 02 menu */
|
||||
+/* 26 87 ee 47 ** for key repeat (** is the code of the key being held) */
|
||||
+
|
||||
+/* Bastien Nocera's "new" remote */
|
||||
+/* 25 87 ee 91 5f followed by
|
||||
+ * 25 87 ee 91 05 gives you >"
|
||||
+ *
|
||||
+ * 25 87 ee 91 5c followed by
|
||||
+ * 25 87 ee 91 05 gives you the middle button */
|
||||
+
|
||||
+static const unsigned short appleir_key_table[] = {
|
||||
+ KEY_RESERVED,
|
||||
+ KEY_MENU,
|
||||
+ KEY_PLAYPAUSE,
|
||||
+ KEY_FORWARD,
|
||||
+ KEY_BACK,
|
||||
+ KEY_VOLUMEUP,
|
||||
+ KEY_VOLUMEDOWN,
|
||||
+ KEY_ENTER,
|
||||
+ KEY_RESERVED,
|
||||
+};
|
||||
+
|
||||
+struct appleir {
|
||||
+ struct input_dev *input_dev;
|
||||
+ unsigned short keymap[ARRAY_SIZE(appleir_key_table)];
|
||||
+ u8 *data;
|
||||
+ dma_addr_t dma_buf;
|
||||
+ struct usb_device *usbdev;
|
||||
+ unsigned int flags;
|
||||
+ struct urb *urb;
|
||||
+ struct timer_list key_up_timer;
|
||||
+ int current_key;
|
||||
+ int prev_key_idx;
|
||||
+ char phys[32];
|
||||
+};
|
||||
+
|
||||
+static DEFINE_MUTEX(appleir_mutex);
|
||||
+
|
||||
+enum {
|
||||
+ APPLEIR_OPENED = 0x1,
|
||||
+ APPLEIR_SUSPENDED = 0x2,
|
||||
+};
|
||||
+
|
||||
+static struct usb_device_id appleir_ids[] = {
|
||||
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) },
|
||||
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL2) },
|
||||
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL3) },
|
||||
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
|
||||
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL5) },
|
||||
+ {}
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(usb, appleir_ids);
|
||||
+
|
||||
+static void dump_packet(struct appleir *appleir, char *msg, u8 *data, int len)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ printk(KERN_ERR "appleir: %s (%d bytes)", msg, len);
|
||||
+
|
||||
+ for (i = 0; i < len; ++i)
|
||||
+ printk(" %02x", data[i]);
|
||||
+ printk(" (should be command %d)\n", (data[4] >> 1) & MAX_KEYS_MASK);
|
||||
+}
|
||||
+
|
||||
+static int get_key(int data)
|
||||
+{
|
||||
+ switch (data) {
|
||||
+ case 0x02:
|
||||
+ case 0x03:
|
||||
+ /* menu */
|
||||
+ return 1;
|
||||
+ case 0x04:
|
||||
+ case 0x05:
|
||||
+ /* >" */
|
||||
+ return 2;
|
||||
+ case 0x06:
|
||||
+ case 0x07:
|
||||
+ /* >> */
|
||||
+ return 3;
|
||||
+ case 0x08:
|
||||
+ case 0x09:
|
||||
+ /* << */
|
||||
+ return 4;
|
||||
+ case 0x0a:
|
||||
+ case 0x0b:
|
||||
+ /* + */
|
||||
+ return 5;
|
||||
+ case 0x0c:
|
||||
+ case 0x0d:
|
||||
+ /* - */
|
||||
+ return 6;
|
||||
+ case 0x5c:
|
||||
+ /* Middle button, on newer remotes,
|
||||
+ * part of a 2 packet-command */
|
||||
+ return -7;
|
||||
+ default:
|
||||
+ return -1;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void key_up(struct appleir *appleir, int key)
|
||||
+{
|
||||
+ dbginfo(&appleir->input_dev->dev, "key %d up\n", key);
|
||||
+ input_report_key(appleir->input_dev, key, 0);
|
||||
+ input_sync(appleir->input_dev);
|
||||
+}
|
||||
+
|
||||
+static void key_down(struct appleir *appleir, int key)
|
||||
+{
|
||||
+ dbginfo(&appleir->input_dev->dev, "key %d down\n", key);
|
||||
+ input_report_key(appleir->input_dev, key, 1);
|
||||
+ input_sync(appleir->input_dev);
|
||||
+}
|
||||
+
|
||||
+static void battery_flat(struct appleir *appleir)
|
||||
+{
|
||||
+ dev_err(&appleir->input_dev->dev, "possible flat battery?\n");
|
||||
+}
|
||||
+
|
||||
+static void key_up_tick(unsigned long data)
|
||||
+{
|
||||
+ struct appleir *appleir = (struct appleir *)data;
|
||||
+
|
||||
+ if (appleir->current_key) {
|
||||
+ key_up(appleir, appleir->current_key);
|
||||
+ appleir->current_key = 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void new_data(struct appleir *appleir, u8 *data, int len)
|
||||
+{
|
||||
+ static const u8 keydown[] = { 0x25, 0x87, 0xee };
|
||||
+ static const u8 keyrepeat[] = { 0x26, };
|
||||
+ static const u8 flatbattery[] = { 0x25, 0x87, 0xe0 };
|
||||
+
|
||||
+ if (debug)
|
||||
+ dump_packet(appleir, "received", data, len);
|
||||
+
|
||||
+ if (len != 5)
|
||||
+ return;
|
||||
+
|
||||
+ if (!memcmp(data, keydown, sizeof(keydown))) {
|
||||
+ int index;
|
||||
+
|
||||
+ /* If we already have a key down, take it up before marking
|
||||
+ this one down */
|
||||
+ if (appleir->current_key)
|
||||
+ key_up(appleir, appleir->current_key);
|
||||
+
|
||||
+ /* Handle dual packet commands */
|
||||
+ if (appleir->prev_key_idx > 0)
|
||||
+ index = appleir->prev_key_idx;
|
||||
+ else
|
||||
+ index = get_key(data[4]);
|
||||
+
|
||||
+ if (index > 0) {
|
||||
+ appleir->current_key = appleir->keymap[index];
|
||||
+
|
||||
+ key_down(appleir, appleir->current_key);
|
||||
+ /* Remote doesn't do key up, either pull them up, in the test
|
||||
+ above, or here set a timer which pulls them up after 1/8 s */
|
||||
+ mod_timer(&appleir->key_up_timer, jiffies + HZ / 8);
|
||||
+ appleir->prev_key_idx = 0;
|
||||
+ return;
|
||||
+ } else if (index == -7) {
|
||||
+ /* Remember key for next packet */
|
||||
+ appleir->prev_key_idx = 0 - index;
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ appleir->prev_key_idx = 0;
|
||||
+
|
||||
+ if (!memcmp(data, keyrepeat, sizeof(keyrepeat))) {
|
||||
+ key_down(appleir, appleir->current_key);
|
||||
+ /* Remote doesn't do key up, either pull them up, in the test
|
||||
+ above, or here set a timer which pulls them up after 1/8 s */
|
||||
+ mod_timer(&appleir->key_up_timer, jiffies + HZ / 8);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (!memcmp(data, flatbattery, sizeof(flatbattery))) {
|
||||
+ battery_flat(appleir);
|
||||
+ /* Fall through */
|
||||
+ }
|
||||
+
|
||||
+ dump_packet(appleir, "unknown packet", data, len);
|
||||
+}
|
||||
+
|
||||
+static void appleir_urb(struct urb *urb)
|
||||
+{
|
||||
+ struct appleir *appleir = urb->context;
|
||||
+ int status = urb->status;
|
||||
+ int retval;
|
||||
+
|
||||
+ switch (status) {
|
||||
+ case 0:
|
||||
+ new_data(appleir, urb->transfer_buffer, urb->actual_length);
|
||||
+ break;
|
||||
+ case -ECONNRESET:
|
||||
+ case -ENOENT:
|
||||
+ case -ESHUTDOWN:
|
||||
+ /* This urb is terminated, clean up */
|
||||
+ dbginfo(&appleir->input_dev->dev, "%s - urb shutting down with status: %d", __func__,
|
||||
+ urb->status);
|
||||
+ return;
|
||||
+ default:
|
||||
+ dbginfo(&appleir->input_dev->dev, "%s - nonzero urb status received: %d", __func__,
|
||||
+ urb->status);
|
||||
+ }
|
||||
+
|
||||
+ retval = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
+ if (retval)
|
||||
+ err("%s - usb_submit_urb failed with result %d", __func__,
|
||||
+ retval);
|
||||
+}
|
||||
+
|
||||
+static int appleir_open(struct input_dev *dev)
|
||||
+{
|
||||
+ struct appleir *appleir = input_get_drvdata(dev);
|
||||
+ struct usb_interface *intf = usb_ifnum_to_if(appleir->usbdev, 0);
|
||||
+ int r;
|
||||
+
|
||||
+ r = usb_autopm_get_interface(intf);
|
||||
+ if (r) {
|
||||
+ dev_err(&intf->dev,
|
||||
+ "%s(): usb_autopm_get_interface() = %d\n", __func__, r);
|
||||
+ return r;
|
||||
+ }
|
||||
+
|
||||
+ mutex_lock(&appleir_mutex);
|
||||
+
|
||||
+ if (usb_submit_urb(appleir->urb, GFP_ATOMIC)) {
|
||||
+ r = -EIO;
|
||||
+ goto fail;
|
||||
+ }
|
||||
+
|
||||
+ appleir->flags |= APPLEIR_OPENED;
|
||||
+
|
||||
+ mutex_unlock(&appleir_mutex);
|
||||
+
|
||||
+ usb_autopm_put_interface(intf);
|
||||
+
|
||||
+ return 0;
|
||||
+fail:
|
||||
+ mutex_unlock(&appleir_mutex);
|
||||
+ usb_autopm_put_interface(intf);
|
||||
+ return r;
|
||||
+}
|
||||
+
|
||||
+static void appleir_close(struct input_dev *dev)
|
||||
+{
|
||||
+ struct appleir *appleir = input_get_drvdata(dev);
|
||||
+
|
||||
+ mutex_lock(&appleir_mutex);
|
||||
+
|
||||
+ if (!(appleir->flags & APPLEIR_SUSPENDED)) {
|
||||
+ usb_kill_urb(appleir->urb);
|
||||
+ del_timer_sync(&appleir->key_up_timer);
|
||||
+ }
|
||||
+
|
||||
+ appleir->flags &= ~APPLEIR_OPENED;
|
||||
+
|
||||
+ mutex_unlock(&appleir_mutex);
|
||||
+}
|
||||
+
|
||||
+static int appleir_probe(struct usb_interface *intf,
|
||||
+ const struct usb_device_id *id)
|
||||
+{
|
||||
+ struct usb_device *dev = interface_to_usbdev(intf);
|
||||
+ struct usb_endpoint_descriptor *endpoint;
|
||||
+ struct appleir *appleir = NULL;
|
||||
+ struct input_dev *input_dev;
|
||||
+ int retval = -ENOMEM;
|
||||
+ int i;
|
||||
+
|
||||
+ appleir = kzalloc(sizeof(struct appleir), GFP_KERNEL);
|
||||
+ if (!appleir)
|
||||
+ goto allocfail;
|
||||
+
|
||||
+ appleir->data = usb_alloc_coherent(dev, URB_SIZE, GFP_KERNEL,
|
||||
+ &appleir->dma_buf);
|
||||
+ if (!appleir->data)
|
||||
+ goto usbfail;
|
||||
+
|
||||
+ appleir->urb = usb_alloc_urb(0, GFP_KERNEL);
|
||||
+ if (!appleir->urb)
|
||||
+ goto urbfail;
|
||||
+
|
||||
+ appleir->usbdev = dev;
|
||||
+
|
||||
+ input_dev = input_allocate_device();
|
||||
+ if (!input_dev)
|
||||
+ goto inputfail;
|
||||
+
|
||||
+ appleir->input_dev = input_dev;
|
||||
+
|
||||
+ usb_make_path(dev, appleir->phys, sizeof(appleir->phys));
|
||||
+ strlcpy(appleir->phys, "/input0", sizeof(appleir->phys));
|
||||
+
|
||||
+ input_dev->name = "Apple Infrared Remote Controller";
|
||||
+ input_dev->phys = appleir->phys;
|
||||
+ usb_to_input_id(dev, &input_dev->id);
|
||||
+ input_dev->dev.parent = &intf->dev;
|
||||
+ input_dev->keycode = appleir->keymap;
|
||||
+ input_dev->keycodesize = sizeof(unsigned short);
|
||||
+ input_dev->keycodemax = ARRAY_SIZE(appleir->keymap);
|
||||
+
|
||||
+ input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
|
||||
+
|
||||
+ memcpy(appleir->keymap, appleir_key_table, sizeof(appleir->keymap));
|
||||
+ for (i = 0; i < ARRAY_SIZE(appleir_key_table); i++)
|
||||
+ set_bit(appleir->keymap[i], input_dev->keybit);
|
||||
+ clear_bit(KEY_RESERVED, input_dev->keybit);
|
||||
+
|
||||
+ input_set_drvdata(input_dev, appleir);
|
||||
+ input_dev->open = appleir_open;
|
||||
+ input_dev->close = appleir_close;
|
||||
+
|
||||
+ endpoint = &intf->cur_altsetting->endpoint[0].desc;
|
||||
+
|
||||
+ usb_fill_int_urb(appleir->urb, dev,
|
||||
+ usb_rcvintpipe(dev, endpoint->bEndpointAddress),
|
||||
+ appleir->data, 8,
|
||||
+ appleir_urb, appleir, endpoint->bInterval);
|
||||
+
|
||||
+ appleir->urb->transfer_dma = appleir->dma_buf;
|
||||
+ appleir->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
+
|
||||
+ setup_timer(&appleir->key_up_timer,
|
||||
+ key_up_tick, (unsigned long) appleir);
|
||||
+
|
||||
+ retval = input_register_device(appleir->input_dev);
|
||||
+ if (retval)
|
||||
+ goto inputfail;
|
||||
+
|
||||
+ usb_set_intfdata(intf, appleir);
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+inputfail:
|
||||
+ input_free_device(appleir->input_dev);
|
||||
+
|
||||
+urbfail:
|
||||
+ usb_free_urb(appleir->urb);
|
||||
+
|
||||
+usbfail:
|
||||
+ usb_free_coherent(dev, URB_SIZE, appleir->data,
|
||||
+ appleir->dma_buf);
|
||||
+
|
||||
+allocfail:
|
||||
+ kfree(appleir);
|
||||
+
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+static void appleir_disconnect(struct usb_interface *intf)
|
||||
+{
|
||||
+ struct appleir *appleir = usb_get_intfdata(intf);
|
||||
+
|
||||
+ usb_set_intfdata(intf, NULL);
|
||||
+ input_unregister_device(appleir->input_dev);
|
||||
+ usb_free_urb(appleir->urb);
|
||||
+ usb_free_coherent(interface_to_usbdev(intf), URB_SIZE,
|
||||
+ appleir->data, appleir->dma_buf);
|
||||
+ kfree(appleir);
|
||||
+}
|
||||
+
|
||||
+static int appleir_suspend(struct usb_interface *interface,
|
||||
+ pm_message_t message)
|
||||
+{
|
||||
+ struct appleir *appleir = usb_get_intfdata(interface);
|
||||
+
|
||||
+ mutex_lock(&appleir_mutex);
|
||||
+ if (appleir->flags & APPLEIR_OPENED)
|
||||
+ usb_kill_urb(appleir->urb);
|
||||
+
|
||||
+ appleir->flags |= APPLEIR_SUSPENDED;
|
||||
+
|
||||
+ mutex_unlock(&appleir_mutex);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int appleir_resume(struct usb_interface *interface)
|
||||
+{
|
||||
+ struct appleir *appleir;
|
||||
+ int r = 0;
|
||||
+
|
||||
+ appleir = usb_get_intfdata(interface);
|
||||
+
|
||||
+ mutex_lock(&appleir_mutex);
|
||||
+ if (appleir->flags & APPLEIR_OPENED) {
|
||||
+ struct usb_endpoint_descriptor *endpoint;
|
||||
+
|
||||
+ endpoint = &interface->cur_altsetting->endpoint[0].desc;
|
||||
+ usb_fill_int_urb(appleir->urb, appleir->usbdev,
|
||||
+ usb_rcvintpipe(appleir->usbdev, endpoint->bEndpointAddress),
|
||||
+ appleir->data, 8,
|
||||
+ appleir_urb, appleir, endpoint->bInterval);
|
||||
+ appleir->urb->transfer_dma = appleir->dma_buf;
|
||||
+ appleir->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
+
|
||||
+ /* And reset the USB device */
|
||||
+ if (usb_submit_urb(appleir->urb, GFP_ATOMIC))
|
||||
+ r = -EIO;
|
||||
+ }
|
||||
+
|
||||
+ appleir->flags &= ~APPLEIR_SUSPENDED;
|
||||
+
|
||||
+ mutex_unlock(&appleir_mutex);
|
||||
+
|
||||
+ return r;
|
||||
+}
|
||||
+
|
||||
+static struct usb_driver appleir_driver = {
|
||||
+ .name = "appleir",
|
||||
+ .probe = appleir_probe,
|
||||
+ .disconnect = appleir_disconnect,
|
||||
+ .suspend = appleir_suspend,
|
||||
+ .resume = appleir_resume,
|
||||
+ .reset_resume = appleir_resume,
|
||||
+ .id_table = appleir_ids,
|
||||
+};
|
||||
+
|
||||
+static int __init appleir_init(void)
|
||||
+{
|
||||
+ return usb_register(&appleir_driver);
|
||||
+}
|
||||
+
|
||||
+static void __exit appleir_exit(void)
|
||||
+{
|
||||
+ usb_deregister(&appleir_driver);
|
||||
+}
|
||||
+
|
||||
+module_init(appleir_init);
|
||||
+module_exit(appleir_exit);
|
||||
--
|
||||
1.7.2.2
|
||||
|
@ -1,119 +0,0 @@
|
||||
Path: news.gmane.org!not-for-mail
|
||||
From: Pieter-Augustijn Van Malleghem <p-a@scarlet.be>
|
||||
Newsgroups: gmane.linux.kernel.input
|
||||
Subject: [PATCH] Add MacBookAir4,1 keyboard support
|
||||
Date: Wed, 7 Sep 2011 16:15:52 -0400
|
||||
Lines: 72
|
||||
Approved: news@gmane.org
|
||||
Message-ID: <20110907201552.GA1962@Caligula>
|
||||
NNTP-Posting-Host: lo.gmane.org
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
X-Trace: dough.gmane.org 1315426570 11003 80.91.229.12 (7 Sep 2011 20:16:10 GMT)
|
||||
X-Complaints-To: usenet@dough.gmane.org
|
||||
NNTP-Posting-Date: Wed, 7 Sep 2011 20:16:10 +0000 (UTC)
|
||||
To: linux-input@vger.kernel.org
|
||||
Original-X-From: linux-input-owner@vger.kernel.org Wed Sep 07 22:16:06 2011
|
||||
Return-path: <linux-input-owner@vger.kernel.org>
|
||||
Envelope-to: glki-linux-input-2@lo.gmane.org
|
||||
Original-Received: from vger.kernel.org ([209.132.180.67])
|
||||
by lo.gmane.org with esmtp (Exim 4.69)
|
||||
(envelope-from <linux-input-owner@vger.kernel.org>)
|
||||
id 1R1OXV-0007QX-Ll
|
||||
for glki-linux-input-2@lo.gmane.org; Wed, 07 Sep 2011 22:16:06 +0200
|
||||
Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1751419Ab1IGUQE (ORCPT <rfc822;glki-linux-input-2@m.gmane.org>);
|
||||
Wed, 7 Sep 2011 16:16:04 -0400
|
||||
Original-Received: from mail-vx0-f174.google.com ([209.85.220.174]:57168 "EHLO
|
||||
mail-vx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1751237Ab1IGUQC (ORCPT
|
||||
<rfc822;linux-input@vger.kernel.org>); Wed, 7 Sep 2011 16:16:02 -0400
|
||||
Original-Received: by vxj15 with SMTP id 15so31147vxj.19
|
||||
for <linux-input@vger.kernel.org>; Wed, 07 Sep 2011 13:16:02 -0700 (PDT)
|
||||
Original-Received: by 10.52.69.210 with SMTP id g18mr64348vdu.133.1315426562281;
|
||||
Wed, 07 Sep 2011 13:16:02 -0700 (PDT)
|
||||
Original-Received: from Caligula ([140.247.246.50])
|
||||
by mx.google.com with ESMTPS id ch2sm944169vdc.19.2011.09.07.13.16.01
|
||||
(version=TLSv1/SSLv3 cipher=OTHER);
|
||||
Wed, 07 Sep 2011 13:16:01 -0700 (PDT)
|
||||
Content-Disposition: inline
|
||||
User-Agent: Mutt/1.5.21 (2010-09-15)
|
||||
Original-Sender: linux-input-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-input.vger.kernel.org>
|
||||
X-Mailing-List: linux-input@vger.kernel.org
|
||||
Xref: news.gmane.org gmane.linux.kernel.input:21462
|
||||
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel.input/21462>
|
||||
|
||||
This patch adds support for the Apple MacBookAir4,1 released in July
|
||||
2011. It was inspired by Joshua Dillon's patch for the MacBookAir4,2
|
||||
posted on http://www.almostsure.com/mba42/hid-apple-dkms.patch.
|
||||
|
||||
Signed-off-by: Pieter-Augustijn Van Malleghem <p-a@scarlet.be>
|
||||
diff -uNr linux/drivers/hid/hid-apple.c patched/drivers/hid/hid-apple.c
|
||||
--- linux/drivers/hid/hid-apple.c 2011-09-06 23:41:58.000000000 -0400
|
||||
+++ patched/drivers/hid/hid-apple.c 2011-09-06 23:53:05.000000000 -0400
|
||||
@@ -183,6 +183,9 @@
|
||||
if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI &&
|
||||
hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS)
|
||||
table = macbookair_fn_keys;
|
||||
+ else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI &&
|
||||
+ hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS)
|
||||
+ table = apple_fn_keys;
|
||||
else if (hid->product < 0x21d || hid->product >= 0x300)
|
||||
table = powerbook_fn_keys;
|
||||
else
|
||||
@@ -493,6 +499,12 @@
|
||||
.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS),
|
||||
.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI),
|
||||
+ .driver_data = APPLE_HAS_FN },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO),
|
||||
+ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS),
|
||||
+ .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),
|
||||
.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO),
|
||||
diff -uNr linux/drivers/hid/hid-core.c patched/drivers/hid/hid-core.c
|
||||
--- linux/drivers/hid/hid-core.c 2011-09-06 23:41:58.000000000 -0400
|
||||
+++ patched/drivers/hid/hid-core.c 2011-09-06 23:56:22.000000000 -0400
|
||||
@@ -1340,6 +1340,9 @@
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_REVB_ANSI) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_REVB_ISO) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_REVB_JIS) },
|
||||
@@ -1892,6 +1895,9 @@
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
|
||||
{ }
|
||||
diff -uNr linux/drivers/hid/hid-ids.h patched/drivers/hid/hid-ids.h
|
||||
--- linux/drivers/hid/hid-ids.h 2011-09-06 23:41:58.000000000 -0400
|
||||
+++ patched/drivers/hid/hid-ids.h 2011-09-06 23:57:39.000000000 -0400
|
||||
@@ -109,6 +109,9 @@
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI 0x0249
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO 0x024a
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS 0x024b
|
||||
#define USB_DEVICE_ID_APPLE_ALU_REVB_ANSI 0x024f
|
||||
#define USB_DEVICE_ID_APPLE_ALU_REVB_ISO 0x0250
|
||||
#define USB_DEVICE_ID_APPLE_ALU_REVB_JIS 0x0251
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-input" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
|
@ -1,63 +0,0 @@
|
||||
From c0e64ef4899df4cedc872871e54e2c069d29e519 Mon Sep 17 00:00:00 2001
|
||||
From: Sathya Perla <sathya.perla@emulex.com>
|
||||
Date: Tue, 2 Aug 2011 19:57:43 +0000
|
||||
Subject: [PATCH] be2net: non-member vlan pkts not received in promiscous mode
|
||||
|
||||
While configuring promiscous mode, explicitly set the
|
||||
VLAN_PROMISCOUS bit to make this happen. When switching off
|
||||
promiscous mode, re-program the vids.
|
||||
|
||||
Signed-off-by: Xavier Selvin <xavier.selvin@emulex.com>
|
||||
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/benet/be_cmds.c | 6 ++++--
|
||||
drivers/net/benet/be_main.c | 7 +++++++
|
||||
2 files changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c
|
||||
index 1c25dbd..73fd949 100644
|
||||
--- a/drivers/net/benet/be_cmds.c
|
||||
+++ b/drivers/net/benet/be_cmds.c
|
||||
@@ -1586,9 +1586,11 @@ int be_cmd_promiscuous_config(struct be_adapter *adapter, bool en)
|
||||
OPCODE_COMMON_NTWK_RX_FILTER, sizeof(*req));
|
||||
|
||||
req->if_id = cpu_to_le32(adapter->if_handle);
|
||||
- req->if_flags_mask = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS);
|
||||
+ req->if_flags_mask = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS
|
||||
+ | BE_IF_FLAGS_VLAN_PROMISCUOUS);
|
||||
if (en)
|
||||
- req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS);
|
||||
+ req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS
|
||||
+ | BE_IF_FLAGS_VLAN_PROMISCUOUS);
|
||||
|
||||
sge->pa_hi = cpu_to_le32(upper_32_bits(promiscous_cmd.dma));
|
||||
sge->pa_lo = cpu_to_le32(promiscous_cmd.dma & 0xFFFFFFFF);
|
||||
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
|
||||
index 3b2c5e6..32a5b11 100644
|
||||
--- a/drivers/net/benet/be_main.c
|
||||
+++ b/drivers/net/benet/be_main.c
|
||||
@@ -728,6 +728,10 @@ static int be_vid_config(struct be_adapter *adapter, bool vf, u32 vf_num)
|
||||
status = be_cmd_vlan_config(adapter, if_handle, vtag, 1, 1, 0);
|
||||
}
|
||||
|
||||
+ /* No need to further configure vids if in promiscuous mode */
|
||||
+ if (adapter->promiscuous)
|
||||
+ return 0;
|
||||
+
|
||||
if (adapter->vlans_added <= adapter->max_vlans) {
|
||||
/* Construct VLAN Table to give to HW */
|
||||
for (i = 0; i < VLAN_N_VID; i++) {
|
||||
@@ -787,6 +791,9 @@ static void be_set_multicast_list(struct net_device *netdev)
|
||||
if (adapter->promiscuous) {
|
||||
adapter->promiscuous = false;
|
||||
be_cmd_promiscuous_config(adapter, false);
|
||||
+
|
||||
+ if (adapter->vlans_added)
|
||||
+ be_vid_config(adapter, false, 0);
|
||||
}
|
||||
|
||||
/* Enable multicast promisc if num configured exceeds what we support */
|
||||
--
|
||||
1.7.6.4
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 82f15998fafe683add83f7a11b2e25f919b3cd2d Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Pirko <jpirko@redhat.com>
|
||||
Date: Tue, 25 Oct 2011 13:47:16 -0400
|
||||
Subject: [PATCH] benet: remove bogus "unlikely" on vlan check
|
||||
|
||||
Use of unlikely in this place is wrong. Remove it.
|
||||
|
||||
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
Backported-by: Josh Boyer <jwboyer@redhat.com>
|
||||
---
|
||||
drivers/net/benet/be_main.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
|
||||
index c411bb1..6df0c7e 100644
|
||||
--- a/drivers/net/benet/be_main.c
|
||||
+++ b/drivers/net/benet/be_main.c
|
||||
@@ -1192,7 +1192,7 @@ static void be_rx_compl_process(struct be_adapter *adapter,
|
||||
skb->rxhash = rxcp->rss_hash;
|
||||
|
||||
|
||||
- if (unlikely(rxcp->vlanf))
|
||||
+ if (rxcp->vlanf)
|
||||
__vlan_hwaccel_put_tag(skb, rxcp->vlan_tag);
|
||||
|
||||
netif_receive_skb(skb);
|
||||
@@ -1249,7 +1249,7 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter,
|
||||
if (adapter->netdev->features & NETIF_F_RXHASH)
|
||||
skb->rxhash = rxcp->rss_hash;
|
||||
|
||||
- if (unlikely(rxcp->vlanf))
|
||||
+ if (rxcp->vlanf)
|
||||
__vlan_hwaccel_put_tag(skb, rxcp->vlan_tag);
|
||||
|
||||
napi_gro_frags(&eq_obj->napi);
|
||||
--
|
||||
1.7.6.4
|
||||
|
@ -142,6 +142,7 @@ CONFIG_SPARSE_IRQ=y
|
||||
|
||||
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
|
||||
|
||||
CONFIG_NET_VENDOR_FARADAY=y
|
||||
CONFIG_FTMAC100=m
|
||||
|
||||
CONFIG_HWSPINLOCK_OMAP=m
|
||||
|
@ -133,6 +133,9 @@ CONFIG_ARM_GIC=y
|
||||
# CONFIG_PCCARD is not set
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SMP_ON_UP=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_HAVE_ARM_TWD=y
|
||||
CONFIG_NR_CPUS=2
|
||||
@ -290,6 +293,9 @@ CONFIG_EEPROM_93XX46=m
|
||||
CONFIG_DM_MULTIPATH=y
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_MACVTAP is not set
|
||||
CONFIG_ETHERNET=y
|
||||
CONFIG_NET_VENDOR_BROADCOM=y
|
||||
CONFIG_NET_VENDOR_MICROCHIP=y
|
||||
CONFIG_MII=y
|
||||
# CONFIG_MARVELL_PHY is not set
|
||||
# CONFIG_DAVICOM_PHY is not set
|
||||
@ -322,14 +328,13 @@ CONFIG_SMSC911X=y
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_B44 is not set
|
||||
CONFIG_KS8851=m
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_ATH9K_HTC is not set
|
||||
# CONFIG_AR9170_USB is not set
|
||||
# CONFIG_B43_SDIO is not set
|
||||
# CONFIG_B43_PHY_N is not set
|
||||
# CONFIG_HOSTAP is not set
|
||||
# CONFIG_IWM is not set
|
||||
# CONFIG_BRCMDBG is not set
|
||||
CONFIG_LIBERTAS_SPI=m
|
||||
# CONFIG_LIBERTAS_MESH is not set
|
||||
CONFIG_P54_SPI=m
|
||||
@ -489,6 +494,7 @@ CONFIG_GPIO_TWL4030=y
|
||||
# CONFIG_CHARGER_TWL4030 is not set
|
||||
# CONFIG_CHARGER_GPIO is not set
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_SENSORS_AD7314 is not set
|
||||
# CONFIG_SENSORS_AD7414 is not set
|
||||
# CONFIG_SENSORS_AD7418 is not set
|
||||
# CONFIG_SENSORS_ADCXX is not set
|
||||
@ -886,6 +892,7 @@ CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
CONFIG_USB_GADGET_SELECTED=y
|
||||
# CONFIG_USB_GADGET_OMAP is not set
|
||||
# CONFIG_USB_GADGET_R8A66597 is not set
|
||||
@ -893,6 +900,7 @@ CONFIG_USB_GADGET_SELECTED=y
|
||||
# CONFIG_USB_GADGET_M66592 is not set
|
||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||
CONFIG_USB_GADGET_DUALSPEED=y
|
||||
# CONFIG_USB_RENESAS_USBHS is not set
|
||||
# CONFIG_USB_ZERO is not set
|
||||
# CONFIG_USB_AUDIO is not set
|
||||
CONFIG_USB_ETH=y
|
||||
@ -900,6 +908,7 @@ CONFIG_USB_ETH_RNDIS=y
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
# CONFIG_USB_G_NCM is not set
|
||||
# CONFIG_USB_GADGETFS is not set
|
||||
# CONFIG_USB_DWC3 is not set
|
||||
# CONFIG_USB_FUNCTIONFS is not set
|
||||
# CONFIG_USB_FILE_STORAGE is not set
|
||||
# CONFIG_USB_MASS_STORAGE is not set
|
||||
|
@ -43,6 +43,9 @@ CONFIG_ARM_ERRATA_720789=y
|
||||
# CONFIG_ARM_ERRATA_754327 is not set
|
||||
# CONFIG_ARM_ERRATA_764369 is not set
|
||||
CONFIG_SMP_ON_UP=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_LOCAL_TIMERS=y
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
|
338
config-generic
338
config-generic
@ -1218,13 +1218,194 @@ CONFIG_L2TP_ETH=m
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
|
||||
CONFIG_NFC_NCI=m
|
||||
|
||||
#
|
||||
# Ethernet (10 or 100Mbit)
|
||||
#
|
||||
CONFIG_NETDEV_1000=y
|
||||
CONFIG_NETDEV_10000=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_PHYLIB=m
|
||||
|
||||
CONFIG_NET_VENDOR_ADAPTEC=y
|
||||
CONFIG_ADAPTEC_STARFIRE=m
|
||||
|
||||
CONFIG_NET_VENDOR_ALTEON=y
|
||||
CONFIG_ACENIC=m
|
||||
# CONFIG_ACENIC_OMIT_TIGON_I is not set
|
||||
|
||||
CONFIG_NET_VENDOR_AMD=y
|
||||
# CONFIG_LANCE is not set
|
||||
CONFIG_PCNET32=m
|
||||
CONFIG_AMD8111_ETH=m
|
||||
CONFIG_PCMCIA_NMCLAN=m
|
||||
|
||||
CONFIG_NET_VENDOR_ATHEROS=y
|
||||
CONFIG_ATL2=m
|
||||
CONFIG_ATL1=m
|
||||
CONFIG_ATL1C=m
|
||||
CONFIG_ATL1E=m
|
||||
|
||||
CONFIG_NET_VENDOR_BROCADE=y
|
||||
CONFIG_BNA=m
|
||||
|
||||
CONFIG_NET_VENDOR_CHELSIO=y
|
||||
CONFIG_CHELSIO_T1=m
|
||||
CONFIG_CHELSIO_T1_1G=y
|
||||
CONFIG_CHELSIO_T3=m
|
||||
CONFIG_CHELSIO_T4=m
|
||||
CONFIG_CHELSIO_T4VF=m
|
||||
|
||||
# CONFIG_NET_VENDOR_CIRRUS is not set
|
||||
#
|
||||
CONFIG_NET_VENDOR_CISCO=y
|
||||
CONFIG_ENIC=m
|
||||
|
||||
CONFIG_NET_VENDOR_DEC=y
|
||||
CONFIG_EWRK3=m
|
||||
#
|
||||
# Tulip family network device support
|
||||
#
|
||||
CONFIG_NET_TULIP=y
|
||||
CONFIG_DE2104X=m
|
||||
CONFIG_DE2104X_DSL=0
|
||||
CONFIG_TULIP=m
|
||||
# CONFIG_TULIP_NAPI is not set
|
||||
# CONFIG_TULIP_MWI is not set
|
||||
CONFIG_TULIP_MMIO=y
|
||||
# CONFIG_NI5010 is not set
|
||||
CONFIG_DE4X5=m
|
||||
CONFIG_WINBOND_840=m
|
||||
CONFIG_DM9102=m
|
||||
CONFIG_PCMCIA_XIRCOM=m
|
||||
CONFIG_ULI526X=m
|
||||
|
||||
CONFIG_NET_VENDOR_DLINK=y
|
||||
CONFIG_DE600=m
|
||||
CONFIG_DE620=m
|
||||
CONFIG_DL2K=m
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
|
||||
CONFIG_NET_VENDOR_EMULEX=y
|
||||
CONFIG_BE2NET=m
|
||||
|
||||
CONFIG_NET_VENDOR_EXAR=y
|
||||
CONFIG_S2IO=m
|
||||
CONFIG_VXGE=m
|
||||
# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
|
||||
|
||||
# CONFIG_NET_VENDOR_FARADAY is not set
|
||||
# CONFIG_NET_VENDOR_FUJITSU is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
CONFIG_NET_VENDOR_INTEL=y
|
||||
CONFIG_E100=m
|
||||
CONFIG_E1000=m
|
||||
CONFIG_E1000E=m
|
||||
CONFIG_IGB=m
|
||||
CONFIG_IGB_DCA=y
|
||||
CONFIG_IGBVF=m
|
||||
CONFIG_IXGB=m
|
||||
CONFIG_IXGBEVF=m
|
||||
CONFIG_IXGBE=m
|
||||
CONFIG_IXGBE_DCA=y
|
||||
CONFIG_IXGBE_DCB=y
|
||||
|
||||
# CONFIG_NET_VENDOR_I825XX is not set
|
||||
CONFIG_NET_VENDOR_MARVELL=y
|
||||
CONFIG_SKGE=m
|
||||
# CONFIG_SKGE_DEBUG is not set
|
||||
CONFIG_SKGE_GENESIS=y
|
||||
CONFIG_SKY2=m
|
||||
# CONFIG_SKY2_DEBUG is not set
|
||||
|
||||
CONFIG_NET_VENDOR_MICREL=y
|
||||
CONFIG_KSZ884X_PCI=m
|
||||
# CONFIG_KS8842 is not set
|
||||
# CONFIG_KS8851_MLL is not set
|
||||
|
||||
CONFIG_NET_VENDOR_MYRI=y
|
||||
CONFIG_MYRI10GE=m
|
||||
CONFIG_MYRI10GE_DCA=y
|
||||
|
||||
CONFIG_NET_VENDOR_NATSEMI=y
|
||||
CONFIG_NATSEMI=m
|
||||
CONFIG_NS83820=m
|
||||
|
||||
CONFIG_NET_VENDOR_8390=y
|
||||
# CONFIG_AC3200 is not set
|
||||
CONFIG_PCMCIA_AXNET=m
|
||||
CONFIG_NE2K_PCI=m
|
||||
CONFIG_NE3210=m
|
||||
CONFIG_PCMCIA_PCNET=m
|
||||
|
||||
CONFIG_NET_VENDOR_NVIDIA=y
|
||||
CONFIG_FORCEDETH=m
|
||||
|
||||
CONFIG_NET_VENDOR_OKI=y
|
||||
# CONFIG_PCH_GBE is not set
|
||||
|
||||
CONFIG_NET_PACKET_ENGINE=y
|
||||
CONFIG_HAMACHI=m
|
||||
CONFIG_YELLOWFIN=m
|
||||
|
||||
CONFIG_NET_VENDOR_QLOGIC=y
|
||||
CONFIG_QLA3XXX=m
|
||||
CONFIG_QLCNIC=m
|
||||
CONFIG_QLGE=m
|
||||
CONFIG_NETXEN_NIC=m
|
||||
|
||||
CONFIG_NET_VENDOR_REALTEK=y
|
||||
CONFIG_ATP=m
|
||||
CONFIG_8139CP=m
|
||||
CONFIG_8139TOO=m
|
||||
# CONFIG_8139TOO_PIO is not set
|
||||
# CONFIG_8139TOO_TUNE_TWISTER is not set
|
||||
CONFIG_8139TOO_8129=y
|
||||
# CONFIG_8139_OLD_RX_RESET is not set
|
||||
CONFIG_R8169=m
|
||||
CONFIG_SC92031=m
|
||||
|
||||
CONFIG_NET_VENDOR_RDC=y
|
||||
CONFIG_R6040=m
|
||||
|
||||
# CONFIG_NET_VENDOR_SEEQ is not set
|
||||
|
||||
CONFIG_NET_VENDOR_SIS=y
|
||||
CONFIG_SIS900=m
|
||||
CONFIG_SIS190=m
|
||||
|
||||
CONFIG_NET_VENDOR_SMSC=y
|
||||
# CONFIG_SMC9194 is not set
|
||||
CONFIG_PCMCIA_SMC91C92=m
|
||||
CONFIG_EPIC100=m
|
||||
CONFIG_SMSC9420=m
|
||||
|
||||
CONFIG_NET_VENDOR_STMICRO=y
|
||||
CONFIG_STMMAC_ETH=m
|
||||
# CONFIG_STMMAC_DA is not set
|
||||
# CONFIG_STMMAC_DUAL_MAC is not set
|
||||
# CONFIG_STMMAC_TIMER is not set
|
||||
# CONFIG_STMMAC_DEBUG_FS is not set
|
||||
|
||||
CONFIG_NET_VENDOR_SUN=y
|
||||
CONFIG_HAPPYMEAL=m
|
||||
CONFIG_SUNGEM=m
|
||||
CONFIG_CASSINI=m
|
||||
CONFIG_NIU=m
|
||||
|
||||
CONFIG_NET_VENDOR_TEHUTI=y
|
||||
CONFIG_TEHUTI=m
|
||||
|
||||
CONFIG_NET_VENDOR_TI=y
|
||||
CONFIG_TLAN=m
|
||||
|
||||
CONFIG_NET_VENDOR_VIA=y
|
||||
CONFIG_VIA_RHINE=m
|
||||
CONFIG_VIA_RHINE_MMIO=y
|
||||
CONFIG_VIA_VELOCITY=m
|
||||
|
||||
CONFIG_NET_VENDOR_XIRCOM=y
|
||||
CONFIG_PCMCIA_XIRC2PS=m
|
||||
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_BROADCOM_PHY=m
|
||||
CONFIG_CICADA_PHY=m
|
||||
CONFIG_DAVICOM_PHY=m
|
||||
@ -1244,138 +1425,37 @@ CONFIG_VITESSE_PHY=m
|
||||
CONFIG_MICREL_PHY=m
|
||||
|
||||
CONFIG_MII=m
|
||||
CONFIG_HAPPYMEAL=m
|
||||
CONFIG_SUNGEM=m
|
||||
CONFIG_NET_VENDOR_3COM=y
|
||||
CONFIG_VORTEX=m
|
||||
CONFIG_TYPHOON=m
|
||||
CONFIG_DNET=m
|
||||
CONFIG_STMMAC_ETH=m
|
||||
# CONFIG_STMMAC_DA is not set
|
||||
# CONFIG_STMMAC_DUAL_MAC is not set
|
||||
# CONFIG_STMMAC_TIMER is not set
|
||||
|
||||
# CONFIG_PCH_GBE is not set
|
||||
|
||||
#
|
||||
# Tulip family network device support
|
||||
#
|
||||
CONFIG_NET_TULIP=y
|
||||
CONFIG_DE2104X=m
|
||||
CONFIG_DE2104X_DSL=0
|
||||
CONFIG_TULIP=m
|
||||
# CONFIG_TULIP_NAPI is not set
|
||||
# CONFIG_TULIP_MWI is not set
|
||||
CONFIG_TULIP_MMIO=y
|
||||
# CONFIG_NI5010 is not set
|
||||
CONFIG_DE4X5=m
|
||||
CONFIG_WINBOND_840=m
|
||||
CONFIG_DM9102=m
|
||||
CONFIG_PCMCIA_XIRCOM=m
|
||||
CONFIG_ULI526X=m
|
||||
# CONFIG_HP100 is not set
|
||||
CONFIG_LNE390=m
|
||||
CONFIG_NE3210=m
|
||||
CONFIG_ES3210=m
|
||||
CONFIG_NET_PCI=y
|
||||
CONFIG_PCNET32=m
|
||||
CONFIG_AMD8111_ETH=m
|
||||
CONFIG_ADAPTEC_STARFIRE=m
|
||||
CONFIG_KSZ884X_PCI=m
|
||||
CONFIG_B44=m
|
||||
CONFIG_B44_PCI=y
|
||||
CONFIG_BNX2=m
|
||||
CONFIG_CNIC=m
|
||||
CONFIG_QLA3XXX=m
|
||||
CONFIG_ATL1=m
|
||||
CONFIG_ATL1C=m
|
||||
CONFIG_ATL2=m
|
||||
CONFIG_ATL1E=m
|
||||
CONFIG_E100=m
|
||||
CONFIG_FEALNX=m
|
||||
CONFIG_FORCEDETH=m
|
||||
CONFIG_NATSEMI=m
|
||||
CONFIG_NE2K_PCI=m
|
||||
CONFIG_8139CP=m
|
||||
CONFIG_8139TOO=m
|
||||
# CONFIG_8139TOO_PIO is not set
|
||||
# CONFIG_8139TOO_TUNE_TWISTER is not set
|
||||
CONFIG_8139TOO_8129=y
|
||||
# CONFIG_8139_OLD_RX_RESET is not set
|
||||
CONFIG_SIS900=m
|
||||
CONFIG_SIS190=m
|
||||
CONFIG_EPIC100=m
|
||||
CONFIG_SC92031=m
|
||||
CONFIG_SMSC9420=m
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_TLAN=m
|
||||
CONFIG_VIA_RHINE=m
|
||||
CONFIG_VIA_RHINE_MMIO=y
|
||||
CONFIG_VIA_VELOCITY=m
|
||||
CONFIG_NET_POCKET=y
|
||||
CONFIG_ATP=m
|
||||
CONFIG_DE600=m
|
||||
CONFIG_DE620=m
|
||||
CONFIG_CASSINI=m
|
||||
CONFIG_ETHOC=m
|
||||
# CONFIG_KS8842 is not set
|
||||
# CONFIG_KS8851_MLL is not set
|
||||
|
||||
#
|
||||
# Ethernet (1000 Mbit)
|
||||
#
|
||||
CONFIG_ACENIC=m
|
||||
# CONFIG_ACENIC_OMIT_TIGON_I is not set
|
||||
CONFIG_DL2K=m
|
||||
CONFIG_E1000=m
|
||||
CONFIG_E1000E=m
|
||||
CONFIG_IGB=m
|
||||
CONFIG_IGB_DCA=y
|
||||
CONFIG_IGBVF=m
|
||||
CONFIG_NS83820=m
|
||||
CONFIG_HAMACHI=m
|
||||
CONFIG_YELLOWFIN=m
|
||||
CONFIG_R8169=m
|
||||
CONFIG_SKGE=m
|
||||
# CONFIG_SKGE_DEBUG is not set
|
||||
CONFIG_SKGE_GENESIS=y
|
||||
CONFIG_TIGON3=m
|
||||
CONFIG_SKY2=m
|
||||
# CONFIG_SKY2_DEBUG is not set
|
||||
CONFIG_JME=m
|
||||
|
||||
#
|
||||
# Ethernet (10000 Mbit)
|
||||
#
|
||||
CONFIG_CHELSIO_T1=m
|
||||
CONFIG_CHELSIO_T1_1G=y
|
||||
CONFIG_CHELSIO_T3=m
|
||||
CONFIG_CHELSIO_T4=m
|
||||
CONFIG_CHELSIO_T4VF=m
|
||||
CONFIG_IP1000=m
|
||||
CONFIG_IXGB=m
|
||||
CONFIG_IXGBEVF=m
|
||||
CONFIG_IXGBE=m
|
||||
CONFIG_IXGBE_DCA=y
|
||||
CONFIG_IXGBE_DCB=y
|
||||
CONFIG_MYRI10GE=m
|
||||
CONFIG_MYRI10GE_DCA=y
|
||||
CONFIG_NETXEN_NIC=m
|
||||
CONFIG_NIU=m
|
||||
CONFIG_S2IO=m
|
||||
CONFIG_VXGE=m
|
||||
# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
|
||||
CONFIG_TEHUTI=m
|
||||
CONFIG_ENIC=m
|
||||
CONFIG_MLX4_EN=m
|
||||
# CONFIG_MLX4_DEBUG is not set
|
||||
CONFIG_QLCNIC=m
|
||||
CONFIG_QLGE=m
|
||||
CONFIG_BNA=m
|
||||
CONFIG_SFC=m
|
||||
CONFIG_SFC_MTD=y
|
||||
CONFIG_BE2NET=m
|
||||
|
||||
CONFIG_FDDI=y
|
||||
# CONFIG_DEFXX is not set
|
||||
@ -1444,6 +1524,8 @@ CONFIG_ATH_COMMON=m
|
||||
CONFIG_ATH5K=m
|
||||
CONFIG_ATH5K_DEBUG=y
|
||||
# CONFIG_ATH5K_TRACER is not set
|
||||
CONFIG_ATH6KL=m
|
||||
CONFIG_ATH6KL_DEBUG=y
|
||||
CONFIG_ATH9K=m
|
||||
CONFIG_ATH9K_PCI=y
|
||||
CONFIG_ATH9K_AHB=y
|
||||
@ -1454,6 +1536,7 @@ CONFIG_ATH9K_HTC=m
|
||||
CONFIG_ATH9K_RATE_CONTROL=y
|
||||
CONFIG_CARL9170=m
|
||||
CONFIG_CARL9170_LEDS=y
|
||||
# CONFIG_CARL9170_HWRNG is not set
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_AIRO=m
|
||||
CONFIG_AIRO_CS=m
|
||||
@ -1465,6 +1548,7 @@ CONFIG_B43_BCMA=y
|
||||
CONFIG_B43_DEBUG=y
|
||||
CONFIG_B43_PHY_LP=y
|
||||
CONFIG_B43_PHY_N=y
|
||||
CONFIG_B43_PHY_HT=y
|
||||
# CONFIG_B43_FORCE_PIO is not set
|
||||
CONFIG_B43LEGACY=m
|
||||
CONFIG_B43LEGACY_DEBUG=y
|
||||
@ -1572,6 +1656,7 @@ CONFIG_RTL8192DE=m
|
||||
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
CONFIG_MWIFIEX_PCIE=m
|
||||
|
||||
#
|
||||
# Token Ring devices
|
||||
@ -1601,11 +1686,6 @@ CONFIG_NET_PCMCIA=y
|
||||
CONFIG_PCMCIA_3C589=m
|
||||
CONFIG_PCMCIA_3C574=m
|
||||
CONFIG_PCMCIA_FMVJ18X=m
|
||||
CONFIG_PCMCIA_PCNET=m
|
||||
CONFIG_PCMCIA_NMCLAN=m
|
||||
CONFIG_PCMCIA_SMC91C92=m
|
||||
CONFIG_PCMCIA_XIRC2PS=m
|
||||
CONFIG_PCMCIA_AXNET=m
|
||||
|
||||
#
|
||||
# Amateur Radio support
|
||||
@ -1616,13 +1696,16 @@ CONFIG_AX25_DAMA_SLAVE=y
|
||||
CONFIG_CAN=m
|
||||
CONFIG_CAN_RAW=m
|
||||
CONFIG_CAN_BCM=m
|
||||
CONFIG_CAN_GW=m
|
||||
CONFIG_CAN_VCAN=m
|
||||
CONFIG_CAN_DEV=m
|
||||
CONFIG_CAN_CALC_BITTIMING=y
|
||||
CONFIG_CAN_SJA1000=m
|
||||
CONFIG_CAN_SJA1000_ISA=m
|
||||
CONFIG_CAN_SJA1000_PLATFORM=m
|
||||
CONFIG_CAN_EMS_PCMCIA=m
|
||||
CONFIG_CAN_EMS_PCI=m
|
||||
CONFIG_CAN_PEAK_PCI=m
|
||||
CONFIG_CAN_EMS_USB=m
|
||||
CONFIG_CAN_ESD_USB2=m
|
||||
CONFIG_CAN_KVASER_PCI=m
|
||||
@ -2060,6 +2143,7 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
|
||||
CONFIG_SERIAL_8250_RSA=y
|
||||
# CONFIG_SERIAL_8250_DW is not set
|
||||
CONFIG_CYCLADES=m
|
||||
# CONFIG_CYZ_INTR is not set
|
||||
# CONFIG_MOXA_INTELLIO is not set
|
||||
@ -2269,12 +2353,14 @@ CONFIG_SENSORS_MAX6642=m
|
||||
CONFIG_SENSORS_ADM1275=m
|
||||
CONFIG_SENSORS_UCD9000=m
|
||||
CONFIG_SENSORS_UCD9200=m
|
||||
CONFIG_SENSORS_ZL6100=m
|
||||
CONFIG_SENSORS_EMC6W201=m
|
||||
|
||||
CONFIG_PMBUS=m
|
||||
CONFIG_SENSORS_PMBUS=m
|
||||
CONFIG_SENSORS_MAX16064=m
|
||||
CONFIG_SENSORS_LM25066=m
|
||||
CONFIG_SENSORS_LTC2978=m
|
||||
CONFIG_SENSORS_MAX34440=m
|
||||
CONFIG_SENSORS_MAX8688=m
|
||||
CONFIG_SENSORS_MAX1668=m
|
||||
@ -3101,6 +3187,7 @@ CONFIG_USB_STORAGE_ONETOUCH=m
|
||||
CONFIG_USB_STORAGE_ALAUDA=m
|
||||
CONFIG_USB_STORAGE_KARMA=m
|
||||
CONFIG_USB_STORAGE_REALTEK=m
|
||||
CONFIG_REALTEK_AUTOPM=y
|
||||
CONFIG_USB_STORAGE_ENE_UB6250=m
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_UAS=m
|
||||
@ -3118,6 +3205,7 @@ CONFIG_HID=m
|
||||
CONFIG_HIDRAW=y
|
||||
CONFIG_HID_PID=y
|
||||
CONFIG_LOGITECH_FF=y
|
||||
CONFIG_HID_LOGITECH_DJ=m
|
||||
CONFIG_LOGIWII_FF=y
|
||||
CONFIG_LOGIRUMBLEPAD2_FF=y
|
||||
CONFIG_PANTHERLORD_FF=y
|
||||
@ -3131,10 +3219,12 @@ CONFIG_DRAGONRISE_FF=y
|
||||
CONFIG_GREENASIA_FF=y
|
||||
CONFIG_SMARTJOYPLUS_FF=y
|
||||
CONFIG_LOGIG940_FF=y
|
||||
CONFIG_LOGIWHEELS_FF=y
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MULTITOUCH=m
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_QUANTA=y
|
||||
CONFIG_HID_PRIMAX=m
|
||||
CONFIG_HID_PRODIKEYS=m
|
||||
CONFIG_HID_DRAGONRISE=m
|
||||
CONFIG_HID_GYRATION=m
|
||||
@ -3154,7 +3244,6 @@ CONFIG_HID_TOPSEED=m
|
||||
CONFIG_HID_THRUSTMASTER=m
|
||||
CONFIG_HID_ZEROPLUS=m
|
||||
CONFIG_HID_ZYDACRON=m
|
||||
CONFIG_HID_ACRUX_FF=m
|
||||
CONFIG_HID_EMS_FF=m
|
||||
CONFIG_HID_ELECOM=m
|
||||
CONFIG_HID_UCLOGIC=m
|
||||
@ -3162,6 +3251,7 @@ CONFIG_HID_WALTOP=m
|
||||
CONFIG_HID_ROCCAT_PYRA=m
|
||||
CONFIG_HID_ROCCAT_KONEPLUS=m
|
||||
CONFIG_HID_ACRUX=m
|
||||
CONFIG_HID_ACRUX_FF=y
|
||||
CONFIG_HID_KEYTOUCH=m
|
||||
CONFIG_HID_LCPOWER=m
|
||||
CONFIG_HID_ROCCAT_ARVO=m
|
||||
@ -3394,6 +3484,7 @@ CONFIG_USB_FTDI_ELAN=m
|
||||
CONFIG_USB_FILE_STORAGE=m
|
||||
# CONFIG_USB_FILE_STORAGE_TEST is not set
|
||||
# CONFIG_USB_GADGET is not set
|
||||
# CONFIG_USB_DWC3 is not set
|
||||
# CONFIG_USB_GADGETFS is not set
|
||||
# CONFIG_USB_ISP116X_HCD is not set
|
||||
# CONFIG_USB_ISP1760_HCD is not set
|
||||
@ -3918,6 +4009,7 @@ CONFIG_LCD_PLATFORM=m
|
||||
CONFIG_SCHEDSTATS=y
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
CONFIG_CFS_BANDWIDTH=y
|
||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
|
||||
CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_SCHED_AUTOGROUP=y
|
||||
@ -4001,35 +4093,19 @@ CONFIG_SCSI_ARCMSR_AER=y
|
||||
|
||||
# CONFIG_EL1 is not set
|
||||
# CONFIG_EL2 is not set
|
||||
# CONFIG_ELPLUS is not set
|
||||
# CONFIG_EL16 is not set
|
||||
CONFIG_EL3=m
|
||||
# CONFIG_3C515 is not set
|
||||
# CONFIG_LANCE is not set
|
||||
CONFIG_NET_VENDOR_SMC=y
|
||||
# CONFIG_WD80x3 is not set
|
||||
CONFIG_ULTRA=m
|
||||
# CONFIG_SMC9194 is not set
|
||||
# CONFIG_NET_VENDOR_RACAL is not set
|
||||
# CONFIG_NI52 is not set
|
||||
# CONFIG_NI65 is not set
|
||||
# CONFIG_AT1700 is not set
|
||||
# CONFIG_DEPCA is not set
|
||||
CONFIG_NET_ISA=y
|
||||
CONFIG_NE2000=m
|
||||
# CONFIG_E2100 is not set
|
||||
CONFIG_EWRK3=m
|
||||
# CONFIG_EEXPRESS is not set
|
||||
# CONFIG_EEXPRESS_PRO is not set
|
||||
# CONFIG_HPLAN_PLUS is not set
|
||||
# CONFIG_HPLAN is not set
|
||||
# CONFIG_LP486E is not set
|
||||
# CONFIG_ETH16I is not set
|
||||
# CONFIG_ZNET is not set
|
||||
# CONFIG_SEEQ8005 is not set
|
||||
# CONFIG_AC3200 is not set
|
||||
# CONFIG_APRICOT is not set
|
||||
# CONFIG_CS89x0 is not set
|
||||
# CONFIG_IBMTR is not set
|
||||
# CONFIG_SKISA is not set
|
||||
# CONFIG_PROTEON is not set
|
||||
@ -4250,7 +4326,6 @@ CONFIG_LIRC_TTUSBIR=m
|
||||
# CONFIG_DEVKMEM is not set
|
||||
|
||||
CONFIG_PM_TRACE_RTC=y
|
||||
CONFIG_R6040=m
|
||||
|
||||
CONFIG_BNX2X=m
|
||||
CONFIG_SCSI_BNX2X_FCOE=m
|
||||
@ -4298,6 +4373,7 @@ CONFIG_OPTIMIZE_INLINING=y
|
||||
# CONFIG_HP_ILO is not set
|
||||
|
||||
# CONFIG_GPIOLIB is not set
|
||||
# CONFIG_PINCTRL is not set
|
||||
|
||||
|
||||
CONFIG_NETFILTER_TPROXY=m
|
||||
@ -4400,6 +4476,8 @@ CONFIG_USB_ATMEL=m
|
||||
# CONFIG_BRCMFMAC is not set
|
||||
# CONFIG_INTEL_MEI is not set
|
||||
# CONFIG_ZCACHE is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_NVEC_LEDS is not set
|
||||
|
||||
#
|
||||
# Android
|
||||
@ -4426,6 +4504,8 @@ CONFIG_IMA_MEASURE_PCR_IDX=10
|
||||
CONFIG_IMA_AUDIT=y
|
||||
CONFIG_IMA_LSM_RULES=y
|
||||
|
||||
# CONFIG_EVM is not set
|
||||
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=65536
|
||||
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
@ -4448,6 +4528,7 @@ CONFIG_FANOTIFY=y
|
||||
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
|
||||
|
||||
CONFIG_IEEE802154=m
|
||||
CONFIG_IEEE802154_6LOWPAN=m
|
||||
CONFIG_IEEE802154_DRIVERS=m
|
||||
CONFIG_IEEE802154_FAKEHARD=m
|
||||
|
||||
@ -4552,6 +4633,7 @@ CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
|
||||
CONFIG_PN544_NFC=m
|
||||
CONFIG_NFC_PN533=m
|
||||
CONFIG_NFC_WILINK=m
|
||||
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
|
@ -13,7 +13,7 @@ CONFIG_EFI=y
|
||||
# CONFIG_ITANIUM is not set
|
||||
CONFIG_MCKINLEY=y
|
||||
CONFIG_IA64_GENERIC=y
|
||||
CONFIG_DMAR=y
|
||||
CONFIG_INTEL_IOMMU=y
|
||||
# CONFIG_IA64_DIG is not set
|
||||
# CONFIG_IA64_HP_ZX1 is not set
|
||||
# CONFIG_IA64_SGI_SN2 is not set
|
||||
@ -195,7 +195,7 @@ CONFIG_PARAVIRT_GUEST=y
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
|
||||
|
||||
CONFIG_DMAR_DEFAULT_ON=y
|
||||
CONFIG_INTEL_IOMMU_DEFAULT_ON=y
|
||||
|
||||
CONFIG_RCU_FANOUT=64
|
||||
|
||||
|
@ -225,6 +225,7 @@ CONFIG_EXTRA_TARGETS=""
|
||||
# CONFIG_SERIAL_QE is not set
|
||||
# CONFIG_I2C_CPM is not set
|
||||
|
||||
CONFIG_NET_VENDOR_IBM=y
|
||||
|
||||
CONFIG_SERIO_XILINX_XPS_PS2=m
|
||||
|
||||
@ -355,3 +356,9 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=m
|
||||
# CONFIG_GPIO_GENERIC_PLATFORM is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
|
||||
# CONFIG_CAN_FLEXCAN is not set
|
||||
# CONFIG_NET_VENDOR_XILINX is not set
|
||||
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
|
||||
# CONFIG_IBM_EMAC is not set
|
||||
# CONFIG_NET_VENDOR_PASEMI is not set
|
||||
# CONFIG_NET_VENDOR_TOSHIBA is not set
|
||||
|
@ -41,6 +41,7 @@ CONFIG_ADB_PMU_LED=y
|
||||
CONFIG_ADB_PMU_LED_IDE=y
|
||||
|
||||
CONFIG_PMAC_MEDIABAY=y
|
||||
CONFIG_NET_VENDOR_APPLE=y
|
||||
CONFIG_BMAC=m
|
||||
CONFIG_MACE=m
|
||||
# CONFIG_MACE_AAUI_PORT is not set
|
||||
@ -86,6 +87,7 @@ CONFIG_8xxx_WDT=m
|
||||
CONFIG_GEF_WDT=m
|
||||
|
||||
CONFIG_PPC_MPC5200_BUGFIX=y
|
||||
CONFIG_NET_VENDOR_FREESCALE=y
|
||||
CONFIG_FEC_MPC52xx=m
|
||||
#CHECK: This may later become a tristate.
|
||||
CONFIG_FEC_MPC52xx_MDIO=y
|
||||
@ -185,3 +187,4 @@ CONFIG_KVM_BOOK3S_32=m
|
||||
# CONFIG_SCSI_QLA_ISCSI is not set
|
||||
|
||||
CONFIG_BATTERY_PMU=m
|
||||
|
||||
|
@ -237,3 +237,5 @@ CONFIG_STRICT_DEVMEM=y
|
||||
# CONFIG_WARN_DYNAMIC_STACK is not set
|
||||
|
||||
CONFIG_CRYPTO_GHASH_S390=m
|
||||
CONFIG_NET_CORE=y
|
||||
CONFIG_ETHERNET=y
|
||||
|
@ -36,10 +36,10 @@ CONFIG_FB_EFI=y
|
||||
# FIXME: 32bit only?
|
||||
# CONFIG_FB_N411 is not set
|
||||
|
||||
CONFIG_DMAR=y
|
||||
CONFIG_INTEL_IOMMU=y
|
||||
CONFIG_DMAR_BROKEN_GFX_WA=y
|
||||
CONFIG_DMAR_FLOPPY_WA=y
|
||||
CONFIG_DMAR_DEFAULT_ON=y
|
||||
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
||||
CONFIG_INTEL_IOMMU_DEFAULT_ON=y
|
||||
CONFIG_SCSI_ADVANSYS=m
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
|
@ -95,7 +95,7 @@ CONFIG_DIRECT_GBPAGES=y
|
||||
CONFIG_X86_MPPARSE=y
|
||||
|
||||
CONFIG_I7300_IDLE=m
|
||||
CONFIG_INTR_REMAP=y
|
||||
CONFIG_IRQ_REMAP=y
|
||||
|
||||
CONFIG_X86_X2APIC=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
|
@ -1,3 +1,6 @@
|
||||
From: Nelson Elhage <nelhage@nelhage.com>
|
||||
Subject: epoll: fix suprious lockdep warnings
|
||||
|
||||
epoll can acquire multiple ep->mutex on multiple "struct eventpoll"s
|
||||
at once in the case where one epoll fd is monitoring another epoll
|
||||
fd. This is perfectly OK, since we're careful about the lock ordering,
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6a4ca79652219cf22da800d990e5b46feaea1ad9 Mon Sep 17 00:00:00 2001
|
||||
From 0a6cc45426fe3baaf231efd7efe4300fd879efc8 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Baron <jbaron@redhat.com>
|
||||
Date: Mon, 24 Oct 2011 14:59:02 +1100
|
||||
Subject: [PATCH] epoll: limit paths
|
||||
@ -91,7 +91,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
3 files changed, 203 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
|
||||
index 4a53743..414ac74 100644
|
||||
index b84fad9..414ac74 100644
|
||||
--- a/fs/eventpoll.c
|
||||
+++ b/fs/eventpoll.c
|
||||
@@ -197,6 +197,12 @@ struct eventpoll {
|
||||
@ -137,7 +137,7 @@ index 4a53743..414ac74 100644
|
||||
.llseek = noop_llseek,
|
||||
};
|
||||
|
||||
-/* Fast test to see if the file is an evenpoll file */
|
||||
-/* Fast test to see if the file is an eventpoll file */
|
||||
-static inline int is_file_epoll(struct file *f)
|
||||
-{
|
||||
- return f->f_op == &eventpoll_fops;
|
||||
@ -449,7 +449,7 @@ index f362733..657ab55 100644
|
||||
|
||||
|
||||
diff --git a/include/linux/fs.h b/include/linux/fs.h
|
||||
index 277f497..93778e0 100644
|
||||
index ba98668..d393a68 100644
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -985,6 +985,7 @@ struct file {
|
||||
|
@ -1,43 +0,0 @@
|
||||
This fix regression introduced by commit:
|
||||
|
||||
commit 15b3f3b006b42a678523cad989bfd60b76bf4403
|
||||
Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Date: Fri Jun 3 07:54:13 2011 -0700
|
||||
|
||||
iwlagn: set smps mode after assoc for 1000 device
|
||||
|
||||
Also remove unneeded brackets on the way.
|
||||
|
||||
Address:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=744155
|
||||
|
||||
If fix will not get 3.1 release, it should be applied in 3.1 stable.
|
||||
|
||||
Cc: stable@kernel.org # 3.1+
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
|
||||
index ca632f9..5004342 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
|
||||
@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv,
|
||||
return ret;
|
||||
}
|
||||
|
||||
- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) &&
|
||||
- priv->cfg->ht_params->smps_mode)
|
||||
+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION &&
|
||||
+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode)
|
||||
ieee80211_request_smps(ctx->vif,
|
||||
priv->cfg->ht_params->smps_mode);
|
||||
|
||||
--
|
||||
1.7.1
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
37
kernel.spec
37
kernel.spec
@ -6,7 +6,7 @@ Summary: The Linux kernel
|
||||
# For a stable, released kernel, released_kernel should be 1. For rawhide
|
||||
# and/or a kernel built from an rc or git snapshot, released_kernel should
|
||||
# be 0.
|
||||
%global released_kernel 1
|
||||
%global released_kernel 0
|
||||
|
||||
# Save original buildid for later if it's defined
|
||||
%if 0%{?buildid:1}
|
||||
@ -51,7 +51,7 @@ Summary: The Linux kernel
|
||||
# For non-released -rc kernels, this will be prepended with "0.", so
|
||||
# for example a 3 here will become 0.3
|
||||
#
|
||||
%global baserelease 5
|
||||
%global baserelease 0
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
@ -82,7 +82,7 @@ Summary: The Linux kernel
|
||||
# The next upstream release sublevel (base_sublevel+1)
|
||||
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
||||
# The rc snapshot level
|
||||
%define rcrev 10
|
||||
%define rcrev 0
|
||||
# The git snapshot level
|
||||
%define gitrev 1
|
||||
# Set rpm version accordingly
|
||||
@ -688,23 +688,17 @@ Patch2903: media-DiBcom-protect-the-I2C-bufer-access.patch
|
||||
Patch2904: media-dib0700-protect-the-dib0700-buffer-access.patch
|
||||
Patch2905: media-dib0700-correct-error-message.patch
|
||||
|
||||
Patch3000: rcutree-avoid-false-quiescent-states.patch
|
||||
|
||||
# fs fixes
|
||||
|
||||
# NFSv4
|
||||
|
||||
# patches headed upstream
|
||||
Patch12010: add-appleir-usb-driver.patch
|
||||
|
||||
Patch12016: disable-i8042-check-on-apple-mac.patch
|
||||
|
||||
Patch12021: udlfb-bind-framebuffer-to-interface.patch
|
||||
Patch12022: x86-efi-Calling-__pa-with-an-ioremap-address-is-invalid.patch
|
||||
|
||||
Patch12023: ums-realtek-driver-uses-stack-memory-for-DMA.patch
|
||||
Patch12024: epoll-fix-spurious-lockdep-warnings.patch
|
||||
Patch12025: rcu-avoid-just-onlined-cpu-resched.patch
|
||||
Patch12026: block-stray-block-put-after-teardown.patch
|
||||
Patch12027: usb-add-quirk-for-logitech-webcams.patch
|
||||
Patch12029: crypto-register-cryptd-first.patch
|
||||
@ -715,13 +709,10 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
||||
Patch13002: revert-efi-rtclock.patch
|
||||
Patch13003: efi-dont-map-boot-services-on-32bit.patch
|
||||
|
||||
Patch13007: add-macbookair41-keyboard.patch
|
||||
|
||||
Patch13009: hvcs_pi_buf_alloc.patch
|
||||
|
||||
Patch13013: powerpc-Fix-deadlock-in-icswx-code.patch
|
||||
|
||||
Patch13014: iwlagn-fix-ht_params-NULL-pointer-dereference.patch
|
||||
Patch13014: select-regmap-from-wm8400.patch
|
||||
|
||||
Patch20000: utrace.patch
|
||||
|
||||
@ -736,10 +727,6 @@ Patch21002: mmc-Always-check-for-lower-base-frequency-quirk-for-.patch
|
||||
Patch21020: 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
|
||||
Patch21021: 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
|
||||
|
||||
#rhbz 748691
|
||||
Patch21030: be2net-non-member-vlan-pkts-not-received-in-promisco.patch
|
||||
Patch21031: benet-remove-bogus-unlikely-on-vlan-check.patch
|
||||
|
||||
#rhbz 749166
|
||||
Patch21050: xfs-Fix-possible-memory-corruption-in-xfs_readlink.patch
|
||||
|
||||
@ -1309,17 +1296,11 @@ ApplyOptionalPatch linux-2.6-v4l-dvb-update.patch
|
||||
ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch
|
||||
|
||||
# Patches headed upstream
|
||||
ApplyPatch rcutree-avoid-false-quiescent-states.patch
|
||||
|
||||
ApplyPatch disable-i8042-check-on-apple-mac.patch
|
||||
|
||||
ApplyPatch add-appleir-usb-driver.patch
|
||||
|
||||
ApplyPatch udlfb-bind-framebuffer-to-interface.patch
|
||||
ApplyPatch ums-realtek-driver-uses-stack-memory-for-DMA.patch
|
||||
ApplyPatch epoll-fix-spurious-lockdep-warnings.patch
|
||||
ApplyPatch epoll-limit-paths.patch
|
||||
ApplyPatch rcu-avoid-just-onlined-cpu-resched.patch
|
||||
ApplyPatch block-stray-block-put-after-teardown.patch
|
||||
ApplyPatch usb-add-quirk-for-logitech-webcams.patch
|
||||
|
||||
@ -1333,14 +1314,11 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
||||
ApplyPatch revert-efi-rtclock.patch
|
||||
ApplyPatch efi-dont-map-boot-services-on-32bit.patch
|
||||
|
||||
ApplyPatch add-macbookair41-keyboard.patch
|
||||
|
||||
ApplyPatch hvcs_pi_buf_alloc.patch
|
||||
|
||||
ApplyPatch powerpc-Fix-deadlock-in-icswx-code.patch
|
||||
|
||||
ApplyPatch iwlagn-fix-ht_params-NULL-pointer-dereference.patch
|
||||
|
||||
#rhbz #722509
|
||||
ApplyPatch mmc-Always-check-for-lower-base-frequency-quirk-for-.patch
|
||||
|
||||
@ -1355,9 +1333,7 @@ ApplyPatch utrace.patch
|
||||
ApplyPatch 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
|
||||
ApplyPatch 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
|
||||
|
||||
#rhbz 748691
|
||||
ApplyPatch be2net-non-member-vlan-pkts-not-received-in-promisco.patch
|
||||
ApplyPatch benet-remove-bogus-unlikely-on-vlan-check.patch
|
||||
ApplyPatch select-regmap-from-wm8400.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
@ -2041,6 +2017,9 @@ fi
|
||||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Wed Oct 26 2011 Josh Boyer <jwboyer@redhat.com>
|
||||
- Linux 3.1-git1
|
||||
|
||||
* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.0-5
|
||||
- Rebuilt for glibc bug#747377
|
||||
|
||||
|
@ -1,5 +1,17 @@
|
||||
From 77c78bac236c7b07d390be65f357c85a79cce890 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Jones <davej@redhat.com>
|
||||
Date: Wed, 26 Oct 2011 18:44:26 -0400
|
||||
Subject: [PATCH] Add more debugging information to the VM subsystem
|
||||
|
||||
Dump modules in bad_page, and print taint information in other areas
|
||||
---
|
||||
mm/page_alloc.c | 1 +
|
||||
mm/slab.c | 8 ++++----
|
||||
mm/slub.c | 2 +-
|
||||
3 files changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
|
||||
index 4e8985a..70d0853 100644
|
||||
index 6e8ecb6..83a0205 100644
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -318,6 +318,7 @@ static void bad_page(struct page *page)
|
||||
@ -11,10 +23,10 @@ index 4e8985a..70d0853 100644
|
||||
out:
|
||||
/* Leave bad fields for debug, except PageBuddy could make trouble */
|
||||
diff --git a/mm/slab.c b/mm/slab.c
|
||||
index d96e223..6f8905b 100644
|
||||
index 708efe8..114a66d 100644
|
||||
--- a/mm/slab.c
|
||||
+++ b/mm/slab.c
|
||||
@@ -1886,8 +1886,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
|
||||
@@ -1927,8 +1927,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
|
||||
/* Print header */
|
||||
if (lines == 0) {
|
||||
printk(KERN_ERR
|
||||
@ -25,22 +37,22 @@ index d96e223..6f8905b 100644
|
||||
print_objinfo(cachep, objp, 0);
|
||||
}
|
||||
/* Hexdump the affected line */
|
||||
@@ -2985,8 +2985,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
|
||||
@@ -3037,8 +3037,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
|
||||
if (entries != cachep->num - slabp->inuse) {
|
||||
bad:
|
||||
printk(KERN_ERR "slab: Internal list corruption detected in "
|
||||
- "cache '%s'(%d), slabp %p(%d). Hexdump:\n",
|
||||
- cachep->name, cachep->num, slabp, slabp->inuse);
|
||||
+ "cache '%s'(%d), slabp %p(%d). Tainted(%s). Hexdump:\n",
|
||||
+ "cache '%s'(%d), slabp %p(%d). Tainted(%s) Hexdump:\n",
|
||||
+ cachep->name, cachep->num, slabp, slabp->inuse, print_tainted());
|
||||
for (i = 0;
|
||||
i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t);
|
||||
i++) {
|
||||
print_hex_dump(KERN_ERR, "", DUMP_PREFIX_OFFSET, 16, 1, slabp,
|
||||
sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t),
|
||||
1);
|
||||
diff --git a/mm/slub.c b/mm/slub.c
|
||||
index 35f351f..e7ccb39 100644
|
||||
index 95215aa..bbec29e 100644
|
||||
--- a/mm/slub.c
|
||||
+++ b/mm/slub.c
|
||||
@@ -472,7 +472,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
|
||||
@@ -570,7 +570,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
|
||||
va_end(args);
|
||||
printk(KERN_ERR "========================================"
|
||||
"=====================================\n");
|
||||
@ -49,3 +61,6 @@ index 35f351f..e7ccb39 100644
|
||||
printk(KERN_ERR "----------------------------------------"
|
||||
"-------------------------------------\n\n");
|
||||
}
|
||||
--
|
||||
1.7.6.4
|
||||
|
||||
|
@ -1,11 +1,22 @@
|
||||
From 802e6d8c8477a553a677b23a247d6d2638e01958 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Jones <davej@redhat.com>
|
||||
Date: Wed, 26 Oct 2011 13:31:47 -0400
|
||||
Subject: [PATCH] e1000e: ich9 montevina
|
||||
|
||||
This only showed up in one SDV (Montevina).
|
||||
The PCIE slots don't seem to like network cards, so this is the only hope
|
||||
to get networking working. It's never going upstream, but it's low impact
|
||||
enough to carry just to keep those SDVs working.
|
||||
---
|
||||
drivers/net/ethernet/intel/e1000e/ich8lan.c | 6 ++++++
|
||||
drivers/net/ethernet/intel/e1000e/netdev.c | 1 +
|
||||
2 files changed, 7 insertions(+), 0 deletions(-)
|
||||
|
||||
--- linux-2.6.35.noarch/drivers/net/e1000e/ich8lan.c~ 2010-09-29 17:53:13.000000000 -0400
|
||||
+++ linux-2.6.35.noarch/drivers/net/e1000e/ich8lan.c 2010-09-29 17:54:00.000000000 -0400
|
||||
@@ -424,6 +424,12 @@ static s32 e1000_init_phy_params_ich8lan
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
index 6a17c62..0e40975 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
@@ -452,6 +452,12 @@ static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw)
|
||||
|
||||
/* Verify phy id */
|
||||
switch (phy->id) {
|
||||
@ -18,9 +29,11 @@ enough to carry just to keep those SDVs working.
|
||||
case IGP03E1000_E_PHY_ID:
|
||||
phy->type = e1000_phy_igp_3;
|
||||
phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
|
||||
--- linux-2.6.35.noarch/drivers/net/e1000e/netdev.c~ 2010-09-29 17:54:07.000000000 -0400
|
||||
+++ linux-2.6.35.noarch/drivers/net/e1000e/netdev.c 2010-09-29 17:54:29.000000000 -0400
|
||||
@@ -5994,6 +5994,7 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
index a855db1..edac30b 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
@@ -6359,6 +6359,7 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci_tbl) = {
|
||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M), board_ich9lan },
|
||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_AMT), board_ich9lan },
|
||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_V), board_ich9lan },
|
||||
@ -28,3 +41,6 @@ enough to carry just to keep those SDVs working.
|
||||
|
||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LM), board_ich9lan },
|
||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan },
|
||||
--
|
||||
1.7.6.4
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
Subject: [PATCH] [intel_iommu] Default to igfx_off
|
||||
From e13491e4c394907ffdd834aeccca279213818079 Mon Sep 17 00:00:00 2001
|
||||
From: drago01 <drago01@gmail.com>
|
||||
To: fedora-kernel-list <fedora-kernel-list@redhat.com>
|
||||
Date: Wed, 26 Oct 2011 13:37:27 -0400
|
||||
Subject: [PATCH] Default to igfx_off
|
||||
|
||||
This option seems to causes way to many issues, it is
|
||||
being investigated by Intel's chipset team for months now and
|
||||
@ -16,14 +17,14 @@ Signed-off-by: Adel Gadllah <adel.gadllah@gmail.com>
|
||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
Documentation/kernel-parameters.txt | 11 +++++------
|
||||
drivers/pci/intel-iommu.c | 9 +++++----
|
||||
drivers/iommu/intel-iommu.c | 9 +++++----
|
||||
2 files changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
|
||||
index e7848a0..9914485 100644
|
||||
index a8ba119..8ddc43a 100644
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -992,12 +992,11 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
@@ -998,12 +998,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
Enable intel iommu driver.
|
||||
off
|
||||
Disable intel iommu driver.
|
||||
@ -40,22 +41,22 @@ index e7848a0..9914485 100644
|
||||
+ mapped as normal device.
|
||||
forcedac [x86_64]
|
||||
With this option iommu will not optimize to look
|
||||
for io virtual address below 32 bit forcing dual
|
||||
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
|
||||
index 4173125..8f36786 100644
|
||||
for io virtual address below 32-bit forcing dual
|
||||
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
|
||||
index be1953c..2e23af1 100644
|
||||
--- a/drivers/iommu/intel-iommu.c
|
||||
+++ b/drivers/iommu/intel-iommu.c
|
||||
@@ -340,7 +340,8 @@ int dmar_disabled = 0;
|
||||
@@ -404,7 +404,8 @@ int dmar_disabled = 0;
|
||||
int dmar_disabled = 1;
|
||||
#endif /*CONFIG_DMAR_DEFAULT_ON*/
|
||||
|
||||
#endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
|
||||
|
||||
-static int dmar_map_gfx = 1;
|
||||
+/* disabled by default; causes way too many issues */
|
||||
+static int dmar_map_gfx = 0;
|
||||
static int dmar_forcedac;
|
||||
static int intel_iommu_strict;
|
||||
|
||||
@@ -361,10 +362,10 @@ static int __init intel_iommu_setup(char *str)
|
||||
static int intel_iommu_superpage = 1;
|
||||
@@ -429,10 +430,10 @@ static int __init intel_iommu_setup(char *str)
|
||||
} else if (!strncmp(str, "off", 3)) {
|
||||
dmar_disabled = 1;
|
||||
printk(KERN_INFO "Intel-IOMMU: disabled\n");
|
||||
@ -70,9 +71,5 @@ index 4173125..8f36786 100644
|
||||
printk(KERN_INFO
|
||||
"Intel-IOMMU: Forcing DAC for PCI devices\n");
|
||||
--
|
||||
1.6.6.1
|
||||
_______________________________________________
|
||||
kernel mailing list
|
||||
kernel@lists.fedoraproject.org
|
||||
https://admin.fedoraproject.org/mailman/listinfo/kernel
|
||||
1.7.6.4
|
||||
|
||||
|
@ -1,47 +0,0 @@
|
||||
rcu: Avoid having just-onlined CPU resched itself when RCU is idle
|
||||
|
||||
CPUs set rdp->qs_pending when coming online to resolve races with
|
||||
grace-period start. However, this means that if RCU is idle, the
|
||||
just-onlined CPU might needlessly send itself resched IPIs. Adjust
|
||||
the online-CPU initialization to avoid this, and also to correctly
|
||||
cause the CPU to respond to the current grace period if needed.
|
||||
|
||||
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
||||
---
|
||||
kernel/rcutree.c | 13 +++++++++----
|
||||
1 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
|
||||
index ba06207..472d6b2 100644
|
||||
--- a/kernel/rcutree.c
|
||||
+++ b/kernel/rcutree.c
|
||||
@@ -1865,8 +1865,6 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible)
|
||||
|
||||
/* Set up local state, ensuring consistent view of global state. */
|
||||
raw_spin_lock_irqsave(&rnp->lock, flags);
|
||||
- rdp->passed_quiesc = 0; /* We could be racing with new GP, */
|
||||
- rdp->qs_pending = 1; /* so set up to respond to current GP. */
|
||||
rdp->beenonline = 1; /* We have now been online. */
|
||||
rdp->preemptible = preemptible;
|
||||
rdp->qlen_last_fqs_check = 0;
|
||||
@@ -1891,8 +1889,15 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible)
|
||||
rnp->qsmaskinit |= mask;
|
||||
mask = rnp->grpmask;
|
||||
if (rnp == rdp->mynode) {
|
||||
- rdp->gpnum = rnp->completed; /* if GP in progress... */
|
||||
- rdp->completed = rnp->completed;
|
||||
+ /*
|
||||
+ * If there is a grace period in progress, we will
|
||||
+ * set up to wait for it next time we run the
|
||||
+ * RCU core code.
|
||||
+ */
|
||||
+ rdp->gpnum = rnp->completed;
|
||||
+ rdp->completed = rnp->completed;
|
||||
+ rdp->passed_quiesc = 0;
|
||||
+ rdp->qs_pending = 0;
|
||||
rdp->passed_quiesc_completed = rnp->completed - 1;
|
||||
}
|
||||
raw_spin_unlock(&rnp->lock); /* irqs already disabled. */
|
||||
--
|
||||
1.7.6
|
||||
|
@ -1,67 +0,0 @@
|
||||
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
|
||||
index ba06207..c38a882 100644
|
||||
--- a/kernel/rcutree.c
|
||||
+++ b/kernel/rcutree.c
|
||||
@@ -1476,9 +1476,6 @@ static void rcu_process_callbacks(struct softirq_action *unused)
|
||||
&__get_cpu_var(rcu_sched_data));
|
||||
__rcu_process_callbacks(&rcu_bh_state, &__get_cpu_var(rcu_bh_data));
|
||||
rcu_preempt_process_callbacks();
|
||||
-
|
||||
- /* If we are last CPU on way to dyntick-idle mode, accelerate it. */
|
||||
- rcu_needs_cpu_flush();
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
|
||||
index 01b2ccd..795f7fc 100644
|
||||
--- a/kernel/rcutree.h
|
||||
+++ b/kernel/rcutree.h
|
||||
@@ -450,7 +450,6 @@ static int rcu_preempt_needs_cpu(int cpu);
|
||||
static void __cpuinit rcu_preempt_init_percpu_data(int cpu);
|
||||
static void rcu_preempt_send_cbs_to_online(void);
|
||||
static void __init __rcu_init_preempt(void);
|
||||
-static void rcu_needs_cpu_flush(void);
|
||||
static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
|
||||
static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
|
||||
static void invoke_rcu_callbacks_kthread(void);
|
||||
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
|
||||
index 8aafbb8..b0254de 100644
|
||||
--- a/kernel/rcutree_plugin.h
|
||||
+++ b/kernel/rcutree_plugin.h
|
||||
@@ -1907,15 +1907,6 @@ int rcu_needs_cpu(int cpu)
|
||||
return rcu_needs_cpu_quick_check(cpu);
|
||||
}
|
||||
|
||||
-/*
|
||||
- * Check to see if we need to continue a callback-flush operations to
|
||||
- * allow the last CPU to enter dyntick-idle mode. But fast dyntick-idle
|
||||
- * entry is not configured, so we never do need to.
|
||||
- */
|
||||
-static void rcu_needs_cpu_flush(void)
|
||||
-{
|
||||
-}
|
||||
-
|
||||
#else /* #if !defined(CONFIG_RCU_FAST_NO_HZ) */
|
||||
|
||||
#define RCU_NEEDS_CPU_FLUSHES 5
|
||||
@@ -1991,20 +1982,4 @@ int rcu_needs_cpu(int cpu)
|
||||
return c;
|
||||
}
|
||||
|
||||
-/*
|
||||
- * Check to see if we need to continue a callback-flush operations to
|
||||
- * allow the last CPU to enter dyntick-idle mode.
|
||||
- */
|
||||
-static void rcu_needs_cpu_flush(void)
|
||||
-{
|
||||
- int cpu = smp_processor_id();
|
||||
- unsigned long flags;
|
||||
-
|
||||
- if (per_cpu(rcu_dyntick_drain, cpu) <= 0)
|
||||
- return;
|
||||
- local_irq_save(flags);
|
||||
- (void)rcu_needs_cpu(cpu);
|
||||
- local_irq_restore(flags);
|
||||
-}
|
||||
-
|
||||
#endif /* #else #if !defined(CONFIG_RCU_FAST_NO_HZ) */
|
81
select-regmap-from-wm8400.patch
Normal file
81
select-regmap-from-wm8400.patch
Normal file
@ -0,0 +1,81 @@
|
||||
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.220.45.11 with SMTP id c11cs78852vcf;
|
||||
Tue, 25 Oct 2011 11:54:49 -0700 (PDT)
|
||||
Received: by 10.236.124.17 with SMTP id w17mr28007377yhh.126.1319568876490;
|
||||
Tue, 25 Oct 2011 11:54:36 -0700 (PDT)
|
||||
Return-Path: <linux-kernel-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id d47si24837679yhn.69.2011.10.25.11.54.34;
|
||||
Tue, 25 Oct 2011 11:54:36 -0700 (PDT)
|
||||
Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=linux-kernel-owner@vger.kernel.org
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1750837Ab1JYSyG (ORCPT <rfc822;abhay.linux@gmail.com>
|
||||
+ 99 others); Tue, 25 Oct 2011 14:54:06 -0400
|
||||
Received: from mx1.redhat.com ([209.132.183.28]:17177 "EHLO mx1.redhat.com"
|
||||
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
|
||||
id S1750755Ab1JYSyF (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
|
||||
Tue, 25 Oct 2011 14:54:05 -0400
|
||||
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
|
||||
by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p9PIs3QL004267
|
||||
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
|
||||
Tue, 25 Oct 2011 14:54:03 -0400
|
||||
Received: from gelk.kernelslacker.org (ovpn-113-62.phx2.redhat.com [10.3.113.62])
|
||||
by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p9PIs2CE024426
|
||||
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
|
||||
Tue, 25 Oct 2011 14:54:03 -0400
|
||||
Received: from gelk.kernelslacker.org (gelk [127.0.0.1])
|
||||
by gelk.kernelslacker.org (8.14.5/8.14.4) with ESMTP id p9PIs0Ia021463;
|
||||
Tue, 25 Oct 2011 14:54:01 -0400
|
||||
Received: (from davej@localhost)
|
||||
by gelk.kernelslacker.org (8.14.5/8.14.5/Submit) id p9PIs0wZ021462;
|
||||
Tue, 25 Oct 2011 14:54:00 -0400
|
||||
X-Authentication-Warning: gelk.kernelslacker.org: davej set sender to davej@redhat.com using -f
|
||||
Date: Tue, 25 Oct 2011 14:54:00 -0400
|
||||
From: Dave Jones <davej@redhat.com>
|
||||
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
|
||||
Subject: wm8400-core: select REGMAP_I2C in kconfig
|
||||
Message-ID: <20111025185359.GA21019@redhat.com>
|
||||
Mail-Followup-To: Dave Jones <davej@redhat.com>,
|
||||
Mark Brown <broonie@opensource.wolfsonmicro.com>,
|
||||
Linux Kernel <linux-kernel@vger.kernel.org>
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
User-Agent: Mutt/1.5.21 (2010-09-15)
|
||||
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
|
||||
Sender: linux-kernel-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-kernel.vger.kernel.org>
|
||||
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||
|
||||
wm8400-core.c is using the regmap I2C API, so needs to select it.
|
||||
|
||||
ERROR: "regmap_write" [drivers/mfd/wm8400-core.ko] undefined!
|
||||
ERROR: "regmap_raw_read" [drivers/mfd/wm8400-core.ko] undefined!
|
||||
ERROR: "regmap_read" [drivers/mfd/wm8400-core.ko] undefined!
|
||||
ERROR: "regmap_init_i2c" [drivers/mfd/wm8400-core.ko] undefined!
|
||||
ERROR: "regmap_bulk_read" [drivers/mfd/wm8400-core.ko] undefined!
|
||||
ERROR: "regmap_exit" [drivers/mfd/wm8400-core.ko] undefined!
|
||||
|
||||
Signed-off-by: Dave Jones <davej@redhat.com>
|
||||
|
||||
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
|
||||
index a67adcb..67a6126 100644
|
||||
--- a/drivers/mfd/Kconfig
|
||||
+++ b/drivers/mfd/Kconfig
|
||||
@@ -389,6 +389,7 @@ config MFD_MAX8998
|
||||
config MFD_WM8400
|
||||
tristate "Support Wolfson Microelectronics WM8400"
|
||||
select MFD_CORE
|
||||
+ select REGMAP_I2C
|
||||
depends on I2C
|
||||
help
|
||||
Support for the Wolfson Microelecronics WM8400 PMIC and audio
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
Please read the FAQ at http://www.tux.org/lkml/
|
1
sources
1
sources
@ -1 +1,2 @@
|
||||
8d43453f8159b2332ad410b19d86a931 linux-3.1.tar.bz2
|
||||
cdc32e1639137a0434181946bc4d502c patch-3.1-git1.bz2
|
||||
|
@ -1,143 +0,0 @@
|
||||
From patchwork Tue Aug 2 05:04:11 2011
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Subject: ums-realtek driver uses stack memory for DMA
|
||||
Date: Tue, 02 Aug 2011 05:04:11 -0000
|
||||
From: Adam Cozzette <acozzette@cs.hmc.edu>
|
||||
X-Patchwork-Id: 1028062
|
||||
Message-Id: <20110802050411.GC3857@[192.168.0.12]>
|
||||
To: Josh Boyer <jwboyer@redhat.com>
|
||||
Cc: edwin_rong <edwin_rong@realsil.com.cn>, wwang <wei_wang@realsil.com.cn>,
|
||||
Greg Kroah-Hartman <gregkh@suse.de>, linux-usb@vger.kernel.org,
|
||||
linux-kernel@vger.kernel.org
|
||||
|
||||
On Mon, Aug 01, 2011 at 05:09:06PM -0400, Josh Boyer wrote:
|
||||
> Hello,
|
||||
>
|
||||
> We have a report that the ums-realtek driver is generating a backtrace
|
||||
> due to using stack variables for DMA buffers. The backtrace is below
|
||||
> and you can view the bug report here:
|
||||
> https://bugzilla.redhat.com/show_bug.cgi?id=720054
|
||||
>
|
||||
> Looking through the code, it seems that every call to rts51x_read_mem,
|
||||
> rts51x_write_mem, and rts51x_read_status passes a stack variable to
|
||||
> rts51x_bulk_transport, which then calls usb_stor_bulk_transfer_buf with
|
||||
> this and generates the backtrace. It is my understanding that the
|
||||
> driver should be passing variables that are not on the stack and have
|
||||
> been allocated with memory that will be suitable for the DMA api (e.g.
|
||||
> kmalloc).
|
||||
>
|
||||
> Was this missed during the initial review and is anyone working on
|
||||
> adapting the driver to be compliant?
|
||||
|
||||
Could you try out this patch if it looks ok to you? I have not tested it because
|
||||
unfortunately I don't have the hardware. Right now it generates some compile
|
||||
warnings like this one:
|
||||
|
||||
drivers/usb/storage/realtek_cr.c:419:40: warning: ‘buf[0]’ may be used uninitialized in this function [-Wuninitialized]
|
||||
|
||||
It think they are harmless but I didn't see an obvious way to get rid of them,
|
||||
so if you have any suggestions I would be glad to hear them.
|
||||
|
||||
This patch changed rts51x_read_mem, rts51x_write_mem, and rts51x_read_status to
|
||||
allocate temporary buffers with kmalloc. This way stack addresses are not used
|
||||
for DMA when these functions call rts51x_bulk_transport.
|
||||
|
||||
Signed-off-by: Adam Cozzette <acozzette@cs.hmc.edu>
|
||||
|
||||
---
|
||||
realtek_cr.c | 35 ++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 30 insertions(+), 5 deletions(-)
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
Please read the FAQ at http://www.tux.org/lkml/
|
||||
|
||||
diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
|
||||
index 34adc4b..232167a 100644
|
||||
--- a/drivers/usb/storage/realtek_cr.c
|
||||
+++ b/drivers/usb/storage/realtek_cr.c
|
||||
@@ -320,6 +320,11 @@ static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
|
||||
{
|
||||
int retval;
|
||||
u8 cmnd[12] = { 0 };
|
||||
+ u8 *buf;
|
||||
+
|
||||
+ buf = kmalloc(len, GFP_NOIO);
|
||||
+ if (buf == NULL)
|
||||
+ return USB_STOR_TRANSPORT_ERROR;
|
||||
|
||||
US_DEBUGP("%s, addr = 0x%x, len = %d\n", __func__, addr, len);
|
||||
|
||||
@@ -331,10 +336,14 @@ static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
|
||||
cmnd[5] = (u8) len;
|
||||
|
||||
retval = rts51x_bulk_transport(us, 0, cmnd, 12,
|
||||
- data, len, DMA_FROM_DEVICE, NULL);
|
||||
- if (retval != USB_STOR_TRANSPORT_GOOD)
|
||||
+ buf, len, DMA_FROM_DEVICE, NULL);
|
||||
+ if (retval != USB_STOR_TRANSPORT_GOOD) {
|
||||
+ kfree(buf);
|
||||
return -EIO;
|
||||
+ }
|
||||
|
||||
+ memcpy(data, buf, len);
|
||||
+ kfree(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -342,6 +351,12 @@ static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
|
||||
{
|
||||
int retval;
|
||||
u8 cmnd[12] = { 0 };
|
||||
+ u8 *buf;
|
||||
+
|
||||
+ buf = kmalloc(len, GFP_NOIO);
|
||||
+ if (buf == NULL)
|
||||
+ return USB_STOR_TRANSPORT_ERROR;
|
||||
+ memcpy(buf, data, len);
|
||||
|
||||
US_DEBUGP("%s, addr = 0x%x, len = %d\n", __func__, addr, len);
|
||||
|
||||
@@ -353,7 +368,8 @@ static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
|
||||
cmnd[5] = (u8) len;
|
||||
|
||||
retval = rts51x_bulk_transport(us, 0, cmnd, 12,
|
||||
- data, len, DMA_TO_DEVICE, NULL);
|
||||
+ buf, len, DMA_TO_DEVICE, NULL);
|
||||
+ kfree(buf);
|
||||
if (retval != USB_STOR_TRANSPORT_GOOD)
|
||||
return -EIO;
|
||||
|
||||
@@ -365,6 +381,11 @@ static int rts51x_read_status(struct us_data *us,
|
||||
{
|
||||
int retval;
|
||||
u8 cmnd[12] = { 0 };
|
||||
+ u8 *buf;
|
||||
+
|
||||
+ buf = kmalloc(len, GFP_NOIO);
|
||||
+ if (buf == NULL)
|
||||
+ return USB_STOR_TRANSPORT_ERROR;
|
||||
|
||||
US_DEBUGP("%s, lun = %d\n", __func__, lun);
|
||||
|
||||
@@ -372,10 +393,14 @@ static int rts51x_read_status(struct us_data *us,
|
||||
cmnd[1] = 0x09;
|
||||
|
||||
retval = rts51x_bulk_transport(us, lun, cmnd, 12,
|
||||
- status, len, DMA_FROM_DEVICE, actlen);
|
||||
- if (retval != USB_STOR_TRANSPORT_GOOD)
|
||||
+ buf, len, DMA_FROM_DEVICE, actlen);
|
||||
+ if (retval != USB_STOR_TRANSPORT_GOOD) {
|
||||
+ kfree(buf);
|
||||
return -EIO;
|
||||
+ }
|
||||
|
||||
+ memcpy(status, buf, len);
|
||||
+ kfree(buf);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,74 +1,30 @@
|
||||
From d5446509abd85b6845d91a319a033c5bd17e494d Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum-l3A5Bk7waGM@public.gmane.org>
|
||||
Date: Tue, 13 Sep 2011 08:42:21 +0200
|
||||
Subject: [PATCH] USB:add RESET_RESUME for webcams shown to be quirky
|
||||
From 47a9e4d129eb621737f2d7147ce1db0da473a98f Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
Date: Wed, 26 Oct 2011 13:47:56 -0400
|
||||
Subject: [PATCH] USB: add quirk for Logitech C600 web cam
|
||||
|
||||
From 6f673c5ef819548b2cbaf7bb607779af6fdbe731 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
|
||||
Date: Tue, 30 Aug 2011 15:34:32 +0200
|
||||
Subject: [PATCH] USB:add RESET_RESUME for webcams shown to be quirky
|
||||
We've had another report of the "chipmunk" sound on a Logitech C600 webcam.
|
||||
This patch resolves the issue.
|
||||
|
||||
The new runtime PM code has shown that many webcams suffer
|
||||
from a race condition that may crash them upon resume.
|
||||
Runtime PM is especially prone to show the problem because
|
||||
it retains power to the cameras at all times. However
|
||||
system suspension may also crash the devices and retain
|
||||
power to the devices.
|
||||
The only way to solve this problem without races is in
|
||||
usbcore with the RESET_RESUME quirk.
|
||||
|
||||
Signed-off-by: Oliver Neukum <oneukum-l3A5Bk7waGM@public.gmane.org>
|
||||
|
||||
Add C300 ID from patch in rhbz #742010
|
||||
Add C600 ID from rhbz #742010
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
|
||||
---
|
||||
drivers/usb/core/quirks.c | 27 +++++++++++++++++++++++++++
|
||||
1 files changed, 27 insertions(+), 0 deletions(-)
|
||||
drivers/usb/core/quirks.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
||||
index 81ce6a8..caa1991 100644
|
||||
index d6a8d82..caa1991 100644
|
||||
--- a/drivers/usb/core/quirks.c
|
||||
+++ b/drivers/usb/core/quirks.c
|
||||
@@ -38,6 +38,30 @@ static const struct usb_device_id usb_quirk_list[] = {
|
||||
/* Creative SB Audigy 2 NX */
|
||||
{ USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
||||
/* Logitech Webcam B/C500 */
|
||||
{ USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
|
||||
+ /* Logitech Webcam C200 */
|
||||
+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam C250 */
|
||||
+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam C300 */
|
||||
+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam B/C500 */
|
||||
+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam C600 */
|
||||
+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam Pro 9000 */
|
||||
+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam C310 */
|
||||
+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
+ /* Logitech Webcam C270 */
|
||||
+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
/* Logitech Harmony 700-series */
|
||||
{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
|
||||
|
||||
@@ -69,6 +93,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
||||
{ USB_DEVICE(0x06a3, 0x0006), .driver_info =
|
||||
USB_QUIRK_CONFIG_INTF_STRINGS },
|
||||
|
||||
+ /* Guillemot Webcam Hercules Dualpix Exchange*/
|
||||
+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
/* M-Systems Flash Disk Pioneers */
|
||||
{ USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
/* Logitech Webcam Pro 9000 */
|
||||
{ USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
|
||||
--
|
||||
1.7.6.4
|
||||
|
Loading…
Reference in New Issue
Block a user