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:
Josh Boyer 2011-10-26 18:23:52 -04:00
parent 829bffe3f9
commit 34f9218fe5
27 changed files with 418 additions and 1485 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -142,6 +142,7 @@ CONFIG_SPARSE_IRQ=y
# CONFIG_ARM_PATCH_PHYS_VIRT is not set # CONFIG_ARM_PATCH_PHYS_VIRT is not set
CONFIG_NET_VENDOR_FARADAY=y
CONFIG_FTMAC100=m CONFIG_FTMAC100=m
CONFIG_HWSPINLOCK_OMAP=m CONFIG_HWSPINLOCK_OMAP=m

View File

@ -133,6 +133,9 @@ CONFIG_ARM_GIC=y
# CONFIG_PCCARD is not set # CONFIG_PCCARD is not set
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_SMP_ON_UP=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_SCU=y
CONFIG_HAVE_ARM_TWD=y CONFIG_HAVE_ARM_TWD=y
CONFIG_NR_CPUS=2 CONFIG_NR_CPUS=2
@ -290,6 +293,9 @@ CONFIG_EEPROM_93XX46=m
CONFIG_DM_MULTIPATH=y CONFIG_DM_MULTIPATH=y
# CONFIG_TARGET_CORE is not set # CONFIG_TARGET_CORE is not set
# CONFIG_MACVTAP 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_MII=y
# CONFIG_MARVELL_PHY is not set # CONFIG_MARVELL_PHY is not set
# CONFIG_DAVICOM_PHY is not set # CONFIG_DAVICOM_PHY is not set
@ -322,14 +328,13 @@ CONFIG_SMSC911X=y
# CONFIG_DNET is not set # CONFIG_DNET is not set
# CONFIG_B44 is not set # CONFIG_B44 is not set
CONFIG_KS8851=m CONFIG_KS8851=m
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_ATH9K_HTC is not set # CONFIG_ATH9K_HTC is not set
# CONFIG_AR9170_USB is not set # CONFIG_AR9170_USB is not set
# CONFIG_B43_SDIO is not set # CONFIG_B43_SDIO is not set
# CONFIG_B43_PHY_N is not set # CONFIG_B43_PHY_N is not set
# CONFIG_HOSTAP is not set # CONFIG_HOSTAP is not set
# CONFIG_IWM is not set # CONFIG_IWM is not set
# CONFIG_BRCMDBG is not set
CONFIG_LIBERTAS_SPI=m CONFIG_LIBERTAS_SPI=m
# CONFIG_LIBERTAS_MESH is not set # CONFIG_LIBERTAS_MESH is not set
CONFIG_P54_SPI=m CONFIG_P54_SPI=m
@ -489,6 +494,7 @@ CONFIG_GPIO_TWL4030=y
# CONFIG_CHARGER_TWL4030 is not set # CONFIG_CHARGER_TWL4030 is not set
# CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_GPIO is not set
# CONFIG_HWMON_VID is not set # CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_AD7314 is not set
# CONFIG_SENSORS_AD7414 is not set # CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set # CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX 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_FILES is not set
CONFIG_USB_GADGET_DEBUG_FS=y CONFIG_USB_GADGET_DEBUG_FS=y
CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_GADGET_SELECTED=y CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_OMAP is not set # CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_R8A66597 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_M66592 is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_RENESAS_USBHS is not set
# CONFIG_USB_ZERO is not set # CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set # CONFIG_USB_AUDIO is not set
CONFIG_USB_ETH=y CONFIG_USB_ETH=y
@ -900,6 +908,7 @@ CONFIG_USB_ETH_RNDIS=y
CONFIG_USB_ETH_EEM=y CONFIG_USB_ETH_EEM=y
# CONFIG_USB_G_NCM is not set # CONFIG_USB_G_NCM is not set
# CONFIG_USB_GADGETFS is not set # CONFIG_USB_GADGETFS is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_FUNCTIONFS is not set # CONFIG_USB_FUNCTIONFS is not set
# CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_MASS_STORAGE is not set # CONFIG_USB_MASS_STORAGE is not set

View File

@ -43,6 +43,9 @@ CONFIG_ARM_ERRATA_720789=y
# CONFIG_ARM_ERRATA_754327 is not set # CONFIG_ARM_ERRATA_754327 is not set
# CONFIG_ARM_ERRATA_764369 is not set # CONFIG_ARM_ERRATA_764369 is not set
CONFIG_SMP_ON_UP=y CONFIG_SMP_ON_UP=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_LOCAL_TIMERS=y CONFIG_LOCAL_TIMERS=y
# CONFIG_THUMB2_KERNEL is not set # CONFIG_THUMB2_KERNEL is not set
CONFIG_HW_PERF_EVENTS=y CONFIG_HW_PERF_EVENTS=y

View File

@ -1218,13 +1218,194 @@ CONFIG_L2TP_ETH=m
CONFIG_RFKILL=m CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_INPUT=y
CONFIG_NFC_NCI=m
# #
# Ethernet (10 or 100Mbit) # Ethernet (10 or 100Mbit)
# #
CONFIG_NETDEV_1000=y
CONFIG_NETDEV_10000=y CONFIG_NET_VENDOR_ADAPTEC=y
CONFIG_NET_ETHERNET=y CONFIG_ADAPTEC_STARFIRE=m
CONFIG_PHYLIB=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_BROADCOM_PHY=m
CONFIG_CICADA_PHY=m CONFIG_CICADA_PHY=m
CONFIG_DAVICOM_PHY=m CONFIG_DAVICOM_PHY=m
@ -1244,138 +1425,37 @@ CONFIG_VITESSE_PHY=m
CONFIG_MICREL_PHY=m CONFIG_MICREL_PHY=m
CONFIG_MII=m CONFIG_MII=m
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_NET_VENDOR_3COM=y CONFIG_NET_VENDOR_3COM=y
CONFIG_VORTEX=m CONFIG_VORTEX=m
CONFIG_TYPHOON=m CONFIG_TYPHOON=m
CONFIG_DNET=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_LNE390=m
CONFIG_NE3210=m
CONFIG_ES3210=m CONFIG_ES3210=m
CONFIG_NET_PCI=y CONFIG_NET_PCI=y
CONFIG_PCNET32=m
CONFIG_AMD8111_ETH=m
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_KSZ884X_PCI=m
CONFIG_B44=m CONFIG_B44=m
CONFIG_B44_PCI=y CONFIG_B44_PCI=y
CONFIG_BNX2=m CONFIG_BNX2=m
CONFIG_CNIC=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_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_NET_POCKET=y
CONFIG_ATP=m
CONFIG_DE600=m
CONFIG_DE620=m
CONFIG_CASSINI=m
CONFIG_ETHOC=m CONFIG_ETHOC=m
# CONFIG_KS8842 is not set
# CONFIG_KS8851_MLL is not set
# #
# Ethernet (1000 Mbit) # 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_TIGON3=m
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
CONFIG_JME=m CONFIG_JME=m
# #
# Ethernet (10000 Mbit) # 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_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_EN=m
# CONFIG_MLX4_DEBUG is not set # CONFIG_MLX4_DEBUG is not set
CONFIG_QLCNIC=m
CONFIG_QLGE=m
CONFIG_BNA=m
CONFIG_SFC=m CONFIG_SFC=m
CONFIG_SFC_MTD=y CONFIG_SFC_MTD=y
CONFIG_BE2NET=m
CONFIG_FDDI=y CONFIG_FDDI=y
# CONFIG_DEFXX is not set # CONFIG_DEFXX is not set
@ -1444,6 +1524,8 @@ CONFIG_ATH_COMMON=m
CONFIG_ATH5K=m CONFIG_ATH5K=m
CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K_DEBUG=y
# CONFIG_ATH5K_TRACER is not set # CONFIG_ATH5K_TRACER is not set
CONFIG_ATH6KL=m
CONFIG_ATH6KL_DEBUG=y
CONFIG_ATH9K=m CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y CONFIG_ATH9K_AHB=y
@ -1454,6 +1536,7 @@ CONFIG_ATH9K_HTC=m
CONFIG_ATH9K_RATE_CONTROL=y CONFIG_ATH9K_RATE_CONTROL=y
CONFIG_CARL9170=m CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_LEDS=y
# CONFIG_CARL9170_HWRNG is not set
CONFIG_AT76C50X_USB=m CONFIG_AT76C50X_USB=m
CONFIG_AIRO=m CONFIG_AIRO=m
CONFIG_AIRO_CS=m CONFIG_AIRO_CS=m
@ -1465,6 +1548,7 @@ CONFIG_B43_BCMA=y
CONFIG_B43_DEBUG=y CONFIG_B43_DEBUG=y
CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_LP=y
CONFIG_B43_PHY_N=y CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_HT=y
# CONFIG_B43_FORCE_PIO is not set # CONFIG_B43_FORCE_PIO is not set
CONFIG_B43LEGACY=m CONFIG_B43LEGACY=m
CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DEBUG=y
@ -1572,6 +1656,7 @@ CONFIG_RTL8192DE=m
CONFIG_MWIFIEX=m CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m CONFIG_MWIFIEX_SDIO=m
CONFIG_MWIFIEX_PCIE=m
# #
# Token Ring devices # Token Ring devices
@ -1601,11 +1686,6 @@ CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m CONFIG_PCMCIA_3C589=m
CONFIG_PCMCIA_3C574=m CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_FMVJ18X=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 # Amateur Radio support
@ -1616,13 +1696,16 @@ CONFIG_AX25_DAMA_SLAVE=y
CONFIG_CAN=m CONFIG_CAN=m
CONFIG_CAN_RAW=m CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m
CONFIG_CAN_VCAN=m CONFIG_CAN_VCAN=m
CONFIG_CAN_DEV=m CONFIG_CAN_DEV=m
CONFIG_CAN_CALC_BITTIMING=y CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_SJA1000=m CONFIG_CAN_SJA1000=m
CONFIG_CAN_SJA1000_ISA=m CONFIG_CAN_SJA1000_ISA=m
CONFIG_CAN_SJA1000_PLATFORM=m CONFIG_CAN_SJA1000_PLATFORM=m
CONFIG_CAN_EMS_PCMCIA=m
CONFIG_CAN_EMS_PCI=m CONFIG_CAN_EMS_PCI=m
CONFIG_CAN_PEAK_PCI=m
CONFIG_CAN_EMS_USB=m CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m CONFIG_CAN_ESD_USB2=m
CONFIG_CAN_KVASER_PCI=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_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set # CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_RSA=y
# CONFIG_SERIAL_8250_DW is not set
CONFIG_CYCLADES=m CONFIG_CYCLADES=m
# CONFIG_CYZ_INTR is not set # CONFIG_CYZ_INTR is not set
# CONFIG_MOXA_INTELLIO is not set # CONFIG_MOXA_INTELLIO is not set
@ -2269,12 +2353,14 @@ CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m CONFIG_SENSORS_UCD9200=m
CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_EMC6W201=m
CONFIG_PMBUS=m CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX1668=m
@ -3101,6 +3187,7 @@ CONFIG_USB_STORAGE_ONETOUCH=m
CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ALAUDA=m
CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_KARMA=m
CONFIG_USB_STORAGE_REALTEK=m CONFIG_USB_STORAGE_REALTEK=m
CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_ENE_UB6250=m CONFIG_USB_STORAGE_ENE_UB6250=m
# CONFIG_USB_LIBUSUAL is not set # CONFIG_USB_LIBUSUAL is not set
CONFIG_USB_UAS=m CONFIG_USB_UAS=m
@ -3118,6 +3205,7 @@ CONFIG_HID=m
CONFIG_HIDRAW=y CONFIG_HIDRAW=y
CONFIG_HID_PID=y CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y CONFIG_LOGITECH_FF=y
CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGIWII_FF=y CONFIG_LOGIWII_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_PANTHERLORD_FF=y CONFIG_PANTHERLORD_FF=y
@ -3131,10 +3219,12 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_GREENASIA_FF=y CONFIG_GREENASIA_FF=y
CONFIG_SMARTJOYPLUS_FF=y CONFIG_SMARTJOYPLUS_FF=y
CONFIG_LOGIG940_FF=y CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MAGICMOUSE=y
CONFIG_HID_MULTITOUCH=m CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NTRIG=y CONFIG_HID_NTRIG=y
CONFIG_HID_QUANTA=y CONFIG_HID_QUANTA=y
CONFIG_HID_PRIMAX=m
CONFIG_HID_PRODIKEYS=m CONFIG_HID_PRODIKEYS=m
CONFIG_HID_DRAGONRISE=m CONFIG_HID_DRAGONRISE=m
CONFIG_HID_GYRATION=m CONFIG_HID_GYRATION=m
@ -3154,7 +3244,6 @@ CONFIG_HID_TOPSEED=m
CONFIG_HID_THRUSTMASTER=m CONFIG_HID_THRUSTMASTER=m
CONFIG_HID_ZEROPLUS=m CONFIG_HID_ZEROPLUS=m
CONFIG_HID_ZYDACRON=m CONFIG_HID_ZYDACRON=m
CONFIG_HID_ACRUX_FF=m
CONFIG_HID_EMS_FF=m CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m CONFIG_HID_ELECOM=m
CONFIG_HID_UCLOGIC=m CONFIG_HID_UCLOGIC=m
@ -3162,6 +3251,7 @@ CONFIG_HID_WALTOP=m
CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_ROCCAT_PYRA=m
CONFIG_HID_ROCCAT_KONEPLUS=m CONFIG_HID_ROCCAT_KONEPLUS=m
CONFIG_HID_ACRUX=m CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_KEYTOUCH=m CONFIG_HID_KEYTOUCH=m
CONFIG_HID_LCPOWER=m CONFIG_HID_LCPOWER=m
CONFIG_HID_ROCCAT_ARVO=m CONFIG_HID_ROCCAT_ARVO=m
@ -3394,6 +3484,7 @@ CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_FILE_STORAGE=m CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set # CONFIG_USB_FILE_STORAGE_TEST is not set
# CONFIG_USB_GADGET is not set # CONFIG_USB_GADGET is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_GADGETFS is not set # CONFIG_USB_GADGETFS is not set
# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set # CONFIG_USB_ISP1760_HCD is not set
@ -3918,6 +4009,7 @@ CONFIG_LCD_PLATFORM=m
CONFIG_SCHEDSTATS=y CONFIG_SCHEDSTATS=y
CONFIG_SCHED_DEBUG=y CONFIG_SCHED_DEBUG=y
CONFIG_FAIR_GROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_RT_GROUP_SCHED=y CONFIG_RT_GROUP_SCHED=y
CONFIG_SCHED_AUTOGROUP=y CONFIG_SCHED_AUTOGROUP=y
@ -4001,35 +4093,19 @@ CONFIG_SCSI_ARCMSR_AER=y
# CONFIG_EL1 is not set # CONFIG_EL1 is not set
# CONFIG_EL2 is not set # CONFIG_EL2 is not set
# CONFIG_ELPLUS is not set
# CONFIG_EL16 is not set
CONFIG_EL3=m CONFIG_EL3=m
# CONFIG_3C515 is not set # CONFIG_3C515 is not set
# CONFIG_LANCE is not set
CONFIG_NET_VENDOR_SMC=y CONFIG_NET_VENDOR_SMC=y
# CONFIG_WD80x3 is not set # CONFIG_WD80x3 is not set
CONFIG_ULTRA=m CONFIG_ULTRA=m
# CONFIG_SMC9194 is not set
# CONFIG_NET_VENDOR_RACAL is not set # CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NI52 is not set
# CONFIG_NI65 is not set # CONFIG_NI65 is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set # CONFIG_DEPCA is not set
CONFIG_NET_ISA=y CONFIG_NET_ISA=y
CONFIG_NE2000=m CONFIG_NE2000=m
# CONFIG_E2100 is not set # 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_PLUS is not set
# CONFIG_HPLAN 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_IBMTR is not set
# CONFIG_SKISA is not set # CONFIG_SKISA is not set
# CONFIG_PROTEON is not set # CONFIG_PROTEON is not set
@ -4250,7 +4326,6 @@ CONFIG_LIRC_TTUSBIR=m
# CONFIG_DEVKMEM is not set # CONFIG_DEVKMEM is not set
CONFIG_PM_TRACE_RTC=y CONFIG_PM_TRACE_RTC=y
CONFIG_R6040=m
CONFIG_BNX2X=m CONFIG_BNX2X=m
CONFIG_SCSI_BNX2X_FCOE=m CONFIG_SCSI_BNX2X_FCOE=m
@ -4298,6 +4373,7 @@ CONFIG_OPTIMIZE_INLINING=y
# CONFIG_HP_ILO is not set # CONFIG_HP_ILO is not set
# CONFIG_GPIOLIB is not set # CONFIG_GPIOLIB is not set
# CONFIG_PINCTRL is not set
CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_TPROXY=m
@ -4400,6 +4476,8 @@ CONFIG_USB_ATMEL=m
# CONFIG_BRCMFMAC is not set # CONFIG_BRCMFMAC is not set
# CONFIG_INTEL_MEI is not set # CONFIG_INTEL_MEI is not set
# CONFIG_ZCACHE is not set # CONFIG_ZCACHE is not set
# CONFIG_RTS5139 is not set
# CONFIG_NVEC_LEDS is not set
# #
# Android # Android
@ -4426,6 +4504,8 @@ CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_AUDIT=y CONFIG_IMA_AUDIT=y
CONFIG_IMA_LSM_RULES=y CONFIG_IMA_LSM_RULES=y
# CONFIG_EVM is not set
CONFIG_LSM_MMAP_MIN_ADDR=65536 CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_PAGE_POISONING is not set # CONFIG_PAGE_POISONING is not set
@ -4448,6 +4528,7 @@ CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_IEEE802154=m CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKEHARD=m CONFIG_IEEE802154_FAKEHARD=m
@ -4552,6 +4633,7 @@ CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
CONFIG_PN544_NFC=m CONFIG_PN544_NFC=m
CONFIG_NFC_PN533=m CONFIG_NFC_PN533=m
CONFIG_NFC_WILINK=m
CONFIG_TARGET_CORE=m CONFIG_TARGET_CORE=m
CONFIG_ISCSI_TARGET=m CONFIG_ISCSI_TARGET=m

View File

@ -13,7 +13,7 @@ CONFIG_EFI=y
# CONFIG_ITANIUM is not set # CONFIG_ITANIUM is not set
CONFIG_MCKINLEY=y CONFIG_MCKINLEY=y
CONFIG_IA64_GENERIC=y CONFIG_IA64_GENERIC=y
CONFIG_DMAR=y CONFIG_INTEL_IOMMU=y
# CONFIG_IA64_DIG is not set # CONFIG_IA64_DIG is not set
# CONFIG_IA64_HP_ZX1 is not set # CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_SGI_SN2 is not set # CONFIG_IA64_SGI_SN2 is not set
@ -195,7 +195,7 @@ CONFIG_PARAVIRT_GUEST=y
CONFIG_PARAVIRT=y CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_DMAR_DEFAULT_ON=y CONFIG_INTEL_IOMMU_DEFAULT_ON=y
CONFIG_RCU_FANOUT=64 CONFIG_RCU_FANOUT=64

View File

@ -225,6 +225,7 @@ CONFIG_EXTRA_TARGETS=""
# CONFIG_SERIAL_QE is not set # CONFIG_SERIAL_QE is not set
# CONFIG_I2C_CPM is not set # CONFIG_I2C_CPM is not set
CONFIG_NET_VENDOR_IBM=y
CONFIG_SERIO_XILINX_XPS_PS2=m 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_GENERIC_PLATFORM is not set
# CONFIG_GPIO_MCP23S08 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

View File

@ -41,6 +41,7 @@ CONFIG_ADB_PMU_LED=y
CONFIG_ADB_PMU_LED_IDE=y CONFIG_ADB_PMU_LED_IDE=y
CONFIG_PMAC_MEDIABAY=y CONFIG_PMAC_MEDIABAY=y
CONFIG_NET_VENDOR_APPLE=y
CONFIG_BMAC=m CONFIG_BMAC=m
CONFIG_MACE=m CONFIG_MACE=m
# CONFIG_MACE_AAUI_PORT is not set # CONFIG_MACE_AAUI_PORT is not set
@ -86,6 +87,7 @@ CONFIG_8xxx_WDT=m
CONFIG_GEF_WDT=m CONFIG_GEF_WDT=m
CONFIG_PPC_MPC5200_BUGFIX=y CONFIG_PPC_MPC5200_BUGFIX=y
CONFIG_NET_VENDOR_FREESCALE=y
CONFIG_FEC_MPC52xx=m CONFIG_FEC_MPC52xx=m
#CHECK: This may later become a tristate. #CHECK: This may later become a tristate.
CONFIG_FEC_MPC52xx_MDIO=y CONFIG_FEC_MPC52xx_MDIO=y
@ -185,3 +187,4 @@ CONFIG_KVM_BOOK3S_32=m
# CONFIG_SCSI_QLA_ISCSI is not set # CONFIG_SCSI_QLA_ISCSI is not set
CONFIG_BATTERY_PMU=m CONFIG_BATTERY_PMU=m

View File

@ -237,3 +237,5 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_WARN_DYNAMIC_STACK is not set # CONFIG_WARN_DYNAMIC_STACK is not set
CONFIG_CRYPTO_GHASH_S390=m CONFIG_CRYPTO_GHASH_S390=m
CONFIG_NET_CORE=y
CONFIG_ETHERNET=y

View File

@ -36,10 +36,10 @@ CONFIG_FB_EFI=y
# FIXME: 32bit only? # FIXME: 32bit only?
# CONFIG_FB_N411 is not set # CONFIG_FB_N411 is not set
CONFIG_DMAR=y CONFIG_INTEL_IOMMU=y
CONFIG_DMAR_BROKEN_GFX_WA=y CONFIG_DMAR_BROKEN_GFX_WA=y
CONFIG_DMAR_FLOPPY_WA=y CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_DMAR_DEFAULT_ON=y CONFIG_INTEL_IOMMU_DEFAULT_ON=y
CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_ADVANSYS=m
CONFIG_SECCOMP=y CONFIG_SECCOMP=y

View File

@ -95,7 +95,7 @@ CONFIG_DIRECT_GBPAGES=y
CONFIG_X86_MPPARSE=y CONFIG_X86_MPPARSE=y
CONFIG_I7300_IDLE=m CONFIG_I7300_IDLE=m
CONFIG_INTR_REMAP=y CONFIG_IRQ_REMAP=y
CONFIG_X86_X2APIC=y CONFIG_X86_X2APIC=y
CONFIG_SPARSE_IRQ=y CONFIG_SPARSE_IRQ=y

View File

@ -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 epoll can acquire multiple ep->mutex on multiple "struct eventpoll"s
at once in the case where one epoll fd is monitoring another epoll 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, fd. This is perfectly OK, since we're careful about the lock ordering,

View File

@ -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> From: Jason Baron <jbaron@redhat.com>
Date: Mon, 24 Oct 2011 14:59:02 +1100 Date: Mon, 24 Oct 2011 14:59:02 +1100
Subject: [PATCH] epoll: limit paths 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(-) 3 files changed, 203 insertions(+), 25 deletions(-)
diff --git a/fs/eventpoll.c b/fs/eventpoll.c diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 4a53743..414ac74 100644 index b84fad9..414ac74 100644
--- a/fs/eventpoll.c --- a/fs/eventpoll.c
+++ b/fs/eventpoll.c +++ b/fs/eventpoll.c
@@ -197,6 +197,12 @@ struct eventpoll { @@ -197,6 +197,12 @@ struct eventpoll {
@ -137,7 +137,7 @@ index 4a53743..414ac74 100644
.llseek = noop_llseek, .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) -static inline int is_file_epoll(struct file *f)
-{ -{
- return f->f_op == &eventpoll_fops; - 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 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 --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -985,6 +985,7 @@ struct file { @@ -985,6 +985,7 @@ struct file {

View 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

View File

@ -6,7 +6,7 @@ Summary: The Linux kernel
# For a stable, released kernel, released_kernel should be 1. For rawhide # 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 # and/or a kernel built from an rc or git snapshot, released_kernel should
# be 0. # be 0.
%global released_kernel 1 %global released_kernel 0
# Save original buildid for later if it's defined # Save original buildid for later if it's defined
%if 0%{?buildid:1} %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 non-released -rc kernels, this will be prepended with "0.", so
# for example a 3 here will become 0.3 # for example a 3 here will become 0.3
# #
%global baserelease 5 %global baserelease 0
%global fedora_build %{baserelease} %global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching # 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) # The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1))) %define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level # The rc snapshot level
%define rcrev 10 %define rcrev 0
# The git snapshot level # The git snapshot level
%define gitrev 1 %define gitrev 1
# Set rpm version accordingly # 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 Patch2904: media-dib0700-protect-the-dib0700-buffer-access.patch
Patch2905: media-dib0700-correct-error-message.patch Patch2905: media-dib0700-correct-error-message.patch
Patch3000: rcutree-avoid-false-quiescent-states.patch
# fs fixes # fs fixes
# NFSv4 # NFSv4
# patches headed upstream # patches headed upstream
Patch12010: add-appleir-usb-driver.patch
Patch12016: disable-i8042-check-on-apple-mac.patch Patch12016: disable-i8042-check-on-apple-mac.patch
Patch12021: udlfb-bind-framebuffer-to-interface.patch Patch12021: udlfb-bind-framebuffer-to-interface.patch
Patch12022: x86-efi-Calling-__pa-with-an-ioremap-address-is-invalid.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 Patch12024: epoll-fix-spurious-lockdep-warnings.patch
Patch12025: rcu-avoid-just-onlined-cpu-resched.patch
Patch12026: block-stray-block-put-after-teardown.patch Patch12026: block-stray-block-put-after-teardown.patch
Patch12027: usb-add-quirk-for-logitech-webcams.patch Patch12027: usb-add-quirk-for-logitech-webcams.patch
Patch12029: crypto-register-cryptd-first.patch Patch12029: crypto-register-cryptd-first.patch
@ -715,13 +709,10 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch
Patch13002: revert-efi-rtclock.patch Patch13002: revert-efi-rtclock.patch
Patch13003: efi-dont-map-boot-services-on-32bit.patch Patch13003: efi-dont-map-boot-services-on-32bit.patch
Patch13007: add-macbookair41-keyboard.patch
Patch13009: hvcs_pi_buf_alloc.patch Patch13009: hvcs_pi_buf_alloc.patch
Patch13013: powerpc-Fix-deadlock-in-icswx-code.patch Patch13013: powerpc-Fix-deadlock-in-icswx-code.patch
Patch13014: select-regmap-from-wm8400.patch
Patch13014: iwlagn-fix-ht_params-NULL-pointer-dereference.patch
Patch20000: utrace.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 Patch21020: 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
Patch21021: 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.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 #rhbz 749166
Patch21050: xfs-Fix-possible-memory-corruption-in-xfs_readlink.patch 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 ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch
# Patches headed upstream # Patches headed upstream
ApplyPatch rcutree-avoid-false-quiescent-states.patch
ApplyPatch disable-i8042-check-on-apple-mac.patch ApplyPatch disable-i8042-check-on-apple-mac.patch
ApplyPatch add-appleir-usb-driver.patch
ApplyPatch udlfb-bind-framebuffer-to-interface.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-fix-spurious-lockdep-warnings.patch
ApplyPatch epoll-limit-paths.patch ApplyPatch epoll-limit-paths.patch
ApplyPatch rcu-avoid-just-onlined-cpu-resched.patch
ApplyPatch block-stray-block-put-after-teardown.patch ApplyPatch block-stray-block-put-after-teardown.patch
ApplyPatch usb-add-quirk-for-logitech-webcams.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 revert-efi-rtclock.patch
ApplyPatch efi-dont-map-boot-services-on-32bit.patch ApplyPatch efi-dont-map-boot-services-on-32bit.patch
ApplyPatch add-macbookair41-keyboard.patch
ApplyPatch hvcs_pi_buf_alloc.patch ApplyPatch hvcs_pi_buf_alloc.patch
ApplyPatch powerpc-Fix-deadlock-in-icswx-code.patch ApplyPatch powerpc-Fix-deadlock-in-icswx-code.patch
ApplyPatch iwlagn-fix-ht_params-NULL-pointer-dereference.patch
#rhbz #722509 #rhbz #722509
ApplyPatch mmc-Always-check-for-lower-base-frequency-quirk-for-.patch 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 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
ApplyPatch 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch ApplyPatch 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
#rhbz 748691 ApplyPatch select-regmap-from-wm8400.patch
ApplyPatch be2net-non-member-vlan-pkts-not-received-in-promisco.patch
ApplyPatch benet-remove-bogus-unlikely-on-vlan-check.patch
# END OF PATCH APPLICATIONS # END OF PATCH APPLICATIONS
@ -2041,6 +2017,9 @@ fi
# ||----w | # ||----w |
# || || # || ||
%changelog %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 * Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.0-5
- Rebuilt for glibc bug#747377 - Rebuilt for glibc bug#747377

View File

@ -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 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 --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -318,6 +318,7 @@ static void bad_page(struct page *page) @@ -318,6 +318,7 @@ static void bad_page(struct page *page)
@ -11,10 +23,10 @@ index 4e8985a..70d0853 100644
out: out:
/* Leave bad fields for debug, except PageBuddy could make trouble */ /* Leave bad fields for debug, except PageBuddy could make trouble */
diff --git a/mm/slab.c b/mm/slab.c diff --git a/mm/slab.c b/mm/slab.c
index d96e223..6f8905b 100644 index 708efe8..114a66d 100644
--- a/mm/slab.c --- a/mm/slab.c
+++ b/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 */ /* Print header */
if (lines == 0) { if (lines == 0) {
printk(KERN_ERR printk(KERN_ERR
@ -25,22 +37,22 @@ index d96e223..6f8905b 100644
print_objinfo(cachep, objp, 0); print_objinfo(cachep, objp, 0);
} }
/* Hexdump the affected line */ /* 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) { if (entries != cachep->num - slabp->inuse) {
bad: bad:
printk(KERN_ERR "slab: Internal list corruption detected in " printk(KERN_ERR "slab: Internal list corruption detected in "
- "cache '%s'(%d), slabp %p(%d). Hexdump:\n", - "cache '%s'(%d), slabp %p(%d). Hexdump:\n",
- cachep->name, cachep->num, slabp, slabp->inuse); - 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()); + cachep->name, cachep->num, slabp, slabp->inuse, print_tainted());
for (i = 0; print_hex_dump(KERN_ERR, "", DUMP_PREFIX_OFFSET, 16, 1, slabp,
i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t); sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t),
i++) { 1);
diff --git a/mm/slub.c b/mm/slub.c diff --git a/mm/slub.c b/mm/slub.c
index 35f351f..e7ccb39 100644 index 95215aa..bbec29e 100644
--- a/mm/slub.c --- a/mm/slub.c
+++ b/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); va_end(args);
printk(KERN_ERR "========================================" printk(KERN_ERR "========================================"
"=====================================\n"); "=====================================\n");
@ -49,3 +61,6 @@ index 35f351f..e7ccb39 100644
printk(KERN_ERR "----------------------------------------" printk(KERN_ERR "----------------------------------------"
"-------------------------------------\n\n"); "-------------------------------------\n\n");
} }
--
1.7.6.4

View File

@ -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). This only showed up in one SDV (Montevina).
The PCIE slots don't seem to like network cards, so this is the only hope 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 to get networking working. It's never going upstream, but it's low impact
enough to carry just to keep those SDVs working. 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 diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ linux-2.6.35.noarch/drivers/net/e1000e/ich8lan.c 2010-09-29 17:54:00.000000000 -0400 index 6a17c62..0e40975 100644
@@ -424,6 +424,12 @@ static s32 e1000_init_phy_params_ich8lan --- 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 */ /* Verify phy id */
switch (phy->id) { switch (phy->id) {
@ -18,9 +29,11 @@ enough to carry just to keep those SDVs working.
case IGP03E1000_E_PHY_ID: case IGP03E1000_E_PHY_ID:
phy->type = e1000_phy_igp_3; phy->type = e1000_phy_igp_3;
phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; 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 diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
+++ linux-2.6.35.noarch/drivers/net/e1000e/netdev.c 2010-09-29 17:54:29.000000000 -0400 index a855db1..edac30b 100644
@@ -5994,6 +5994,7 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci --- 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), board_ich9lan },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_AMT), 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 }, { 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_LM), board_ich9lan },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan },
--
1.7.6.4

View File

@ -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> 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 This option seems to causes way to many issues, it is
being investigated by Intel's chipset team for months now and 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> Reviewed-by: Adam Jackson <ajax@redhat.com>
--- ---
Documentation/kernel-parameters.txt | 11 +++++------ Documentation/kernel-parameters.txt | 11 +++++------
drivers/pci/intel-iommu.c | 9 +++++---- drivers/iommu/intel-iommu.c | 9 +++++----
2 files changed, 10 insertions(+), 10 deletions(-) 2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt 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 --- a/Documentation/kernel-parameters.txt
+++ b/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. Enable intel iommu driver.
off off
Disable intel iommu driver. Disable intel iommu driver.
@ -40,22 +41,22 @@ index e7848a0..9914485 100644
+ mapped as normal device. + mapped as normal device.
forcedac [x86_64] forcedac [x86_64]
With this option iommu will not optimize to look With this option iommu will not optimize to look
for io virtual address below 32 bit forcing dual for io virtual address below 32-bit forcing dual
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 4173125..8f36786 100644 index be1953c..2e23af1 100644
--- a/drivers/iommu/intel-iommu.c --- a/drivers/iommu/intel-iommu.c
+++ b/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; int dmar_disabled = 1;
#endif /*CONFIG_DMAR_DEFAULT_ON*/ #endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
-static int dmar_map_gfx = 1; -static int dmar_map_gfx = 1;
+/* disabled by default; causes way too many issues */ +/* disabled by default; causes way too many issues */
+static int dmar_map_gfx = 0; +static int dmar_map_gfx = 0;
static int dmar_forcedac; static int dmar_forcedac;
static int intel_iommu_strict; static int intel_iommu_strict;
static int intel_iommu_superpage = 1;
@@ -361,10 +362,10 @@ static int __init intel_iommu_setup(char *str) @@ -429,10 +430,10 @@ static int __init intel_iommu_setup(char *str)
} else if (!strncmp(str, "off", 3)) { } else if (!strncmp(str, "off", 3)) {
dmar_disabled = 1; dmar_disabled = 1;
printk(KERN_INFO "Intel-IOMMU: disabled\n"); printk(KERN_INFO "Intel-IOMMU: disabled\n");
@ -70,9 +71,5 @@ index 4173125..8f36786 100644
printk(KERN_INFO printk(KERN_INFO
"Intel-IOMMU: Forcing DAC for PCI devices\n"); "Intel-IOMMU: Forcing DAC for PCI devices\n");
-- --
1.6.6.1 1.7.6.4
_______________________________________________
kernel mailing list
kernel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/kernel

View File

@ -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

View File

@ -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) */

View 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/

View File

@ -1 +1,2 @@
8d43453f8159b2332ad410b19d86a931 linux-3.1.tar.bz2 8d43453f8159b2332ad410b19d86a931 linux-3.1.tar.bz2
cdc32e1639137a0434181946bc4d502c patch-3.1-git1.bz2

View File

@ -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;
}

View File

@ -1,74 +1,30 @@
From d5446509abd85b6845d91a319a033c5bd17e494d Mon Sep 17 00:00:00 2001 From 47a9e4d129eb621737f2d7147ce1db0da473a98f Mon Sep 17 00:00:00 2001
From: Oliver Neukum <oneukum-l3A5Bk7waGM@public.gmane.org> From: Josh Boyer <jwboyer@redhat.com>
Date: Tue, 13 Sep 2011 08:42:21 +0200 Date: Wed, 26 Oct 2011 13:47:56 -0400
Subject: [PATCH] USB:add RESET_RESUME for webcams shown to be quirky Subject: [PATCH] USB: add quirk for Logitech C600 web cam
From 6f673c5ef819548b2cbaf7bb607779af6fdbe731 Mon Sep 17 00:00:00 2001 We've had another report of the "chipmunk" sound on a Logitech C600 webcam.
From: Oliver Neukum <oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org> This patch resolves the issue.
Date: Tue, 30 Aug 2011 15:34:32 +0200
Subject: [PATCH] USB:add RESET_RESUME for webcams shown to be quirky
The new runtime PM code has shown that many webcams suffer Cc: stable <stable@vger.kernel.org>
from a race condition that may crash them upon resume. Signed-off-by: Josh Boyer <jwboyer@redhat.com>
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
--- ---
drivers/usb/core/quirks.c | 27 +++++++++++++++++++++++++++ drivers/usb/core/quirks.c | 3 +++
1 files changed, 27 insertions(+), 0 deletions(-) 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c 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 --- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c
@@ -38,6 +38,30 @@ static const struct usb_device_id usb_quirk_list[] = { @@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
/* Creative SB Audigy 2 NX */ /* Logitech Webcam B/C500 */
{ USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, { 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 */ + /* Logitech Webcam C600 */
+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
+ +
+ /* Logitech Webcam Pro 9000 */ /* Logitech Webcam Pro 9000 */
+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, { 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 },
-- --
1.7.6.4 1.7.6.4