Rebase to 3.2.1
This commit is contained in:
parent
9f353831c7
commit
1045154ecf
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
clog
|
||||
*.xz
|
||||
*.bz2
|
||||
*.rpm
|
||||
*.orig
|
||||
|
@ -1,54 +0,0 @@
|
||||
From 6b7025ea927d290a59d2772828435c1893f0267f Mon Sep 17 00:00:00 2001
|
||||
From: Rik van Riel <riel@redhat.com>
|
||||
Date: Fri, 7 Oct 2011 16:17:22 +0100
|
||||
Subject: [PATCH 1/2] mm: vmscan: Limit direct reclaim for higher order
|
||||
allocations
|
||||
|
||||
When suffering from memory fragmentation due to unfreeable pages,
|
||||
THP page faults will repeatedly try to compact memory. Due to the
|
||||
unfreeable pages, compaction fails.
|
||||
|
||||
Needless to say, at that point page reclaim also fails to create
|
||||
free contiguous 2MB areas. However, that doesn't stop the current
|
||||
code from trying, over and over again, and freeing a minimum of 4MB
|
||||
(2UL << sc->order pages) at every single invocation.
|
||||
|
||||
This resulted in my 12GB system having 2-3GB free memory, a
|
||||
corresponding amount of used swap and very sluggish response times.
|
||||
|
||||
This can be avoided by having the direct reclaim code not reclaim from
|
||||
zones that already have plenty of free memory available for compaction.
|
||||
|
||||
If compaction still fails due to unmovable memory, doing additional
|
||||
reclaim will only hurt the system, not help.
|
||||
|
||||
Signed-off-by: Rik van Riel <riel@redhat.com>
|
||||
Signed-off-by: Mel Gorman <mgorman@suse.de>
|
||||
---
|
||||
mm/vmscan.c | 10 ++++++++++
|
||||
1 files changed, 10 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/mm/vmscan.c b/mm/vmscan.c
|
||||
index 6072d74..8c03534 100644
|
||||
--- a/mm/vmscan.c
|
||||
+++ b/mm/vmscan.c
|
||||
@@ -2022,6 +2022,16 @@ static void shrink_zones(int priority, struct zonelist *zonelist,
|
||||
continue;
|
||||
if (zone->all_unreclaimable && priority != DEF_PRIORITY)
|
||||
continue; /* Let kswapd poll it */
|
||||
+ if (COMPACTION_BUILD) {
|
||||
+ /*
|
||||
+ * If we already have plenty of memory free
|
||||
+ * for compaction, don't free any more.
|
||||
+ */
|
||||
+ if (sc->order > PAGE_ALLOC_COSTLY_ORDER &&
|
||||
+ (compaction_suitable(zone, sc->order) ||
|
||||
+ compaction_deferred(zone)))
|
||||
+ continue;
|
||||
+ }
|
||||
/*
|
||||
* This steals pages from memory cgroups over softlimit
|
||||
* and returns the number of reclaimed pages and
|
||||
--
|
||||
1.7.6.4
|
||||
|
@ -1,165 +0,0 @@
|
||||
From e773daff833c61e0ce22d62b7d1bb7b82f4222d0 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Mon, 16 Jan 2012 17:12:59 +0100
|
||||
Subject: [PATCH 2/3] block: fail SCSI passthrough ioctls on partition devices
|
||||
|
||||
Linux allows executing the SG_IO ioctl on a partition or LVM volume, and
|
||||
will pass the command to the underlying block device. This is
|
||||
well-known, but it is also a large security problem when (via Unix
|
||||
permissions, ACLs, SELinux or a combination thereof) a program or user
|
||||
needs to be granted access only to part of the disk.
|
||||
|
||||
This patch lets partitions forward a small set of harmless ioctls;
|
||||
others are logged with printk so that we can see which ioctls are
|
||||
actually sent. In my tests only CDROM_GET_CAPABILITY actually occurred.
|
||||
Of course it was being sent to a (partition on a) hard disk, so it would
|
||||
have failed with ENOTTY and the patch isn't changing anything in
|
||||
practice. Still, I'm treating it specially to avoid spamming the logs.
|
||||
|
||||
In principle, this restriction should include programs running with
|
||||
CAP_SYS_RAWIO. If for example I let a program access /dev/sda2 and
|
||||
/dev/sdb, it still should not be able to read/write outside the
|
||||
boundaries of /dev/sda2 independent of the capabilities. However, for
|
||||
now programs with CAP_SYS_RAWIO will still be allowed to send the
|
||||
ioctls. Their actions will still be logged.
|
||||
|
||||
This patch does not affect the non-libata IDE driver. That driver
|
||||
however already tests for bd != bd->bd_contains before issuing some
|
||||
ioctl; it could be restricted further to forbid these ioctls even for
|
||||
programs running with CAP_SYS_ADMIN/CAP_SYS_RAWIO.
|
||||
|
||||
[ Cherry picked from 3ed4e7ba4be8c72051d87dcb2dec279d97a18d41
|
||||
|
||||
Changes with respect to 3.3: return -ENOTTY from scsi_verify_blk_ioctl
|
||||
and -ENOIOCTLCMD from sd_compat_ioctl. ]
|
||||
|
||||
Cc: stable@kernel.org
|
||||
Cc: linux-scsi@vger.kernel.org
|
||||
Cc: Jens Axboe <axboe@kernel.dk>
|
||||
Cc: James Bottomley <JBottomley@parallels.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
[ Make it also print the command name when warning - Linus ]
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
block/scsi_ioctl.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
drivers/scsi/sd.c | 11 +++++++++--
|
||||
include/linux/blkdev.h | 1 +
|
||||
3 files changed, 55 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
|
||||
index 57ac937..5ef1f4c 100644
|
||||
--- a/block/scsi_ioctl.c
|
||||
+++ b/block/scsi_ioctl.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/capability.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/cdrom.h>
|
||||
+#include <linux/ratelimit.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/times.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -691,9 +692,53 @@ int scsi_cmd_ioctl(struct request_queue *q, struct gendisk *bd_disk, fmode_t mod
|
||||
}
|
||||
EXPORT_SYMBOL(scsi_cmd_ioctl);
|
||||
|
||||
+int scsi_verify_blk_ioctl(struct block_device *bd, unsigned int cmd)
|
||||
+{
|
||||
+ if (bd && bd == bd->bd_contains)
|
||||
+ return 0;
|
||||
+
|
||||
+ /* Actually none of these is particularly useful on a partition,
|
||||
+ * but they are safe.
|
||||
+ */
|
||||
+ switch (cmd) {
|
||||
+ case SCSI_IOCTL_GET_IDLUN:
|
||||
+ case SCSI_IOCTL_GET_BUS_NUMBER:
|
||||
+ case SCSI_IOCTL_GET_PCI:
|
||||
+ case SCSI_IOCTL_PROBE_HOST:
|
||||
+ case SG_GET_VERSION_NUM:
|
||||
+ case SG_SET_TIMEOUT:
|
||||
+ case SG_GET_TIMEOUT:
|
||||
+ case SG_GET_RESERVED_SIZE:
|
||||
+ case SG_SET_RESERVED_SIZE:
|
||||
+ case SG_EMULATED_HOST:
|
||||
+ return 0;
|
||||
+ case CDROM_GET_CAPABILITY:
|
||||
+ /* Keep this until we remove the printk below. udev sends it
|
||||
+ * and we do not want to spam dmesg about it. CD-ROMs do
|
||||
+ * not have partitions, so we get here only for disks.
|
||||
+ */
|
||||
+ return -ENOTTY;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* In particular, rule out all resets and host-specific ioctls. */
|
||||
+ printk_ratelimited(KERN_WARNING
|
||||
+ "%s: sending ioctl %x to a partition!\n", current->comm, cmd);
|
||||
+
|
||||
+ return capable(CAP_SYS_RAWIO) ? 0 : -ENOTTY;
|
||||
+}
|
||||
+EXPORT_SYMBOL(scsi_verify_blk_ioctl);
|
||||
+
|
||||
int scsi_cmd_blk_ioctl(struct block_device *bd, fmode_t mode,
|
||||
unsigned int cmd, void __user *arg)
|
||||
{
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = scsi_verify_blk_ioctl(bd, cmd);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
return scsi_cmd_ioctl(bd->bd_disk->queue, bd->bd_disk, mode, cmd, arg);
|
||||
}
|
||||
EXPORT_SYMBOL(scsi_cmd_blk_ioctl);
|
||||
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
|
||||
index c88885d..7d8b5d8 100644
|
||||
--- a/drivers/scsi/sd.c
|
||||
+++ b/drivers/scsi/sd.c
|
||||
@@ -1073,6 +1073,10 @@ static int sd_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
SCSI_LOG_IOCTL(1, printk("sd_ioctl: disk=%s, cmd=0x%x\n",
|
||||
disk->disk_name, cmd));
|
||||
|
||||
+ error = scsi_verify_blk_ioctl(bdev, cmd);
|
||||
+ if (error < 0)
|
||||
+ return error;
|
||||
+
|
||||
/*
|
||||
* If we are in the middle of error recovery, don't let anyone
|
||||
* else try and use this device. Also, if error recovery fails, it
|
||||
@@ -1265,6 +1269,11 @@ static int sd_compat_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct scsi_device *sdev = scsi_disk(bdev->bd_disk)->device;
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = scsi_verify_blk_ioctl(bdev, cmd);
|
||||
+ if (ret < 0)
|
||||
+ return -ENOIOCTLCMD;
|
||||
|
||||
/*
|
||||
* If we are in the middle of error recovery, don't let anyone
|
||||
@@ -1276,8 +1285,6 @@ static int sd_compat_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
return -ENODEV;
|
||||
|
||||
if (sdev->host->hostt->compat_ioctl) {
|
||||
- int ret;
|
||||
-
|
||||
ret = sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg);
|
||||
|
||||
return ret;
|
||||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
|
||||
index aa829a4..8b7a19e 100644
|
||||
--- a/include/linux/blkdev.h
|
||||
+++ b/include/linux/blkdev.h
|
||||
@@ -675,6 +675,7 @@ extern int blk_insert_cloned_request(struct request_queue *q,
|
||||
struct request *rq);
|
||||
extern void blk_delay_queue(struct request_queue *, unsigned long);
|
||||
extern void blk_recount_segments(struct request_queue *, struct bio *);
|
||||
+extern int scsi_verify_blk_ioctl(struct block_device *, unsigned int);
|
||||
extern int scsi_cmd_blk_ioctl(struct block_device *, fmode_t,
|
||||
unsigned int, void __user *);
|
||||
extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
|
||||
--
|
||||
1.7.7.5
|
||||
|
@ -1,15 +0,0 @@
|
||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
||||
index f9b7260..28a5876 100644
|
||||
--- a/drivers/bluetooth/btusb.c
|
||||
+++ b/drivers/bluetooth/btusb.c
|
||||
@@ -100,6 +100,10 @@ static struct usb_device_id btusb_table[] = {
|
||||
/* Canyon CN-BTU1 with HID interfaces */
|
||||
{ USB_DEVICE(0x0c10, 0x0000) },
|
||||
|
||||
+ /* Broadcom BCM20702A0 */
|
||||
+ { USB_DEVICE(0x0a5c, 0x21e3) },
|
||||
+ { USB_DEVICE(0x413c, 0x8197) },
|
||||
+
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
@ -1,131 +0,0 @@
|
||||
From b28ae436288861916de0019a81b9817366fe35a9 Mon Sep 17 00:00:00 2001
|
||||
From: David Herrmann <dh.herrmann@googlemail.com>
|
||||
Date: Sat, 8 Oct 2011 23:20:17 +0200
|
||||
Subject: [PATCH] HID: wacom: Set input bits before registration
|
||||
|
||||
We shouldn't change the event flags of input devices after they get registered.
|
||||
Otherwise, udev will not get notified of these flags and cannot setup the
|
||||
devices properly.
|
||||
This fixes the probing to set the input event flags on the input_mapped callback
|
||||
instead of the probe function.
|
||||
|
||||
Reported-by: Bastien Nocera <hadess@hadess.net>
|
||||
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
|
||||
Tested-by: Bastien Nocera <hadess@hadess.net>
|
||||
Signed-off-by: Bastien Nocera <hadess@hadess.net>
|
||||
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
||||
---
|
||||
drivers/hid/hid-wacom.c | 80 +++++++++++++++++++++++++---------------------
|
||||
1 files changed, 43 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
|
||||
index 72ca689..1492728 100644
|
||||
--- a/drivers/hid/hid-wacom.c
|
||||
+++ b/drivers/hid/hid-wacom.c
|
||||
@@ -304,11 +304,51 @@ static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report,
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static int wacom_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
||||
+ struct hid_field *field, struct hid_usage *usage, unsigned long **bit,
|
||||
+ int *max)
|
||||
+{
|
||||
+ struct input_dev *input = hi->input;
|
||||
+
|
||||
+ __set_bit(INPUT_PROP_POINTER, input->propbit);
|
||||
+
|
||||
+ /* Basics */
|
||||
+ input->evbit[0] |= BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_REL);
|
||||
+
|
||||
+ __set_bit(REL_WHEEL, input->relbit);
|
||||
+
|
||||
+ __set_bit(BTN_TOOL_PEN, input->keybit);
|
||||
+ __set_bit(BTN_TOUCH, input->keybit);
|
||||
+ __set_bit(BTN_STYLUS, input->keybit);
|
||||
+ __set_bit(BTN_STYLUS2, input->keybit);
|
||||
+ __set_bit(BTN_LEFT, input->keybit);
|
||||
+ __set_bit(BTN_RIGHT, input->keybit);
|
||||
+ __set_bit(BTN_MIDDLE, input->keybit);
|
||||
+
|
||||
+ /* Pad */
|
||||
+ input->evbit[0] |= BIT(EV_MSC);
|
||||
+
|
||||
+ __set_bit(MSC_SERIAL, input->mscbit);
|
||||
+
|
||||
+ __set_bit(BTN_0, input->keybit);
|
||||
+ __set_bit(BTN_1, input->keybit);
|
||||
+ __set_bit(BTN_TOOL_FINGER, input->keybit);
|
||||
+
|
||||
+ /* Distance, rubber and mouse */
|
||||
+ __set_bit(BTN_TOOL_RUBBER, input->keybit);
|
||||
+ __set_bit(BTN_TOOL_MOUSE, input->keybit);
|
||||
+
|
||||
+ input_set_abs_params(input, ABS_X, 0, 16704, 4, 0);
|
||||
+ input_set_abs_params(input, ABS_Y, 0, 12064, 4, 0);
|
||||
+ input_set_abs_params(input, ABS_PRESSURE, 0, 511, 0, 0);
|
||||
+ input_set_abs_params(input, ABS_DISTANCE, 0, 32, 0, 0);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int wacom_probe(struct hid_device *hdev,
|
||||
const struct hid_device_id *id)
|
||||
{
|
||||
- struct hid_input *hidinput;
|
||||
- struct input_dev *input;
|
||||
struct wacom_data *wdata;
|
||||
int ret;
|
||||
|
||||
@@ -370,41 +410,6 @@ static int wacom_probe(struct hid_device *hdev,
|
||||
goto err_ac;
|
||||
}
|
||||
#endif
|
||||
- hidinput = list_entry(hdev->inputs.next, struct hid_input, list);
|
||||
- input = hidinput->input;
|
||||
-
|
||||
- __set_bit(INPUT_PROP_POINTER, input->propbit);
|
||||
-
|
||||
- /* Basics */
|
||||
- input->evbit[0] |= BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_REL);
|
||||
-
|
||||
- __set_bit(REL_WHEEL, input->relbit);
|
||||
-
|
||||
- __set_bit(BTN_TOOL_PEN, input->keybit);
|
||||
- __set_bit(BTN_TOUCH, input->keybit);
|
||||
- __set_bit(BTN_STYLUS, input->keybit);
|
||||
- __set_bit(BTN_STYLUS2, input->keybit);
|
||||
- __set_bit(BTN_LEFT, input->keybit);
|
||||
- __set_bit(BTN_RIGHT, input->keybit);
|
||||
- __set_bit(BTN_MIDDLE, input->keybit);
|
||||
-
|
||||
- /* Pad */
|
||||
- input->evbit[0] |= BIT(EV_MSC);
|
||||
-
|
||||
- __set_bit(MSC_SERIAL, input->mscbit);
|
||||
-
|
||||
- __set_bit(BTN_0, input->keybit);
|
||||
- __set_bit(BTN_1, input->keybit);
|
||||
- __set_bit(BTN_TOOL_FINGER, input->keybit);
|
||||
-
|
||||
- /* Distance, rubber and mouse */
|
||||
- __set_bit(BTN_TOOL_RUBBER, input->keybit);
|
||||
- __set_bit(BTN_TOOL_MOUSE, input->keybit);
|
||||
-
|
||||
- input_set_abs_params(input, ABS_X, 0, 16704, 4, 0);
|
||||
- input_set_abs_params(input, ABS_Y, 0, 12064, 4, 0);
|
||||
- input_set_abs_params(input, ABS_PRESSURE, 0, 511, 0, 0);
|
||||
- input_set_abs_params(input, ABS_DISTANCE, 0, 32, 0, 0);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -448,6 +453,7 @@ static struct hid_driver wacom_driver = {
|
||||
.probe = wacom_probe,
|
||||
.remove = wacom_remove,
|
||||
.raw_event = wacom_raw_event,
|
||||
+ .input_mapped = wacom_input_mapped,
|
||||
};
|
||||
|
||||
static int __init wacom_init(void)
|
||||
--
|
||||
1.7.7.1
|
||||
|
177
Makefile
177
Makefile
@ -17,15 +17,16 @@ help:
|
||||
|
||||
include Makefile.config
|
||||
|
||||
ifndef KVERSION
|
||||
KVERSION := $(shell awk '$$1 == "%define" && $$2 == "base_sublevel" { \
|
||||
print "2.6." $$3 \
|
||||
}' $(SPECFILE))
|
||||
endif
|
||||
|
||||
prep:
|
||||
fedpkg -v prep --arch=$(PREPARCH)
|
||||
|
||||
noarch:
|
||||
fedpkg -v local --arch=noarch
|
||||
|
||||
# 'make local' also needs to build the noarch firmware package
|
||||
local: noarch
|
||||
fedpkg -v local
|
||||
|
||||
extremedebug:
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_PAGEALLOC is not set/CONFIG_DEBUG_PAGEALLOC=y/' config-nodebug
|
||||
|
||||
@ -46,6 +47,7 @@ debug:
|
||||
@perl -pi -e 's/# CONFIG_FAIL_PAGE_ALLOC is not set/CONFIG_FAIL_PAGE_ALLOC=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAIL_IO_TIMEOUT is not set/CONFIG_FAIL_IO_TIMEOUT=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAIL_MAKE_REQUEST is not set/CONFIG_FAIL_MAKE_REQUEST=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAIL_MMC_REQUEST is not set/CONFIG_FAIL_MMC_REQUEST=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAULT_INJECTION_DEBUG_FS is not set/CONFIG_FAULT_INJECTION_DEBUG_FS=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set/CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_SG is not set/CONFIG_DEBUG_SG=y/' config-nodebug
|
||||
@ -79,7 +81,6 @@ debug:
|
||||
@perl -pi -e 's/# CONFIG_ATH_DEBUG is not set/CONFIG_ATH_DEBUG=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_CARL9170_DEBUGFS is not set/CONFIG_CARL9170_DEBUGFS=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/CONFIG_IWLWIFI_DEVICE_TRACING=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DMADEVICES_DEBUG is not set/CONFIG_DMADEVICES_DEBUG=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DMADEVICES_VDEBUG is not set/CONFIG_DMADEVICES_VDEBUG=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_CEPH_LIB_PRETTYDEBUG is not set/CONFIG_CEPH_LIB_PRETTYDEBUG=y/' config-nodebug
|
||||
@ -91,21 +92,21 @@ debug:
|
||||
@perl -pi -e 's/# CONFIG_TEST_LIST_SORT is not set/CONFIG_TEST_LIST_SORT=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_ATOMIC_SLEEP is not set/CONFIG_DEBUG_ATOMIC_SLEEP=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DETECT_HUNG_TASK is not set/CONFIG_DETECT_HUNG_TASK=y/' config-nodebug
|
||||
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_SET_MODULE_RONX is not set/CONFIG_DEBUG_SET_MODULE_RONX=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set/CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_KMEMLEAK is not set/CONFIG_DEBUG_KMEMLEAK=y/' config-nodebug
|
||||
|
||||
@# just in case we're going from extremedebug -> debug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug
|
||||
|
||||
@perl -pi -e 's/CONFIG_NR_CPUS=256/CONFIG_NR_CPUS=512/' config-x86_64-generic
|
||||
@perl -pi -e 's/# CONFIG_MAXSMP is not set/CONFIG_MAXSMP=y/' config-x86-generic
|
||||
|
||||
# Try out UAS in rawhide builds.
|
||||
@perl -pi -e 's/# CONFIG_USB_UAS is not set/CONFIG_USB_UAS=m/' config-generic
|
||||
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||
@perl -pi -e 's/^%define rawhide_skip_docs 0/%define rawhide_skip_docs 1/' kernel.spec
|
||||
@rpmdev-bumpspec -c "Reenable debugging options." kernel.spec
|
||||
|
||||
nodebuginfo:
|
||||
@perl -pi -e 's/^%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 1\}/%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 0\}/' kernel.spec
|
||||
nodebug: release
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||
release:
|
||||
@perl -pi -e 's/CONFIG_SLUB_DEBUG_ON=y/# CONFIG_SLUB_DEBUG_ON is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_LOCK_STAT=y/# CONFIG_LOCK_STAT is not set/' config-nodebug
|
||||
@ -123,6 +124,7 @@ release:
|
||||
@perl -pi -e 's/CONFIG_FAIL_PAGE_ALLOC=y/# CONFIG_FAIL_PAGE_ALLOC is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAIL_IO_TIMEOUT=y/# CONFIG_FAIL_IO_TIMEOUT is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAIL_MAKE_REQUEST=y/# CONFIG_FAIL_MAKE_REQUEST is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAIL_MMC_REQUEST=y/# CONFIG_FAIL_MMC_REQUEST is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAULT_INJECTION_DEBUG_FS=y/# CONFIG_FAULT_INJECTION_DEBUG_FS is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y/# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_SG=y/# CONFIG_DEBUG_SG is not set/' config-nodebug
|
||||
@ -156,7 +158,6 @@ release:
|
||||
@perl -pi -e 's/CONFIG_ATH_DEBUG=y/# CONFIG_ATH_DEBUG is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_CARL9170_DEBUGFS=y/# CONFIG_CARL9170_DEBUGFS is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_IWLWIFI_DEVICE_TRACING=y/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DMADEVICES_DEBUG=y/# CONFIG_DMADEVICES_DEBUG is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DMADEVICES_VDEBUG=y/# CONFIG_DMADEVICES_VDEBUG is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_CEPH_LIB_PRETTYDEBUG=y/# CONFIG_CEPH_LIB_PRETTYDEBUG is not set/' config-nodebug
|
||||
@ -168,144 +169,36 @@ release:
|
||||
@perl -pi -e 's/CONFIG_TEST_LIST_SORT=y/# CONFIG_TEST_LIST_SORT is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_ATOMIC_SLEEP=y/# CONFIG_DEBUG_ATOMIC_SLEEP is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DETECT_HUNG_TASK=y/# CONFIG_DETECT_HUNG_TASK is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y/# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_KMEMLEAK=y/# CONFIG_DEBUG_KMEMLEAK is not set/' config-nodebug
|
||||
|
||||
@perl -pi -e 's/CONFIG_DEBUG_SET_MODULE_RONX=y/# CONFIG_DEBUG_SET_MODULE_RONX is not set/' config-nodebug
|
||||
|
||||
# Undo anything that make extremedebug might have set
|
||||
@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-debug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug
|
||||
|
||||
@perl -pi -e 's/CONFIG_NR_CPUS=512/CONFIG_NR_CPUS=256/' config-x86_64-generic
|
||||
# Change defaults back to sane things.
|
||||
@perl -pi -e 's/CONFIG_MAXSMP=y/# CONFIG_MAXSMP is not set/' config-x86-generic
|
||||
|
||||
# Disable UAS for release until it's ready. (#717633, #744099)
|
||||
@perl -pi -e 's/CONFIG_USB_UAS=m/# CONFIG_USB_UAS is not set/' config-generic
|
||||
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 0/%define debugbuildsenabled 1/' kernel.spec
|
||||
@perl -pi -e 's/^%define rawhide_skip_docs 1/%define rawhide_skip_docs 0/' kernel.spec
|
||||
@rpmdev-bumpspec -c "Disable debugging options." kernel.spec
|
||||
|
||||
reconfig:
|
||||
@rm -f kernel-*-config
|
||||
@VERSION=$(KVERSION) make -f Makefile.config configs
|
||||
@scripts/reconfig.sh
|
||||
nodebuginfo:
|
||||
@perl -pi -e 's/^%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 1\}/%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 0\}/' kernel.spec
|
||||
nodebug: release
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||
|
||||
unused-kernel-patches:
|
||||
@for f in *.patch; do if [ -e $$f ]; then (egrep -q "^Patch[[:digit:]]+:[[:space:]]+$$f" $(SPECFILE) || echo "Unused: $$f") && egrep -q "^ApplyPatch[[:space:]]+$$f|^ApplyOptionalPatch[[:space:]]+$$f" $(SPECFILE) || echo "Unapplied: $$f"; fi; done
|
||||
|
||||
# since i386 isn't a target...
|
||||
compile compile-short: DIST_DEFINES += --target $(shell uname -m)
|
||||
ifeq ($(MAKECMDGOALS),me a sandwich)
|
||||
.PHONY: me a sandwich
|
||||
me a:
|
||||
@:
|
||||
|
||||
# 'make local' also needs to build the noarch firmware package
|
||||
local: noarch
|
||||
|
||||
#
|
||||
# Hacks for building vanilla (unpatched) kernel rpms.
|
||||
# Use "make vanilla-TARGET" like "make TARGET" (make vanilla-scratch-build).
|
||||
#
|
||||
vanilla-%: $(SPECFILE:.spec=-vanilla.spec)
|
||||
@$(MAKE) $* SPECFILE=$<
|
||||
|
||||
$(SPECFILE:.spec=-vanilla.spec): $(SPECFILE)
|
||||
@rm -f $@
|
||||
(echo %define nopatches 1; cat $<) > $@
|
||||
|
||||
#scratch-build: NAME = $(shell rpm $(RPM_DEFINES) $(DIST_DEFINES) -q --qf "%{NAME}\n" --specfile $(SPECFILE)| head -1)
|
||||
#scratch-build: test-srpm
|
||||
# $(BUILD_CLIENT) build $(BUILD_FLAGS) --scratch $(TARGET) \
|
||||
# $(SRCRPMDIR)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm
|
||||
|
||||
# Dismal kludge for building via brew from cvs after "make vanilla-tag".
|
||||
ifdef BEEHIVE_SRPM_BUILD
|
||||
export CHECKOUT_TAG ?= $(shell sed s/^.// CVS/Tag)
|
||||
tag-pattern = $(TAG_NAME)-$(TAG_VERSION)-0_%_$(TAG_RELEASE)
|
||||
ifeq (,$(filter-out $(tag-pattern),$(CHECKOUT_TAG)))
|
||||
variant := $(patsubst $(tag-pattern),%,$(CHECKOUT_TAG))
|
||||
srpm: SPECFILE := $(wildcard $(SPECFILE:.spec=-$(variant).spec) \
|
||||
$(SPECFILE:.spec=.t.$(variant).spec))
|
||||
srpm beehive-sprm: RELEASE := 0.$(variant).$(RELEASE)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Hacks for building kernel rpms from upstream code plus local GIT branches.
|
||||
# Use "make git/BRANCH/TARGET" like "make TARGET".
|
||||
# Use "make git/BRANCH-fedora/TARGET" to include Fedora patches on top.
|
||||
#
|
||||
ifndef GIT_SPEC
|
||||
git/%:
|
||||
@$(MAKE) GIT_SPEC=$(subst /,-,$(*D)) git-$(*F)
|
||||
else
|
||||
git-%: $(SPECFILE:.spec=.t.$(GIT_SPEC).spec)
|
||||
@$(MAKE) GIT_SPEC= $* SPECFILE=$<
|
||||
endif
|
||||
|
||||
#
|
||||
# Your git-branches.mk file can define GIT_DIR, e.g.:
|
||||
# GIT_DIR = ${HOME}/kernel/.git
|
||||
# Make sure GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL are also set
|
||||
# or your rpm changelogs will look like crap.
|
||||
#
|
||||
# For each branch it can define a variable branch-BRANCH or tag-BRANCH
|
||||
# giving the parent of BRANCH to diff against in a separate patch. If
|
||||
# the parent is unknown, it will use $(branch-upstream) defaulting to
|
||||
# "refs/remotes/upstream/master".
|
||||
#
|
||||
# Defining tag-BRANCH means the tag corresponds to an upstream patch in
|
||||
# the sources file, so that is used instead of generating a patch with
|
||||
# git. If there is no tag-upstream defined, it will figure out a vNNN
|
||||
# tag or vNNN-gitN pseudo-tag from the last patch in the sources file.
|
||||
# For example:
|
||||
# tag-some-hacks = v2.6.21-rc5
|
||||
# branch-more-hacks = some-hacks
|
||||
# Leads to patches:
|
||||
# git diff v2.6.21-rc5..more-hacks > linux-2.6.21-rc5-some-hacks.patch
|
||||
# git diff some-hacks..more-hacks > linux-2.6.21-rc5-more-hacks.patch
|
||||
# Whereas having no git-branches.mk at all but doing
|
||||
# "make GIT_DIR=... git/mybranch/test-srpm" does:
|
||||
# id=`cat patch-2.6.21-rc5-git4.id` # auto-fetched via upstream file
|
||||
# git diff $id..upstream > linux-2.6.21-rc5-git4-upstream.patch
|
||||
# git diff upstream..mybranch > linux-2.6.21-rc5-git4-mybranch.patch
|
||||
# If the upstream patch (or any branch patch) is empty it's left out.
|
||||
#
|
||||
git-branches.mk:;
|
||||
-include git-branches.mk
|
||||
|
||||
branch-upstream ?= refs/remotes/upstream/master
|
||||
|
||||
ifdef GIT_DIR
|
||||
export GIT_DIR
|
||||
export GIT_AUTHOR_NAME
|
||||
export GIT_AUTHOR_EMAIL
|
||||
gen-patches ?= gen-patches
|
||||
|
||||
ifndef havespec
|
||||
$(SPECFILE:.spec=.t.%-fedora.spec): $(SPECFILE) $(gen-patches) FORCE
|
||||
./$(gen-patches) --fedora < $< > $@ $(gen-patches-args)
|
||||
$(SPECFILE:.spec=.t.%.spec): $(SPECFILE) $(gen-patches) FORCE
|
||||
./$(gen-patches) < $< > $@ $(gen-patches-args)
|
||||
.PRECIOUS: $(SPECFILE:.spec=.t.%.spec) $(SPECFILE:.spec=.t.%-fedora.spec)
|
||||
endif
|
||||
|
||||
spec-%: $(SPECFILE:.spec=.t.%.spec) ;
|
||||
$(SPECFILE):;
|
||||
FORCE:;
|
||||
|
||||
branch-of-* = $(firstword $(head-$*) $*)
|
||||
gen-patches-args = --name $* v$(KVERSION) $(call heads,$(branch-of-*))
|
||||
define heads
|
||||
$(if $(tag-$1),$(filter-out v$(KVERSION),$(tag-$1)),\
|
||||
$(call heads,$(firstword $(branch-$1) $(branch-upstream)))) $1
|
||||
endef
|
||||
|
||||
files-%-fedora:
|
||||
@echo $(SPECFILE:.spec=.t.$*-fedora.spec)
|
||||
@$(call list-patches,$(branch-of-*))
|
||||
files-%:
|
||||
@echo $(SPECFILE:.spec=.t.$*.spec)
|
||||
@$(call list-patches,$(branch-of-*))
|
||||
define list-patches
|
||||
$(if $(tag-$1),version=$(patsubst v%,%,$(tag-$1)),\
|
||||
$(call list-patches,$(firstword $(branch-$1) $(branch-upstream)))); \
|
||||
echo linux-$${version}-$(patsubst refs/remotes/%/master,%,$1).patch
|
||||
endef
|
||||
|
||||
ifndef tag-$(branch-upstream)
|
||||
tag-$(branch-upstream) := $(shell \
|
||||
sed -n 's/^.* *//;s/\.bz2$$//;s/patch-/v/;/^v/h;$${g;p}' sources)
|
||||
endif
|
||||
sandwich:
|
||||
@[ `id -u` -ne 0 ] && echo "What? Make it yourself." || echo Okay.
|
||||
endif
|
||||
|
@ -16,10 +16,9 @@ CONFIGFILES = \
|
||||
$(CFG)-armv7hl-omap.config $(CFG)-armv7hl-tegra.config \
|
||||
$(CFG)-ppc.config $(CFG)-ppc-smp.config \
|
||||
$(CFG)-sparc64.config \
|
||||
$(CFG)-ppc64.config $(CFG)-ppc64-debug.config \
|
||||
$(CFG)-ia64.config
|
||||
$(CFG)-ppc64.config $(CFG)-ppc64-debug.config
|
||||
|
||||
PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x ia64 sparc64
|
||||
PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x sparc64
|
||||
TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS)))
|
||||
|
||||
configs: $(CONFIGFILES)
|
||||
@ -88,9 +87,6 @@ temp-powerpc32-generic: config-powerpc32-generic temp-powerpc-generic
|
||||
temp-s390-generic: config-s390x temp-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
temp-ia64-generic: config-ia64-generic temp-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
kernel-$(VERSION)-i686-PAE.config: config-i686-PAE temp-x86-32-generic
|
||||
perl merge.pl $^ i386 > $@
|
||||
|
||||
@ -159,6 +155,3 @@ kernel-$(VERSION)-ppc.config: /dev/null temp-powerpc32-generic
|
||||
|
||||
kernel-$(VERSION)-ppc-smp.config: config-powerpc32-smp temp-powerpc32-generic
|
||||
perl merge.pl $^ powerpc > $@
|
||||
|
||||
kernel-$(VERSION)-ia64.config: /dev/null temp-ia64-generic
|
||||
perl merge.pl $^ ia64 > $@
|
||||
|
@ -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
|
||||
|
243
alps.patch
243
alps.patch
@ -1,7 +1,7 @@
|
||||
From ed11aa781242216bc72f1cd7d757a4f40be10329 Mon Sep 17 00:00:00 2001
|
||||
From d4b347b29b4d14647c7394f7167bf6785dc98e50 Mon Sep 17 00:00:00 2001
|
||||
From: Seth Forshee <seth.forshee@canonical.com>
|
||||
Date: Mon, 7 Nov 2011 19:53:15 -0800
|
||||
Subject: [PATCH 1/7] Input: ALPS - move protocol information to Documentation
|
||||
Subject: [PATCH 1/6] Input: ALPS - move protocol information to Documentation
|
||||
|
||||
In preparation for new protocol support, move the protocol
|
||||
information currently documented in alps.c to
|
||||
@ -99,10 +99,10 @@ index 0000000..ab5478f
|
||||
+ byte 7: 0 y6 y5 y4 y3 y2 y1 y0
|
||||
+ byte 8: 0 z6 z5 z4 z3 z2 z1 z0
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index 99d5876..ad15e7c 100644
|
||||
index 003587c..19d0943 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -74,42 +74,7 @@ static const struct alps_model_info alps_model_data[] = {
|
||||
@@ -67,42 +67,7 @@ static const struct alps_model_info alps_model_data[] = {
|
||||
* isn't valid per PS/2 spec.
|
||||
*/
|
||||
|
||||
@ -150,10 +150,10 @@ index 99d5876..ad15e7c 100644
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 27b8ed51ee660e9a59cf325d6339f38b216fbb31 Mon Sep 17 00:00:00 2001
|
||||
From fa629ef5222193214da9a2b3c94369f79353bec9 Mon Sep 17 00:00:00 2001
|
||||
From: Seth Forshee <seth.forshee@canonical.com>
|
||||
Date: Mon, 7 Nov 2011 19:53:24 -0800
|
||||
Subject: [PATCH 2/7] Input: ALPS - add protocol version field in
|
||||
Subject: [PATCH 2/6] Input: ALPS - add protocol version field in
|
||||
alps_model_info
|
||||
|
||||
In preparation for adding support for more ALPS protocol versions,
|
||||
@ -164,28 +164,24 @@ version 1 and version 2, repsectively.
|
||||
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
Acked-by: Chase Douglas <chase.douglas@canonical.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
|
||||
Conflicts:
|
||||
|
||||
drivers/input/mouse/alps.c
|
||||
---
|
||||
drivers/input/mouse/alps.c | 47 +++++++++++++++++++++----------------------
|
||||
drivers/input/mouse/alps.h | 4 +++
|
||||
2 files changed, 27 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index ad15e7c..572cb21 100644
|
||||
index 19d0943..77b776d 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -30,7 +30,6 @@
|
||||
#define dbg(format, arg...) do {} while (0)
|
||||
#endif
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "psmouse.h"
|
||||
#include "alps.h"
|
||||
|
||||
-#define ALPS_OLDPROTO 0x01 /* old style input */
|
||||
#define ALPS_DUALPOINT 0x02 /* touchpad has trackstick */
|
||||
#define ALPS_PASS 0x04 /* device has a pass-through port */
|
||||
|
||||
@@ -42,30 +41,30 @@
|
||||
@@ -35,30 +34,30 @@
|
||||
6-byte ALPS packet */
|
||||
|
||||
static const struct alps_model_info alps_model_data[] = {
|
||||
@ -238,7 +234,7 @@ index ad15e7c..572cb21 100644
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -119,7 +118,7 @@ static void alps_process_packet(struct psmouse *psmouse)
|
||||
@@ -112,7 +111,7 @@ static void alps_process_packet(struct psmouse *psmouse)
|
||||
int x, y, z, ges, fin, left, right, middle;
|
||||
int back = 0, forward = 0;
|
||||
|
||||
@ -268,10 +264,10 @@ index 904ed8b..4ce9bba 100644
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From dfab9d3e073f2a58e4ba3837a726e9a0e33ea5df Mon Sep 17 00:00:00 2001
|
||||
From b46615fe9215214ac00e26d35fc54dbe1c510803 Mon Sep 17 00:00:00 2001
|
||||
From: Seth Forshee <seth.forshee@canonical.com>
|
||||
Date: Mon, 7 Nov 2011 19:53:30 -0800
|
||||
Subject: [PATCH 3/7] Input: ALPS - remove assumptions about packet size
|
||||
Subject: [PATCH 3/6] Input: ALPS - remove assumptions about packet size
|
||||
|
||||
In preparation for version 4 protocol support, which has 8-byte
|
||||
data packets, remove all hard-coded assumptions about packet size
|
||||
@ -285,10 +281,10 @@ Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
1 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index 572cb21..f699698 100644
|
||||
index 77b776d..44a0a71 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -315,7 +315,7 @@ static void alps_flush_packet(unsigned long data)
|
||||
@@ -308,7 +308,7 @@ static void alps_flush_packet(unsigned long data)
|
||||
|
||||
serio_pause_rx(psmouse->ps2dev.serio);
|
||||
|
||||
@ -297,7 +293,7 @@ index 572cb21..f699698 100644
|
||||
|
||||
/*
|
||||
* We did not any more data in reasonable amount of time.
|
||||
@@ -365,15 +365,15 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
|
||||
@@ -359,8 +359,8 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
|
||||
return PSMOUSE_BAD_DATA;
|
||||
}
|
||||
|
||||
@ -306,8 +302,9 @@ index 572cb21..f699698 100644
|
||||
+ /* Bytes 2 - pktsize should have 0 in the highest bit */
|
||||
+ if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= psmouse->pktsize &&
|
||||
(psmouse->packet[psmouse->pktcnt - 1] & 0x80)) {
|
||||
dbg("refusing packet[%i] = %x\n",
|
||||
psmouse->pktcnt - 1, psmouse->packet[psmouse->pktcnt - 1]);
|
||||
psmouse_dbg(psmouse, "refusing packet[%i] = %x\n",
|
||||
psmouse->pktcnt - 1,
|
||||
@@ -368,7 +368,7 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
|
||||
return PSMOUSE_BAD_DATA;
|
||||
}
|
||||
|
||||
@ -316,7 +313,7 @@ index 572cb21..f699698 100644
|
||||
alps_process_packet(psmouse);
|
||||
return PSMOUSE_FULL_PACKET;
|
||||
}
|
||||
@@ -531,7 +531,7 @@ static int alps_tap_mode(struct psmouse *psmouse, int enable)
|
||||
@@ -529,7 +529,7 @@ static int alps_tap_mode(struct psmouse *psmouse, int enable)
|
||||
static int alps_poll(struct psmouse *psmouse)
|
||||
{
|
||||
struct alps_data *priv = psmouse->private;
|
||||
@ -329,10 +326,10 @@ index 572cb21..f699698 100644
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 35f17ba201d7a8b8adc59811effafe62a331fd9e Mon Sep 17 00:00:00 2001
|
||||
From 25bded7cd60fa460e520e9f819bd06f4c5cb53f0 Mon Sep 17 00:00:00 2001
|
||||
From: Seth Forshee <seth.forshee@canonical.com>
|
||||
Date: Mon, 7 Nov 2011 19:53:36 -0800
|
||||
Subject: [PATCH 4/7] Input: ALPS - add support for protocol versions 3 and 4
|
||||
Subject: [PATCH 4/6] Input: ALPS - add support for protocol versions 3 and 4
|
||||
|
||||
This patch adds support for two ALPS touchpad protocols not
|
||||
supported currently by the driver, which I am arbitrarily naming
|
||||
@ -345,23 +342,19 @@ of the v3 protocol.
|
||||
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
Acked-by: Chase Douglas <chase.douglas@canonical.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
|
||||
Conflicts:
|
||||
|
||||
drivers/input/mouse/alps.c
|
||||
---
|
||||
drivers/input/mouse/alps.c | 790 +++++++++++++++++++++++++++++++++++++++--
|
||||
drivers/input/mouse/alps.c | 791 +++++++++++++++++++++++++++++++++++++++--
|
||||
drivers/input/mouse/alps.h | 14 +
|
||||
drivers/input/mouse/psmouse.h | 1 +
|
||||
3 files changed, 767 insertions(+), 38 deletions(-)
|
||||
3 files changed, 768 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index f699698..b2bc8ca 100644
|
||||
index 44a0a71..a0248fd 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -30,6 +30,49 @@
|
||||
#define dbg(format, arg...) do {} while (0)
|
||||
#endif
|
||||
@@ -23,6 +23,50 @@
|
||||
#include "psmouse.h"
|
||||
#include "alps.h"
|
||||
|
||||
+/*
|
||||
+ * Definitions for ALPS version 3 and 4 command mode protocol
|
||||
@ -405,11 +398,12 @@ index f699698..b2bc8ca 100644
|
||||
+ { PSMOUSE_CMD_SETRES, 0x03 }, /* e */
|
||||
+ { PSMOUSE_CMD_SETSCALE11, 0x00 }, /* f */
|
||||
+};
|
||||
+
|
||||
+
|
||||
#define ALPS_DUALPOINT 0x02 /* touchpad has trackstick */
|
||||
#define ALPS_PASS 0x04 /* device has a pass-through port */
|
||||
|
||||
@@ -41,30 +84,33 @@
|
||||
@@ -34,30 +78,33 @@
|
||||
6-byte ALPS packet */
|
||||
|
||||
static const struct alps_model_info alps_model_data[] = {
|
||||
@ -465,7 +459,7 @@ index f699698..b2bc8ca 100644
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -108,7 +154,7 @@ static void alps_report_buttons(struct psmouse *psmouse,
|
||||
@@ -101,7 +148,7 @@ static void alps_report_buttons(struct psmouse *psmouse,
|
||||
input_sync(dev2);
|
||||
}
|
||||
|
||||
@ -474,7 +468,7 @@ index f699698..b2bc8ca 100644
|
||||
{
|
||||
struct alps_data *priv = psmouse->private;
|
||||
const struct alps_model_info *model = priv->i;
|
||||
@@ -210,6 +256,224 @@ static void alps_process_packet(struct psmouse *psmouse)
|
||||
@@ -203,6 +250,224 @@ static void alps_process_packet(struct psmouse *psmouse)
|
||||
input_sync(dev);
|
||||
}
|
||||
|
||||
@ -699,7 +693,7 @@ index f699698..b2bc8ca 100644
|
||||
static void alps_report_bare_ps2_packet(struct psmouse *psmouse,
|
||||
unsigned char packet[],
|
||||
bool report_buttons)
|
||||
@@ -381,11 +645,127 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
|
||||
@@ -376,11 +641,127 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
|
||||
return PSMOUSE_GOOD_DATA;
|
||||
}
|
||||
|
||||
@ -827,7 +821,7 @@ index f699698..b2bc8ca 100644
|
||||
int i;
|
||||
|
||||
/*
|
||||
@@ -431,12 +811,41 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
||||
@@ -428,12 +809,41 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
||||
*version = (param[0] << 8) | (param[1] << 4) | i;
|
||||
}
|
||||
|
||||
@ -873,7 +867,7 @@ index f699698..b2bc8ca 100644
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -444,7 +853,7 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
||||
@@ -441,7 +851,7 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
||||
* subsequent commands. It looks like glidepad is behind stickpointer,
|
||||
* I'd thought it would be other way around...
|
||||
*/
|
||||
@ -882,7 +876,7 @@ index f699698..b2bc8ca 100644
|
||||
{
|
||||
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
||||
int cmd = enable ? PSMOUSE_CMD_SETSCALE21 : PSMOUSE_CMD_SETSCALE11;
|
||||
@@ -461,7 +870,7 @@ static int alps_passthrough_mode(struct psmouse *psmouse, bool enable)
|
||||
@@ -458,7 +868,7 @@ static int alps_passthrough_mode(struct psmouse *psmouse, bool enable)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -891,7 +885,7 @@ index f699698..b2bc8ca 100644
|
||||
{
|
||||
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
||||
|
||||
@@ -535,13 +944,13 @@ static int alps_poll(struct psmouse *psmouse)
|
||||
@@ -533,13 +943,13 @@ static int alps_poll(struct psmouse *psmouse)
|
||||
bool poll_failed;
|
||||
|
||||
if (priv->i->flags & ALPS_PASS)
|
||||
@ -907,7 +901,7 @@ index f699698..b2bc8ca 100644
|
||||
|
||||
if (poll_failed || (buf[0] & priv->i->mask0) != priv->i->byte0)
|
||||
return -1;
|
||||
@@ -558,13 +967,13 @@ static int alps_poll(struct psmouse *psmouse)
|
||||
@@ -556,13 +966,13 @@ static int alps_poll(struct psmouse *psmouse)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -923,13 +917,13 @@ index f699698..b2bc8ca 100644
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -573,13 +982,13 @@ static int alps_hw_init(struct psmouse *psmouse)
|
||||
@@ -571,13 +981,13 @@ static int alps_hw_init(struct psmouse *psmouse)
|
||||
return -1;
|
||||
}
|
||||
|
||||
- if (alps_absolute_mode(psmouse)) {
|
||||
+ if (alps_absolute_mode_v1_v2(psmouse)) {
|
||||
printk(KERN_ERR "alps.c: Failed to enable absolute mode\n");
|
||||
psmouse_err(psmouse, "Failed to enable absolute mode\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -939,7 +933,7 @@ index f699698..b2bc8ca 100644
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -592,6 +1001,297 @@ static int alps_hw_init(struct psmouse *psmouse)
|
||||
@@ -590,6 +1000,297 @@ static int alps_hw_init(struct psmouse *psmouse)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1237,7 +1231,7 @@ index f699698..b2bc8ca 100644
|
||||
static int alps_reconnect(struct psmouse *psmouse)
|
||||
{
|
||||
const struct alps_model_info *model;
|
||||
@@ -632,6 +1332,8 @@ int alps_init(struct psmouse *psmouse)
|
||||
@@ -630,6 +1331,8 @@ int alps_init(struct psmouse *psmouse)
|
||||
|
||||
psmouse->private = priv;
|
||||
|
||||
@ -1246,7 +1240,7 @@ index f699698..b2bc8ca 100644
|
||||
model = alps_get_model(psmouse, &version);
|
||||
if (!model)
|
||||
goto init_fail;
|
||||
@@ -659,8 +1361,20 @@ int alps_init(struct psmouse *psmouse)
|
||||
@@ -657,8 +1360,20 @@ int alps_init(struct psmouse *psmouse)
|
||||
BIT_MASK(BTN_LEFT) | BIT_MASK(BTN_RIGHT);
|
||||
|
||||
dev1->evbit[BIT_WORD(EV_ABS)] |= BIT_MASK(EV_ABS);
|
||||
@ -1269,7 +1263,7 @@ index f699698..b2bc8ca 100644
|
||||
input_set_abs_params(dev1, ABS_PRESSURE, 0, 127, 0, 0);
|
||||
|
||||
if (model->flags & ALPS_WHEEL) {
|
||||
@@ -703,7 +1417,7 @@ int alps_init(struct psmouse *psmouse)
|
||||
@@ -701,7 +1416,7 @@ int alps_init(struct psmouse *psmouse)
|
||||
psmouse->poll = alps_poll;
|
||||
psmouse->disconnect = alps_disconnect;
|
||||
psmouse->reconnect = alps_reconnect;
|
||||
@ -1320,7 +1314,7 @@ index 4ce9bba..62db7f4 100644
|
||||
int alps_detect(struct psmouse *psmouse, bool set_properties);
|
||||
int alps_init(struct psmouse *psmouse);
|
||||
diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
|
||||
index 593e910..c2b5aa6 100644
|
||||
index 9b84b0c..11a9c6c 100644
|
||||
--- a/drivers/input/mouse/psmouse.h
|
||||
+++ b/drivers/input/mouse/psmouse.h
|
||||
@@ -8,6 +8,7 @@
|
||||
@ -1335,10 +1329,10 @@ index 593e910..c2b5aa6 100644
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 8a2d5b12d0a47daf178a842ca009eaf344033cf8 Mon Sep 17 00:00:00 2001
|
||||
From 01ce661fc83005947dc958a5739c153843af8a73 Mon Sep 17 00:00:00 2001
|
||||
From: Seth Forshee <seth.forshee@canonical.com>
|
||||
Date: Mon, 7 Nov 2011 19:54:13 -0800
|
||||
Subject: [PATCH 5/7] Input: ALPS - add semi-MT support for v3 protocol
|
||||
Subject: [PATCH 5/6] Input: ALPS - add semi-MT support for v3 protocol
|
||||
|
||||
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
Acked-by: Chase Douglas <chase.douglas@canonical.com>
|
||||
@ -1349,7 +1343,7 @@ Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
2 files changed, 215 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index b2bc8ca..15383e1 100644
|
||||
index a0248fd..bd87380 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -17,6 +17,7 @@
|
||||
@ -1360,7 +1354,7 @@ index b2bc8ca..15383e1 100644
|
||||
#include <linux/serio.h>
|
||||
#include <linux/libps2.h>
|
||||
|
||||
@@ -33,6 +34,12 @@
|
||||
@@ -26,6 +27,12 @@
|
||||
/*
|
||||
* Definitions for ALPS version 3 and 4 command mode protocol
|
||||
*/
|
||||
@ -1373,7 +1367,7 @@ index b2bc8ca..15383e1 100644
|
||||
#define ALPS_CMD_NIBBLE_10 0x01f2
|
||||
|
||||
static const struct alps_nibble_commands alps_v3_nibble_commands[] = {
|
||||
@@ -256,6 +263,137 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
|
||||
@@ -250,6 +257,137 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
|
||||
input_sync(dev);
|
||||
}
|
||||
|
||||
@ -1511,7 +1505,7 @@ index b2bc8ca..15383e1 100644
|
||||
static void alps_process_trackstick_packet_v3(struct psmouse *psmouse)
|
||||
{
|
||||
struct alps_data *priv = psmouse->private;
|
||||
@@ -324,16 +462,17 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
@@ -318,16 +456,17 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
struct input_dev *dev2 = priv->dev2;
|
||||
int x, y, z;
|
||||
int left, right, middle;
|
||||
@ -1535,7 +1529,7 @@ index b2bc8ca..15383e1 100644
|
||||
/*
|
||||
* Sometimes a position packet will indicate a multi-packet
|
||||
* sequence, but then what follows is another position
|
||||
@@ -341,18 +480,49 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
@@ -335,18 +474,49 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
* position packet as usual.
|
||||
*/
|
||||
if (packet[0] & 0x40) {
|
||||
@ -1591,7 +1585,7 @@ index b2bc8ca..15383e1 100644
|
||||
|
||||
left = packet[3] & 0x01;
|
||||
right = packet[3] & 0x02;
|
||||
@@ -372,22 +542,38 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
@@ -366,22 +536,38 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
if (x && y && !z)
|
||||
return;
|
||||
|
||||
@ -1635,7 +1629,7 @@ index b2bc8ca..15383e1 100644
|
||||
input_sync(dev);
|
||||
|
||||
if (!(priv->quirks & ALPS_QUIRK_TRACKSTICK_BUTTONS)) {
|
||||
@@ -1369,9 +1555,18 @@ int alps_init(struct psmouse *psmouse)
|
||||
@@ -1368,9 +1554,18 @@ int alps_init(struct psmouse *psmouse)
|
||||
input_set_abs_params(dev1, ABS_Y, 0, 767, 0, 0);
|
||||
break;
|
||||
case ALPS_PROTO_V3:
|
||||
@ -1672,10 +1666,10 @@ index 62db7f4..a00a4ab 100644
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 281688737cb83dd113cfab809b2c78841451ba32 Mon Sep 17 00:00:00 2001
|
||||
From 7cf801cfc0774b777aa6861cf4a43a90b112b1ed Mon Sep 17 00:00:00 2001
|
||||
From: Seth Forshee <seth.forshee@canonical.com>
|
||||
Date: Mon, 7 Nov 2011 19:54:35 -0800
|
||||
Subject: [PATCH 6/7] Input: ALPS - add documentation for protocol versions 3
|
||||
Subject: [PATCH 6/6] Input: ALPS - add documentation for protocol versions 3
|
||||
and 4
|
||||
|
||||
Also converts from using "old" and "new" to describe the already-known
|
||||
@ -1865,126 +1859,3 @@ index ab5478f..f274c28 100644
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 8114d422321fa6bb724a03faf25b101868d6e03d Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
Date: Mon, 12 Dec 2011 15:12:00 -0500
|
||||
Subject: [PATCH 7/7] Revert psmouse_* print format changes from the
|
||||
backported patches. Sigh
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/alps.c | 29 ++++++++++++-----------------
|
||||
1 files changed, 12 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index 15383e1..4925a63 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -403,7 +403,7 @@ static void alps_process_trackstick_packet_v3(struct psmouse *psmouse)
|
||||
|
||||
/* Sanity check packet */
|
||||
if (!(packet[0] & 0x40)) {
|
||||
- psmouse_dbg(psmouse, "Bad trackstick packet, discarding\n");
|
||||
+ dbg("Bad trackstick packet, discarding\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -922,13 +922,12 @@ static int alps_enter_command_mode(struct psmouse *psmouse,
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP) ||
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP) ||
|
||||
ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) {
|
||||
- psmouse_err(psmouse, "failed to enter command mode\n");
|
||||
+ printk(KERN_ERR "alps.c: failed to enter command mode\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (param[0] != 0x88 && param[1] != 0x07) {
|
||||
- psmouse_dbg(psmouse,
|
||||
- "unknown response while entering command mode: %2.2x %2.2x %2.2x\n",
|
||||
+ dbg("unknown response while entering command mode: %2.2x %2.2x %2.2x\n",
|
||||
param[0], param[1], param[2]);
|
||||
return -1;
|
||||
}
|
||||
@@ -1012,8 +1011,7 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
||||
*/
|
||||
model = NULL;
|
||||
if (alps_enter_command_mode(psmouse, param)) {
|
||||
- psmouse_warn(psmouse,
|
||||
- "touchpad failed to enter command mode\n");
|
||||
+ printk(KERN_WARNING "alps.c: touchpad failed to enter command mode\n");
|
||||
} else {
|
||||
for (i = 0; i < ARRAY_SIZE(alps_model_data); i++) {
|
||||
if (alps_model_data[i].proto_version > ALPS_PROTO_V2 &&
|
||||
@@ -1025,8 +1023,7 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
||||
alps_exit_command_mode(psmouse);
|
||||
|
||||
if (!model)
|
||||
- psmouse_dbg(psmouse,
|
||||
- "Unknown command mode response %2.2x\n",
|
||||
+ dbg("Unknown command mode response %2.2x\n",
|
||||
param[0]);
|
||||
}
|
||||
}
|
||||
@@ -1263,10 +1260,9 @@ static int alps_hw_init_v3(struct psmouse *psmouse)
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21) ||
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21) ||
|
||||
ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) {
|
||||
- psmouse_warn(psmouse, "trackstick E7 report failed\n");
|
||||
+ printk(KERN_WARNING "alps.c: trackstick E7 report failed\n");
|
||||
} else {
|
||||
- psmouse_dbg(psmouse,
|
||||
- "trackstick E7 report: %2.2x %2.2x %2.2x\n",
|
||||
+ dbg("trackstick E7 report: %2.2x %2.2x %2.2x\n",
|
||||
param[0], param[1], param[2]);
|
||||
|
||||
/*
|
||||
@@ -1280,8 +1276,7 @@ static int alps_hw_init_v3(struct psmouse *psmouse)
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) ||
|
||||
alps_command_mode_send_nibble(psmouse, 0x9) ||
|
||||
alps_command_mode_send_nibble(psmouse, 0x4)) {
|
||||
- psmouse_err(psmouse,
|
||||
- "Error sending magic E6 sequence\n");
|
||||
+ printk(KERN_ERR "alps.c: Error sending magic E6 sequence\n");
|
||||
goto error_passthrough;
|
||||
}
|
||||
}
|
||||
@@ -1293,7 +1288,7 @@ static int alps_hw_init_v3(struct psmouse *psmouse)
|
||||
}
|
||||
|
||||
if (alps_absolute_mode_v3(psmouse)) {
|
||||
- psmouse_err(psmouse, "Failed to enter absolute mode\n");
|
||||
+ printk(KERN_ERR "alps.c: Failed to enter absolute mode\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
@@ -1343,7 +1338,7 @@ static int alps_hw_init_v3(struct psmouse *psmouse)
|
||||
param[0] = 0x64;
|
||||
if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRATE) ||
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) {
|
||||
- psmouse_err(psmouse, "Failed to enable data reporting\n");
|
||||
+ printk(KERN_ERR "alps.c: Failed to enable data reporting\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1392,7 +1387,7 @@ static int alps_hw_init_v4(struct psmouse *psmouse)
|
||||
goto error;
|
||||
|
||||
if (alps_absolute_mode_v4(psmouse)) {
|
||||
- psmouse_err(psmouse, "Failed to enter absolute mode\n");
|
||||
+ printk(KERN_ERR "alps.c: Failed to enter absolute mode\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
@@ -1440,7 +1435,7 @@ static int alps_hw_init_v4(struct psmouse *psmouse)
|
||||
param[0] = 0x64;
|
||||
if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRATE) ||
|
||||
ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) {
|
||||
- psmouse_err(psmouse, "Failed to enable data reporting\n");
|
||||
+ printk(KERN_ERR "alps.c: Failed to enable data reporting\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
@ -1,592 +0,0 @@
|
||||
Backport from 3.2 (754214)
|
||||
|
||||
Andy Ross (4):
|
||||
asus-laptop: Platform detection for Pegatron Lucid
|
||||
asus-laptop: Pegatron Lucid ALS sensor
|
||||
asus-laptop: allow boot time control of Pegatron ALS sensor
|
||||
asus-laptop: Pegatron Lucid accelerometer
|
||||
|
||||
Anisse Astier (2):
|
||||
asus-laptop: pega_accel - Report accelerometer orientation change through udev
|
||||
asus-laptop: Add rfkill support for Pegatron Lucid tablet
|
||||
|
||||
Axel Lin (1):
|
||||
platform-drivers-x86: asus-laptop: fix wrong test for successful registered led_classdev
|
||||
|
||||
Corentin Chary (2):
|
||||
asus-laptop: hide leds on Pegatron Lucid
|
||||
asus-laptop: fix module description
|
||||
|
||||
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
|
||||
index fa6d7ec..edaccad 100644
|
||||
--- a/drivers/platform/x86/asus-laptop.c
|
||||
+++ b/drivers/platform/x86/asus-laptop.c
|
||||
@@ -4,6 +4,7 @@
|
||||
*
|
||||
* Copyright (C) 2002-2005 Julien Lerouge, 2003-2006 Karol Kozimor
|
||||
* Copyright (C) 2006-2007 Corentin Chary
|
||||
+ * Copyright (C) 2011 Wind River Systems
|
||||
*
|
||||
* 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
|
||||
@@ -48,6 +49,7 @@
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/input/sparse-keymap.h>
|
||||
+#include <linux/input-polldev.h>
|
||||
#include <linux/rfkill.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/dmi.h>
|
||||
@@ -83,26 +85,32 @@ static int wlan_status = 1;
|
||||
static int bluetooth_status = 1;
|
||||
static int wimax_status = -1;
|
||||
static int wwan_status = -1;
|
||||
+static int als_status;
|
||||
|
||||
module_param(wlan_status, int, 0444);
|
||||
MODULE_PARM_DESC(wlan_status, "Set the wireless status on boot "
|
||||
"(0 = disabled, 1 = enabled, -1 = don't do anything). "
|
||||
- "default is 1");
|
||||
+ "default is -1");
|
||||
|
||||
module_param(bluetooth_status, int, 0444);
|
||||
MODULE_PARM_DESC(bluetooth_status, "Set the wireless status on boot "
|
||||
"(0 = disabled, 1 = enabled, -1 = don't do anything). "
|
||||
- "default is 1");
|
||||
+ "default is -1");
|
||||
|
||||
module_param(wimax_status, int, 0444);
|
||||
MODULE_PARM_DESC(wimax_status, "Set the wireless status on boot "
|
||||
"(0 = disabled, 1 = enabled, -1 = don't do anything). "
|
||||
- "default is 1");
|
||||
+ "default is -1");
|
||||
|
||||
module_param(wwan_status, int, 0444);
|
||||
MODULE_PARM_DESC(wwan_status, "Set the wireless status on boot "
|
||||
"(0 = disabled, 1 = enabled, -1 = don't do anything). "
|
||||
- "default is 1");
|
||||
+ "default is -1");
|
||||
+
|
||||
+module_param(als_status, int, 0444);
|
||||
+MODULE_PARM_DESC(als_status, "Set the ALS status on boot "
|
||||
+ "(0 = disabled, 1 = enabled). "
|
||||
+ "default is 0");
|
||||
|
||||
/*
|
||||
* Some events we use, same for all Asus
|
||||
@@ -173,6 +181,29 @@ MODULE_PARM_DESC(wwan_status, "Set the wireless status on boot "
|
||||
#define METHOD_KBD_LIGHT_SET "SLKB"
|
||||
#define METHOD_KBD_LIGHT_GET "GLKB"
|
||||
|
||||
+/* For Pegatron Lucid tablet */
|
||||
+#define DEVICE_NAME_PEGA "Lucid"
|
||||
+
|
||||
+#define METHOD_PEGA_ENABLE "ENPR"
|
||||
+#define METHOD_PEGA_DISABLE "DAPR"
|
||||
+#define PEGA_WLAN 0x00
|
||||
+#define PEGA_BLUETOOTH 0x01
|
||||
+#define PEGA_WWAN 0x02
|
||||
+#define PEGA_ALS 0x04
|
||||
+#define PEGA_ALS_POWER 0x05
|
||||
+
|
||||
+#define METHOD_PEGA_READ "RDLN"
|
||||
+#define PEGA_READ_ALS_H 0x02
|
||||
+#define PEGA_READ_ALS_L 0x03
|
||||
+
|
||||
+#define PEGA_ACCEL_NAME "pega_accel"
|
||||
+#define PEGA_ACCEL_DESC "Pegatron Lucid Tablet Accelerometer"
|
||||
+#define METHOD_XLRX "XLRX"
|
||||
+#define METHOD_XLRY "XLRY"
|
||||
+#define METHOD_XLRZ "XLRZ"
|
||||
+#define PEGA_ACC_CLAMP 512 /* 1G accel is reported as ~256, so clamp to 2G */
|
||||
+#define PEGA_ACC_RETRIES 3
|
||||
+
|
||||
/*
|
||||
* Define a specific led structure to keep the main structure clean
|
||||
*/
|
||||
@@ -185,6 +216,15 @@ struct asus_led {
|
||||
};
|
||||
|
||||
/*
|
||||
+ * Same thing for rfkill
|
||||
+ */
|
||||
+struct asus_pega_rfkill {
|
||||
+ int control_id; /* type of control. Maps to PEGA_* values */
|
||||
+ struct rfkill *rfkill;
|
||||
+ struct asus_laptop *asus;
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
* This is the main structure, we can use it to store anything interesting
|
||||
* about the hotk device
|
||||
*/
|
||||
@@ -198,6 +238,7 @@ struct asus_laptop {
|
||||
|
||||
struct input_dev *inputdev;
|
||||
struct key_entry *keymap;
|
||||
+ struct input_polled_dev *pega_accel_poll;
|
||||
|
||||
struct asus_led mled;
|
||||
struct asus_led tled;
|
||||
@@ -209,9 +250,18 @@ struct asus_laptop {
|
||||
|
||||
int wireless_status;
|
||||
bool have_rsts;
|
||||
+ bool is_pega_lucid;
|
||||
+ bool pega_acc_live;
|
||||
+ int pega_acc_x;
|
||||
+ int pega_acc_y;
|
||||
+ int pega_acc_z;
|
||||
|
||||
struct rfkill *gps_rfkill;
|
||||
|
||||
+ struct asus_pega_rfkill wlanrfk;
|
||||
+ struct asus_pega_rfkill btrfk;
|
||||
+ struct asus_pega_rfkill wwanrfk;
|
||||
+
|
||||
acpi_handle handle; /* the handle of the hotk device */
|
||||
u32 ledd_status; /* status of the LED display */
|
||||
u8 light_level; /* light sensor level */
|
||||
@@ -323,6 +373,127 @@ static int acpi_check_handle(acpi_handle handle, const char *method,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static bool asus_check_pega_lucid(struct asus_laptop *asus)
|
||||
+{
|
||||
+ return !strcmp(asus->name, DEVICE_NAME_PEGA) &&
|
||||
+ !acpi_check_handle(asus->handle, METHOD_PEGA_ENABLE, NULL) &&
|
||||
+ !acpi_check_handle(asus->handle, METHOD_PEGA_DISABLE, NULL) &&
|
||||
+ !acpi_check_handle(asus->handle, METHOD_PEGA_READ, NULL);
|
||||
+}
|
||||
+
|
||||
+static int asus_pega_lucid_set(struct asus_laptop *asus, int unit, bool enable)
|
||||
+{
|
||||
+ char *method = enable ? METHOD_PEGA_ENABLE : METHOD_PEGA_DISABLE;
|
||||
+ return write_acpi_int(asus->handle, method, unit);
|
||||
+}
|
||||
+
|
||||
+static int pega_acc_axis(struct asus_laptop *asus, int curr, char *method)
|
||||
+{
|
||||
+ int i, delta;
|
||||
+ unsigned long long val;
|
||||
+ for (i = 0; i < PEGA_ACC_RETRIES; i++) {
|
||||
+ acpi_evaluate_integer(asus->handle, method, NULL, &val);
|
||||
+
|
||||
+ /* The output is noisy. From reading the ASL
|
||||
+ * dissassembly, timeout errors are returned with 1's
|
||||
+ * in the high word, and the lack of locking around
|
||||
+ * thei hi/lo byte reads means that a transition
|
||||
+ * between (for example) -1 and 0 could be read as
|
||||
+ * 0xff00 or 0x00ff. */
|
||||
+ delta = abs(curr - (short)val);
|
||||
+ if (delta < 128 && !(val & ~0xffff))
|
||||
+ break;
|
||||
+ }
|
||||
+ return clamp_val((short)val, -PEGA_ACC_CLAMP, PEGA_ACC_CLAMP);
|
||||
+}
|
||||
+
|
||||
+static void pega_accel_poll(struct input_polled_dev *ipd)
|
||||
+{
|
||||
+ struct device *parent = ipd->input->dev.parent;
|
||||
+ struct asus_laptop *asus = dev_get_drvdata(parent);
|
||||
+
|
||||
+ /* In some cases, the very first call to poll causes a
|
||||
+ * recursive fault under the polldev worker. This is
|
||||
+ * apparently related to very early userspace access to the
|
||||
+ * device, and perhaps a firmware bug. Fake the first report. */
|
||||
+ if (!asus->pega_acc_live) {
|
||||
+ asus->pega_acc_live = true;
|
||||
+ input_report_abs(ipd->input, ABS_X, 0);
|
||||
+ input_report_abs(ipd->input, ABS_Y, 0);
|
||||
+ input_report_abs(ipd->input, ABS_Z, 0);
|
||||
+ input_sync(ipd->input);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ asus->pega_acc_x = pega_acc_axis(asus, asus->pega_acc_x, METHOD_XLRX);
|
||||
+ asus->pega_acc_y = pega_acc_axis(asus, asus->pega_acc_y, METHOD_XLRY);
|
||||
+ asus->pega_acc_z = pega_acc_axis(asus, asus->pega_acc_z, METHOD_XLRZ);
|
||||
+
|
||||
+ /* Note transform, convert to "right/up/out" in the native
|
||||
+ * landscape orientation (i.e. the vector is the direction of
|
||||
+ * "real up" in the device's cartiesian coordinates). */
|
||||
+ input_report_abs(ipd->input, ABS_X, -asus->pega_acc_x);
|
||||
+ input_report_abs(ipd->input, ABS_Y, -asus->pega_acc_y);
|
||||
+ input_report_abs(ipd->input, ABS_Z, asus->pega_acc_z);
|
||||
+ input_sync(ipd->input);
|
||||
+}
|
||||
+
|
||||
+static void pega_accel_exit(struct asus_laptop *asus)
|
||||
+{
|
||||
+ if (asus->pega_accel_poll) {
|
||||
+ input_unregister_polled_device(asus->pega_accel_poll);
|
||||
+ input_free_polled_device(asus->pega_accel_poll);
|
||||
+ }
|
||||
+ asus->pega_accel_poll = NULL;
|
||||
+}
|
||||
+
|
||||
+static int pega_accel_init(struct asus_laptop *asus)
|
||||
+{
|
||||
+ int err;
|
||||
+ struct input_polled_dev *ipd;
|
||||
+
|
||||
+ if (!asus->is_pega_lucid)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (acpi_check_handle(asus->handle, METHOD_XLRX, NULL) ||
|
||||
+ acpi_check_handle(asus->handle, METHOD_XLRY, NULL) ||
|
||||
+ acpi_check_handle(asus->handle, METHOD_XLRZ, NULL))
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ ipd = input_allocate_polled_device();
|
||||
+ if (!ipd)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ ipd->poll = pega_accel_poll;
|
||||
+ ipd->poll_interval = 125;
|
||||
+ ipd->poll_interval_min = 50;
|
||||
+ ipd->poll_interval_max = 2000;
|
||||
+
|
||||
+ ipd->input->name = PEGA_ACCEL_DESC;
|
||||
+ ipd->input->phys = PEGA_ACCEL_NAME "/input0";
|
||||
+ ipd->input->dev.parent = &asus->platform_device->dev;
|
||||
+ ipd->input->id.bustype = BUS_HOST;
|
||||
+
|
||||
+ set_bit(EV_ABS, ipd->input->evbit);
|
||||
+ input_set_abs_params(ipd->input, ABS_X,
|
||||
+ -PEGA_ACC_CLAMP, PEGA_ACC_CLAMP, 0, 0);
|
||||
+ input_set_abs_params(ipd->input, ABS_Y,
|
||||
+ -PEGA_ACC_CLAMP, PEGA_ACC_CLAMP, 0, 0);
|
||||
+ input_set_abs_params(ipd->input, ABS_Z,
|
||||
+ -PEGA_ACC_CLAMP, PEGA_ACC_CLAMP, 0, 0);
|
||||
+
|
||||
+ err = input_register_polled_device(ipd);
|
||||
+ if (err)
|
||||
+ goto exit;
|
||||
+
|
||||
+ asus->pega_accel_poll = ipd;
|
||||
+ return 0;
|
||||
+
|
||||
+exit:
|
||||
+ input_free_polled_device(ipd);
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
/* Generic LED function */
|
||||
static int asus_led_set(struct asus_laptop *asus, const char *method,
|
||||
int value)
|
||||
@@ -430,17 +601,17 @@ static enum led_brightness asus_kled_cdev_get(struct led_classdev *led_cdev)
|
||||
|
||||
static void asus_led_exit(struct asus_laptop *asus)
|
||||
{
|
||||
- if (asus->mled.led.dev)
|
||||
+ if (!IS_ERR_OR_NULL(asus->mled.led.dev))
|
||||
led_classdev_unregister(&asus->mled.led);
|
||||
- if (asus->tled.led.dev)
|
||||
+ if (!IS_ERR_OR_NULL(asus->tled.led.dev))
|
||||
led_classdev_unregister(&asus->tled.led);
|
||||
- if (asus->pled.led.dev)
|
||||
+ if (!IS_ERR_OR_NULL(asus->pled.led.dev))
|
||||
led_classdev_unregister(&asus->pled.led);
|
||||
- if (asus->rled.led.dev)
|
||||
+ if (!IS_ERR_OR_NULL(asus->rled.led.dev))
|
||||
led_classdev_unregister(&asus->rled.led);
|
||||
- if (asus->gled.led.dev)
|
||||
+ if (!IS_ERR_OR_NULL(asus->gled.led.dev))
|
||||
led_classdev_unregister(&asus->gled.led);
|
||||
- if (asus->kled.led.dev)
|
||||
+ if (!IS_ERR_OR_NULL(asus->kled.led.dev))
|
||||
led_classdev_unregister(&asus->kled.led);
|
||||
if (asus->led_workqueue) {
|
||||
destroy_workqueue(asus->led_workqueue);
|
||||
@@ -474,6 +645,13 @@ static int asus_led_init(struct asus_laptop *asus)
|
||||
int r;
|
||||
|
||||
/*
|
||||
+ * The Pegatron Lucid has no physical leds, but all methods are
|
||||
+ * available in the DSDT...
|
||||
+ */
|
||||
+ if (asus->is_pega_lucid)
|
||||
+ return 0;
|
||||
+
|
||||
+ /*
|
||||
* Functions that actually update the LED's are called from a
|
||||
* workqueue. By doing this as separate work rather than when the LED
|
||||
* subsystem asks, we avoid messing with the Asus ACPI stuff during a
|
||||
@@ -907,8 +1085,18 @@ static ssize_t store_disp(struct device *dev, struct device_attribute *attr,
|
||||
*/
|
||||
static void asus_als_switch(struct asus_laptop *asus, int value)
|
||||
{
|
||||
- if (write_acpi_int(asus->handle, METHOD_ALS_CONTROL, value))
|
||||
- pr_warn("Error setting light sensor switch\n");
|
||||
+ int ret;
|
||||
+
|
||||
+ if (asus->is_pega_lucid) {
|
||||
+ ret = asus_pega_lucid_set(asus, PEGA_ALS, value);
|
||||
+ if (!ret)
|
||||
+ ret = asus_pega_lucid_set(asus, PEGA_ALS_POWER, value);
|
||||
+ } else {
|
||||
+ ret = write_acpi_int(asus->handle, METHOD_ALS_CONTROL, value);
|
||||
+ }
|
||||
+ if (ret)
|
||||
+ pr_warning("Error setting light sensor switch\n");
|
||||
+
|
||||
asus->light_switch = value;
|
||||
}
|
||||
|
||||
@@ -964,6 +1152,35 @@ static ssize_t store_lslvl(struct device *dev, struct device_attribute *attr,
|
||||
return rv;
|
||||
}
|
||||
|
||||
+static int pega_int_read(struct asus_laptop *asus, int arg, int *result)
|
||||
+{
|
||||
+ struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
+ int err = write_acpi_int_ret(asus->handle, METHOD_PEGA_READ, arg,
|
||||
+ &buffer);
|
||||
+ if (!err) {
|
||||
+ union acpi_object *obj = buffer.pointer;
|
||||
+ if (obj && obj->type == ACPI_TYPE_INTEGER)
|
||||
+ *result = obj->integer.value;
|
||||
+ else
|
||||
+ err = -EIO;
|
||||
+ }
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
+static ssize_t show_lsvalue(struct device *dev,
|
||||
+ struct device_attribute *attr, char *buf)
|
||||
+{
|
||||
+ struct asus_laptop *asus = dev_get_drvdata(dev);
|
||||
+ int err, hi, lo;
|
||||
+
|
||||
+ err = pega_int_read(asus, PEGA_READ_ALS_H, &hi);
|
||||
+ if (!err)
|
||||
+ err = pega_int_read(asus, PEGA_READ_ALS_L, &lo);
|
||||
+ if (!err)
|
||||
+ return sprintf(buf, "%d\n", 10 * hi + lo);
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* GPS
|
||||
*/
|
||||
@@ -1062,6 +1279,86 @@ static int asus_rfkill_init(struct asus_laptop *asus)
|
||||
return result;
|
||||
}
|
||||
|
||||
+static int pega_rfkill_set(void *data, bool blocked)
|
||||
+{
|
||||
+ struct asus_pega_rfkill *pega_rfk = data;
|
||||
+
|
||||
+ int ret = asus_pega_lucid_set(pega_rfk->asus, pega_rfk->control_id, !blocked);
|
||||
+ pr_warn("Setting rfkill %d, to %d; returned %d\n", pega_rfk->control_id, !blocked, ret);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static const struct rfkill_ops pega_rfkill_ops = {
|
||||
+ .set_block = pega_rfkill_set,
|
||||
+};
|
||||
+
|
||||
+static void pega_rfkill_terminate(struct asus_pega_rfkill *pega_rfk)
|
||||
+{
|
||||
+ pr_warn("Terminating %d\n", pega_rfk->control_id);
|
||||
+ if (pega_rfk->rfkill) {
|
||||
+ rfkill_unregister(pega_rfk->rfkill);
|
||||
+ rfkill_destroy(pega_rfk->rfkill);
|
||||
+ pega_rfk->rfkill = NULL;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void pega_rfkill_exit(struct asus_laptop *asus)
|
||||
+{
|
||||
+ pega_rfkill_terminate(&asus->wwanrfk);
|
||||
+ pega_rfkill_terminate(&asus->btrfk);
|
||||
+ pega_rfkill_terminate(&asus->wlanrfk);
|
||||
+}
|
||||
+
|
||||
+static int pega_rfkill_setup(struct asus_laptop *asus, struct asus_pega_rfkill *pega_rfk,
|
||||
+ const char *name, int controlid, int rfkill_type)
|
||||
+{
|
||||
+ int result;
|
||||
+
|
||||
+ pr_warn("Setting up rfk %s, control %d, type %d\n", name, controlid, rfkill_type);
|
||||
+ pega_rfk->control_id = controlid;
|
||||
+ pega_rfk->asus = asus;
|
||||
+ pega_rfk->rfkill = rfkill_alloc(name, &asus->platform_device->dev,
|
||||
+ rfkill_type, &pega_rfkill_ops, pega_rfk);
|
||||
+ if (!pega_rfk->rfkill)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ result = rfkill_register(pega_rfk->rfkill);
|
||||
+ if (result) {
|
||||
+ rfkill_destroy(pega_rfk->rfkill);
|
||||
+ pega_rfk->rfkill = NULL;
|
||||
+ }
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+static int pega_rfkill_init(struct asus_laptop *asus)
|
||||
+{
|
||||
+ int ret = 0;
|
||||
+
|
||||
+ if(!asus->is_pega_lucid)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ ret = pega_rfkill_setup(asus, &asus->wlanrfk, "pega-wlan", PEGA_WLAN, RFKILL_TYPE_WLAN);
|
||||
+ if(ret)
|
||||
+ return ret;
|
||||
+ ret = pega_rfkill_setup(asus, &asus->btrfk, "pega-bt", PEGA_BLUETOOTH, RFKILL_TYPE_BLUETOOTH);
|
||||
+ if(ret)
|
||||
+ goto err_btrfk;
|
||||
+ ret = pega_rfkill_setup(asus, &asus->wwanrfk, "pega-wwan", PEGA_WWAN, RFKILL_TYPE_WWAN);
|
||||
+ if(ret)
|
||||
+ goto err_wwanrfk;
|
||||
+
|
||||
+ pr_warn("Pega rfkill init succeeded\n");
|
||||
+ return 0;
|
||||
+err_wwanrfk:
|
||||
+ pega_rfkill_terminate(&asus->btrfk);
|
||||
+err_btrfk:
|
||||
+ pega_rfkill_terminate(&asus->wlanrfk);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Input device (i.e. hotkeys)
|
||||
*/
|
||||
@@ -1141,6 +1438,14 @@ static void asus_acpi_notify(struct acpi_device *device, u32 event)
|
||||
}
|
||||
return ;
|
||||
}
|
||||
+
|
||||
+ /* Accelerometer "coarse orientation change" event */
|
||||
+ if (asus->pega_accel_poll && event == 0xEA) {
|
||||
+ kobject_uevent(&asus->pega_accel_poll->input->dev.kobj,
|
||||
+ KOBJ_CHANGE);
|
||||
+ return ;
|
||||
+ }
|
||||
+
|
||||
asus_input_notify(asus, event);
|
||||
}
|
||||
|
||||
@@ -1152,6 +1457,7 @@ static DEVICE_ATTR(wimax, S_IRUGO | S_IWUSR, show_wimax, store_wimax);
|
||||
static DEVICE_ATTR(wwan, S_IRUGO | S_IWUSR, show_wwan, store_wwan);
|
||||
static DEVICE_ATTR(display, S_IWUSR, NULL, store_disp);
|
||||
static DEVICE_ATTR(ledd, S_IRUGO | S_IWUSR, show_ledd, store_ledd);
|
||||
+static DEVICE_ATTR(ls_value, S_IRUGO, show_lsvalue, NULL);
|
||||
static DEVICE_ATTR(ls_level, S_IRUGO | S_IWUSR, show_lslvl, store_lslvl);
|
||||
static DEVICE_ATTR(ls_switch, S_IRUGO | S_IWUSR, show_lssw, store_lssw);
|
||||
static DEVICE_ATTR(gps, S_IRUGO | S_IWUSR, show_gps, store_gps);
|
||||
@@ -1164,6 +1470,7 @@ static struct attribute *asus_attributes[] = {
|
||||
&dev_attr_wwan.attr,
|
||||
&dev_attr_display.attr,
|
||||
&dev_attr_ledd.attr,
|
||||
+ &dev_attr_ls_value.attr,
|
||||
&dev_attr_ls_level.attr,
|
||||
&dev_attr_ls_switch.attr,
|
||||
&dev_attr_gps.attr,
|
||||
@@ -1180,6 +1487,19 @@ static mode_t asus_sysfs_is_visible(struct kobject *kobj,
|
||||
acpi_handle handle = asus->handle;
|
||||
bool supported;
|
||||
|
||||
+ if (asus->is_pega_lucid) {
|
||||
+ /* no ls_level interface on the Lucid */
|
||||
+ if (attr == &dev_attr_ls_switch.attr)
|
||||
+ supported = true;
|
||||
+ else if (attr == &dev_attr_ls_level.attr)
|
||||
+ supported = false;
|
||||
+ else
|
||||
+ goto normal;
|
||||
+
|
||||
+ return supported;
|
||||
+ }
|
||||
+
|
||||
+normal:
|
||||
if (attr == &dev_attr_wlan.attr) {
|
||||
supported = !acpi_check_handle(handle, METHOD_WLAN, NULL);
|
||||
|
||||
@@ -1202,8 +1522,9 @@ static mode_t asus_sysfs_is_visible(struct kobject *kobj,
|
||||
} else if (attr == &dev_attr_ls_switch.attr ||
|
||||
attr == &dev_attr_ls_level.attr) {
|
||||
supported = !acpi_check_handle(handle, METHOD_ALS_CONTROL, NULL) &&
|
||||
- !acpi_check_handle(handle, METHOD_ALS_LEVEL, NULL);
|
||||
-
|
||||
+ !acpi_check_handle(handle, METHOD_ALS_LEVEL, NULL);
|
||||
+ } else if (attr == &dev_attr_ls_value.attr) {
|
||||
+ supported = asus->is_pega_lucid;
|
||||
} else if (attr == &dev_attr_gps.attr) {
|
||||
supported = !acpi_check_handle(handle, METHOD_GPS_ON, NULL) &&
|
||||
!acpi_check_handle(handle, METHOD_GPS_OFF, NULL) &&
|
||||
@@ -1258,7 +1579,7 @@ static struct platform_driver platform_driver = {
|
||||
.driver = {
|
||||
.name = ASUS_LAPTOP_FILE,
|
||||
.owner = THIS_MODULE,
|
||||
- }
|
||||
+ },
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -1388,11 +1709,13 @@ static int __devinit asus_acpi_init(struct asus_laptop *asus)
|
||||
asus->ledd_status = 0xFFF;
|
||||
|
||||
/* Set initial values of light sensor and level */
|
||||
- asus->light_switch = 0; /* Default to light sensor disabled */
|
||||
+ asus->light_switch = !!als_status;
|
||||
asus->light_level = 5; /* level 5 for sensor sensitivity */
|
||||
|
||||
- if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) &&
|
||||
- !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) {
|
||||
+ if (asus->is_pega_lucid) {
|
||||
+ asus_als_switch(asus, asus->light_switch);
|
||||
+ } else if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) &&
|
||||
+ !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) {
|
||||
asus_als_switch(asus, asus->light_switch);
|
||||
asus_als_level(asus, asus->light_level);
|
||||
}
|
||||
@@ -1439,9 +1762,10 @@ static int __devinit asus_acpi_add(struct acpi_device *device)
|
||||
goto fail_platform;
|
||||
|
||||
/*
|
||||
- * Register the platform device first. It is used as a parent for the
|
||||
- * sub-devices below.
|
||||
+ * Need platform type detection first, then the platform
|
||||
+ * device. It is used as a parent for the sub-devices below.
|
||||
*/
|
||||
+ asus->is_pega_lucid = asus_check_pega_lucid(asus);
|
||||
result = asus_platform_init(asus);
|
||||
if (result)
|
||||
goto fail_platform;
|
||||
@@ -1465,9 +1789,21 @@ static int __devinit asus_acpi_add(struct acpi_device *device)
|
||||
if (result)
|
||||
goto fail_rfkill;
|
||||
|
||||
+ result = pega_accel_init(asus);
|
||||
+ if (result && result != -ENODEV)
|
||||
+ goto fail_pega_accel;
|
||||
+
|
||||
+ result = pega_rfkill_init(asus);
|
||||
+ if (result && result != -ENODEV)
|
||||
+ goto fail_pega_rfkill;
|
||||
+
|
||||
asus_device_present = true;
|
||||
return 0;
|
||||
|
||||
+fail_pega_rfkill:
|
||||
+ pega_accel_exit(asus);
|
||||
+fail_pega_accel:
|
||||
+ asus_rfkill_exit(asus);
|
||||
fail_rfkill:
|
||||
asus_led_exit(asus);
|
||||
fail_led:
|
||||
@@ -1491,6 +1827,8 @@ static int asus_acpi_remove(struct acpi_device *device, int type)
|
||||
asus_rfkill_exit(asus);
|
||||
asus_led_exit(asus);
|
||||
asus_input_exit(asus);
|
||||
+ pega_accel_exit(asus);
|
||||
+ pega_rfkill_exit(asus);
|
||||
asus_platform_exit(asus);
|
||||
|
||||
kfree(asus->name);
|
@ -1,62 +0,0 @@
|
||||
From 15ac2b08a2fd0f4aacbe8ae39788252fea6fbe63 Mon Sep 17 00:00:00 2001
|
||||
From: Xander Hover <LKML@hover.be>
|
||||
Date: Wed, 23 Nov 2011 16:40:31 -0500
|
||||
Subject: [PATCH] b44: Use dev_kfree_skb_irq() in b44_tx()
|
||||
|
||||
Reported issues when using dev_kfree_skb() on UP systems and
|
||||
systems with low numbers of cores. dev_kfree_skb_irq() will
|
||||
properly save IRQ state before freeing the skb.
|
||||
|
||||
Tested on 3.1.1 and 3.2_rc2
|
||||
|
||||
Example of reproducible trace of kernel 3.1.1
|
||||
------------[ cut here ]------------
|
||||
WARNING: at kernel/softirq.c:159 local_bh_enable+0x32/0x79()
|
||||
...
|
||||
Pid: 0, comm: swapper Not tainted 3.1.1-gentoo #1
|
||||
Call Trace:
|
||||
[<c1022970>] warn_slowpath_common+0x65/0x7a
|
||||
[<c102699e>] ? local_bh_enable+0x32/0x79
|
||||
[<c1022994>] warn_slowpath_null+0xf/0x13
|
||||
[<c102699e>] local_bh_enable+0x32/0x79
|
||||
[<c134bfd8>] destroy_conntrack+0x7c/0x9b
|
||||
[<c134890b>] nf_conntrack_destroy+0x1f/0x26
|
||||
[<c132e3a6>] skb_release_head_state+0x74/0x83
|
||||
[<c132e286>] __kfree_skb+0xb/0x6b
|
||||
[<c132e30a>] consume_skb+0x24/0x26
|
||||
[<c127c925>] b44_poll+0xaa/0x449
|
||||
[<c1333ca1>] net_rx_action+0x3f/0xea
|
||||
[<c1026a44>] __do_softirq+0x5f/0xd5
|
||||
[<c10269e5>] ? local_bh_enable+0x79/0x79
|
||||
<IRQ> [<c1026c32>] ? irq_exit+0x34/0x8d
|
||||
[<c1003628>] ? do_IRQ+0x74/0x87
|
||||
[<c13f5329>] ? common_interrupt+0x29/0x30
|
||||
[<c1006e18>] ? default_idle+0x29/0x3e
|
||||
[<c10015a7>] ? cpu_idle+0x2f/0x5d
|
||||
[<c13e91c5>] ? rest_init+0x79/0x7b
|
||||
[<c15c66a9>] ? start_kernel+0x297/0x29c
|
||||
[<c15c60b0>] ? i386_start_kernel+0xb0/0xb7
|
||||
---[ end trace 583f33bb1aa207a9 ]---
|
||||
|
||||
Signed-off-by: Xander Hover <LKML@hover.be>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/broadcom/b44.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
|
||||
index 4cf835d..3fb66d0 100644
|
||||
--- a/drivers/net/b44.c
|
||||
+++ b/drivers/net/b44.c
|
||||
@@ -608,7 +608,7 @@ static void b44_tx(struct b44 *bp)
|
||||
skb->len,
|
||||
DMA_TO_DEVICE);
|
||||
rp->skb = NULL;
|
||||
- dev_kfree_skb(skb);
|
||||
+ dev_kfree_skb_irq(skb);
|
||||
}
|
||||
|
||||
bp->tx_cons = cons;
|
||||
--
|
||||
1.7.7.4
|
||||
|
@ -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 @@
|
||||
cciss: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler
|
||||
|
||||
From: Stephen M. Cameron <scameron@beardog.cce.hp.com>
|
||||
|
||||
[ 3.1.x backport ]
|
||||
|
||||
IRQF_SHARED is required for older controllers that don't support MSI(X)
|
||||
and which may end up sharing an interrupt.
|
||||
|
||||
Also remove deprecated IRQF_DISABLED.
|
||||
|
||||
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
|
||||
---
|
||||
drivers/block/cciss.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
RHBZ 754907
|
||||
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
|
||||
index 8004ac3..6f22ed0 100644
|
||||
--- a/drivers/block/cciss.c
|
||||
+++ b/drivers/block/cciss.c
|
||||
@@ -4880,7 +4880,7 @@ static int cciss_request_irq(ctlr_info_t *h,
|
||||
{
|
||||
if (h->msix_vector || h->msi_vector) {
|
||||
if (!request_irq(h->intr[PERF_MODE_INT], msixhandler,
|
||||
- IRQF_DISABLED, h->devname, h))
|
||||
+ 0, h->devname, h))
|
||||
return 0;
|
||||
dev_err(&h->pdev->dev, "Unable to get msi irq %d"
|
||||
" for %s\n", h->intr[h->intr_mode],
|
||||
@@ -4889,7 +4889,7 @@ static int cciss_request_irq(ctlr_info_t *h,
|
||||
}
|
||||
|
||||
if (!request_irq(h->intr[PERF_MODE_INT], intxhandler,
|
||||
- IRQF_DISABLED, h->devname, h))
|
||||
+ IRQF_SHARED, h->devname, h))
|
||||
return 0;
|
||||
dev_err(&h->pdev->dev, "Unable to get irq %d for %s\n",
|
||||
h->intr[h->intr_mode], h->devname);
|
@ -1,6 +1,6 @@
|
||||
diff -up compat-wireless-3.2-rc6-3/config.mk.orig compat-wireless-3.2-rc6-3/config.mk
|
||||
--- compat-wireless-3.2-rc6-3/config.mk.orig 2012-01-03 09:41:57.090827042 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/config.mk 2012-01-03 09:42:19.259549896 -0500
|
||||
diff -up compat-wireless-2011-12-18/config.mk.orig compat-wireless-2011-12-18/config.mk
|
||||
--- compat-wireless-2011-12-18/config.mk.orig 2012-01-05 13:54:21.214595837 -0500
|
||||
+++ compat-wireless-2011-12-18/config.mk 2012-01-05 13:54:35.668415136 -0500
|
||||
@@ -14,6 +14,9 @@ else
|
||||
include $(KLIB_BUILD)/.config
|
||||
endif
|
||||
@ -10,8 +10,8 @@ diff -up compat-wireless-3.2-rc6-3/config.mk.orig compat-wireless-3.2-rc6-3/conf
|
||||
+
|
||||
ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
|
||||
|
||||
COMPAT_LATEST_VERSION = 1
|
||||
@@ -353,7 +356,7 @@ ifdef CONFIG_CRC_CCITT
|
||||
COMPAT_LATEST_VERSION = 3
|
||||
@@ -395,7 +398,7 @@ ifdef CONFIG_CRC_CCITT
|
||||
CONFIG_RT2800PCI=m
|
||||
CONFIG_RT2800PCI_RT33XX=y
|
||||
CONFIG_RT2800PCI_RT35XX=y
|
||||
@ -20,7 +20,7 @@ diff -up compat-wireless-3.2-rc6-3/config.mk.orig compat-wireless-3.2-rc6-3/conf
|
||||
endif #CONFIG_CRC_CCITT
|
||||
NEED_RT2X00=y
|
||||
|
||||
@@ -481,7 +484,7 @@ ifdef CONFIG_CRC_CCITT
|
||||
@@ -525,7 +528,7 @@ ifdef CONFIG_CRC_CCITT
|
||||
CONFIG_RT2800USB=m
|
||||
CONFIG_RT2800USB_RT33XX=y
|
||||
CONFIG_RT2800USB_RT35XX=y
|
||||
@ -29,17 +29,15 @@ diff -up compat-wireless-3.2-rc6-3/config.mk.orig compat-wireless-3.2-rc6-3/conf
|
||||
CONFIG_RT2800USB_UNKNOWN=y
|
||||
endif #CONFIG_CRC_CCITT
|
||||
CONFIG_RT2X00_LIB_USB=m
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/misc/eeprom/Makefile.orig compat-wireless-3.2-rc6-3/drivers/misc/eeprom/Makefile
|
||||
--- compat-wireless-3.2-rc6-3/drivers/misc/eeprom/Makefile.orig 2012-01-03 09:41:57.104826867 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/misc/eeprom/Makefile 2012-01-03 09:42:03.468747311 -0500
|
||||
@@ -1,3 +1,3 @@
|
||||
diff -up compat-wireless-2011-12-18/drivers/misc/eeprom/Makefile.orig compat-wireless-2011-12-18/drivers/misc/eeprom/Makefile
|
||||
--- compat-wireless-2011-12-18/drivers/misc/eeprom/Makefile.orig 2012-01-05 13:54:21.214595837 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/misc/eeprom/Makefile 2012-01-05 13:54:27.274520077 -0500
|
||||
@@ -1 +1 @@
|
||||
-obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
|
||||
+#obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
|
||||
obj-$(CONFIG_EEPROM_93XX46) += eeprom_93xx46.o
|
||||
obj-$(CONFIG_EEPROM_DIGSY_MTC_CFG) += digsy_mtc_eeprom.o
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/ethernet/atheros/Makefile.orig compat-wireless-3.2-rc6-3/drivers/net/ethernet/atheros/Makefile
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/ethernet/atheros/Makefile.orig 2012-01-03 09:41:57.107826831 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/ethernet/atheros/Makefile 2012-01-03 09:42:03.469747299 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/ethernet/atheros/Makefile.orig compat-wireless-2011-12-18/drivers/net/ethernet/atheros/Makefile
|
||||
--- compat-wireless-2011-12-18/drivers/net/ethernet/atheros/Makefile.orig 2012-01-05 13:54:21.215595824 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/ethernet/atheros/Makefile 2012-01-05 13:54:27.275520064 -0500
|
||||
@@ -2,7 +2,7 @@
|
||||
# Makefile for the Atheros network device drivers.
|
||||
#
|
||||
@ -52,9 +50,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/ethernet/atheros/Makefile.orig co
|
||||
+#obj-$(CONFIG_ATL2) += atlx/
|
||||
+#obj-$(CONFIG_ATL1E) += atl1e/
|
||||
+#obj-$(CONFIG_ATL1C) += atl1c/
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/usb/Makefile.orig compat-wireless-3.2-rc6-3/drivers/net/usb/Makefile
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/usb/Makefile.orig 2012-01-03 09:41:57.108826819 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/usb/Makefile 2012-01-03 09:42:03.469747299 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/usb/Makefile.orig compat-wireless-2011-12-18/drivers/net/usb/Makefile
|
||||
--- compat-wireless-2011-12-18/drivers/net/usb/Makefile.orig 2012-01-05 13:54:21.215595824 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/usb/Makefile 2012-01-05 13:54:27.275520064 -0500
|
||||
@@ -2,7 +2,7 @@
|
||||
# Makefile for USB Network drivers
|
||||
#
|
||||
@ -66,9 +64,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/usb/Makefile.orig compat-wireless
|
||||
+#obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o
|
||||
+#obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o
|
||||
|
||||
diff -up compat-wireless-3.2-rc6-3/Makefile.orig compat-wireless-3.2-rc6-3/Makefile
|
||||
--- compat-wireless-3.2-rc6-3/Makefile.orig 2012-01-03 09:41:57.109826807 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/Makefile 2012-01-03 09:42:03.470747287 -0500
|
||||
diff -up compat-wireless-2011-12-18/Makefile.orig compat-wireless-2011-12-18/Makefile
|
||||
--- compat-wireless-2011-12-18/Makefile.orig 2012-01-05 13:54:21.216595811 -0500
|
||||
+++ compat-wireless-2011-12-18/Makefile 2012-01-05 13:54:27.276520051 -0500
|
||||
@@ -8,8 +8,8 @@ endif
|
||||
export KLIB_BUILD ?= $(KLIB)/build
|
||||
# Sometimes not available in the path
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -up compat-wireless-3.2-rc6-3/compat/crc8.c.orig compat-wireless-3.2-rc6-3/compat/crc8.c
|
||||
--- compat-wireless-3.2-rc6-3/compat/crc8.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/compat/crc8.c 2012-01-05 14:17:19.613363481 -0500
|
||||
diff -up compat-wireless-2011-12-18/compat/crc8.c.orig compat-wireless-2011-12-18/compat/crc8.c
|
||||
--- compat-wireless-2011-12-18/compat/crc8.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/compat/crc8.c 2012-01-05 13:40:29.271996550 -0500
|
||||
@@ -14,6 +14,7 @@
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
@ -9,9 +9,9 @@ diff -up compat-wireless-3.2-rc6-3/compat/crc8.c.orig compat-wireless-3.2-rc6-3/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/bcma/bcma_private.h.orig compat-wireless-3.2-rc6-3/drivers/bcma/bcma_private.h
|
||||
--- compat-wireless-3.2-rc6-3/drivers/bcma/bcma_private.h.orig 2011-12-19 22:45:13.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/bcma/bcma_private.h 2012-01-05 14:17:19.614363468 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/bcma/bcma_private.h.orig compat-wireless-2011-12-18/drivers/bcma/bcma_private.h
|
||||
--- compat-wireless-2011-12-18/drivers/bcma/bcma_private.h.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/bcma/bcma_private.h 2012-01-05 13:40:29.271996550 -0500
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef LINUX_BCMA_PRIVATE_H_
|
||||
#define LINUX_BCMA_PRIVATE_H_
|
||||
@ -20,9 +20,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/bcma/bcma_private.h.orig compat-wirel
|
||||
#ifndef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
#endif
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/ethernet/broadcom/b44.c.orig compat-wireless-3.2-rc6-3/drivers/net/ethernet/broadcom/b44.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/ethernet/broadcom/b44.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/ethernet/broadcom/b44.c 2012-01-05 14:17:19.615363455 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c.orig compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c 2012-01-05 13:40:29.273996525 -0500
|
||||
@@ -10,6 +10,7 @@
|
||||
* Distribute under GPL.
|
||||
*/
|
||||
@ -31,11 +31,31 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/ethernet/broadcom/b44.c.orig comp
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/brcm80211/brcmsmac/dma.c
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl3945-base.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl3945-base.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl3945-base.c.orig 2012-01-05 14:19:37.561638888 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl3945-base.c 2012-01-05 14:19:45.500539640 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig 2012-01-05 13:44:54.137685272 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c 2012-01-05 13:44:56.589654617 -0500
|
||||
@@ -16,6 +16,7 @@
|
||||
* File contents: support functions for PCI/PCIe
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/delay.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig 2012-01-05 13:44:23.579067307 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c 2012-01-05 13:44:43.324820451 -0500
|
||||
@@ -14,6 +14,7 @@
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/slab.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c.orig compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c.orig 2012-01-05 13:41:22.852326703 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c 2012-01-05 13:41:31.209222227 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -44,9 +64,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl3945-base.c.
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl4965-base.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl4965-base.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl4965-base.c.orig 2012-01-05 14:19:25.875784981 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl4965-base.c 2012-01-05 14:19:31.017720699 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c.orig compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c.orig 2012-01-05 13:41:47.962012787 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c 2012-01-05 13:41:41.547092984 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -55,9 +75,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/iwlegacy/iwl4965-base.c.
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/cfg.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/cfg.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/cfg.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/cfg.c 2012-01-05 14:17:22.706324811 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c 2012-01-05 13:40:44.681803897 -0500
|
||||
@@ -6,6 +6,7 @@
|
||||
*
|
||||
*/
|
||||
@ -66,9 +86,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/cfg.c.orig comp
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_cs.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_cs.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_cs.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_cs.c 2012-01-05 14:17:22.707324799 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c 2012-01-05 13:40:44.682803885 -0500
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
*/
|
||||
@ -77,9 +97,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_cs.c.orig co
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_sdio.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_sdio.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_sdio.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_sdio.c 2012-01-05 14:17:22.709324775 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c.orig 2011-12-18 16:10:36.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c 2012-01-05 13:40:44.683803873 -0500
|
||||
@@ -26,6 +26,7 @@
|
||||
* if_sdio_card_to_host() to pad the data.
|
||||
*/
|
||||
@ -88,9 +108,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_sdio.c.orig
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_spi.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_spi.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_spi.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_spi.c 2012-01-05 14:17:22.710324763 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c 2012-01-05 13:40:44.685803849 -0500
|
||||
@@ -17,6 +17,7 @@
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
@ -99,9 +119,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_spi.c.orig c
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_usb.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_usb.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_usb.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_usb.c 2012-01-05 14:17:22.711324751 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c 2012-01-05 13:40:44.686803837 -0500
|
||||
@@ -2,6 +2,7 @@
|
||||
* This file contains functions used in USB interface module.
|
||||
*/
|
||||
@ -110,9 +130,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/if_usb.c.orig c
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/delay.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/main.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/main.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/main.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/main.c 2012-01-05 14:17:22.712324738 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c 2012-01-05 13:40:44.687803825 -0500
|
||||
@@ -4,6 +4,7 @@
|
||||
* thread etc..
|
||||
*/
|
||||
@ -121,17 +141,17 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/main.c.orig com
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/mesh.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/mesh.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/mesh.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/mesh.c 2012-01-05 14:17:22.713324725 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c 2012-01-05 13:40:44.688803813 -0500
|
||||
@@ -1,3 +1,4 @@
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/delay.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/rx.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/rx.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/rx.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/rx.c 2012-01-05 14:17:22.714324712 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c 2012-01-05 13:40:44.689803801 -0500
|
||||
@@ -2,6 +2,7 @@
|
||||
* This file contains the handling of RX in wlan driver.
|
||||
*/
|
||||
@ -140,9 +160,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas/rx.c.orig compa
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/etherdevice.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/cmd.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/cmd.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/cmd.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/cmd.c 2012-01-05 14:17:22.715324699 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c 2012-01-05 13:40:44.690803789 -0500
|
||||
@@ -7,6 +7,7 @@
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
@ -151,9 +171,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/cmd.c.orig c
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/if_usb.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/if_usb.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/if_usb.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/if_usb.c 2012-01-05 14:17:22.716324687 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c 2012-01-05 13:40:44.691803776 -0500
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
#define DRV_NAME "lbtf_usb"
|
||||
@ -162,9 +182,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/if_usb.c.ori
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "libertas_tf.h"
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/main.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/main.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/main.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/main.c 2012-01-05 14:17:22.717324675 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c 2012-01-05 13:40:44.692803763 -0500
|
||||
@@ -7,6 +7,7 @@
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
@ -173,9 +193,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/libertas_tf/main.c.orig
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/base.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/base.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/base.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/base.c 2012-01-05 14:17:22.719324651 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c 2012-01-05 13:40:44.693803750 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -184,9 +204,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/base.c.orig comp
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/ip.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/cam.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/cam.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/cam.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/cam.c 2012-01-05 14:17:22.719324651 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c 2012-01-05 13:40:44.694803737 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -195,9 +215,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/cam.c.orig compa
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/export.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-05 14:17:22.720324638 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-05 13:40:44.694803737 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -206,9 +226,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192c/fw_comm
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/firmware.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c 2012-01-05 14:17:22.722324612 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c 2012-01-05 13:40:44.695803725 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -217,9 +237,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.o
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c 2012-01-05 14:17:22.724324587 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c 2012-01-05 13:40:44.695803725 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
@ -228,9 +248,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192de/sw.c 2012-01-05 14:17:22.724324587 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c 2012-01-05 13:40:44.695803725 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -239,9 +259,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.o
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/vmalloc.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2012-01-05 14:17:22.725324575 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2012-01-05 13:40:44.696803713 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -250,9 +270,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.o
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/phy.c 2012-01-05 14:17:22.726324563 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c 2012-01-05 13:40:44.696803713 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -261,9 +281,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/rf.c 2012-01-05 14:17:22.726324563 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c 2012-01-05 13:40:44.697803701 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -272,9 +292,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.o
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/sw.c 2012-01-05 14:17:22.726324563 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c 2012-01-05 13:40:44.697803701 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -283,9 +303,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.o
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/vmalloc.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/usb.c.orig compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/usb.c
|
||||
--- compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/usb.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/usb.c 2012-01-05 14:17:22.727324551 -0500
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c 2012-01-05 13:40:44.697803701 -0500
|
||||
@@ -25,6 +25,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -294,9 +314,9 @@ diff -up compat-wireless-3.2-rc6-3/drivers/net/wireless/rtlwifi/usb.c.orig compa
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/usb.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/net/wireless/core.c.orig compat-wireless-3.2-rc6-3/net/wireless/core.c
|
||||
--- compat-wireless-3.2-rc6-3/net/wireless/core.c.orig 2011-12-19 22:45:14.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/net/wireless/core.c 2012-01-05 14:17:22.727324551 -0500
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/core.c.orig compat-wireless-2011-12-18/net/wireless/core.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/core.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/core.c 2012-01-05 13:40:44.698803689 -0500
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
|
||||
*/
|
||||
@ -305,9 +325,9 @@ diff -up compat-wireless-3.2-rc6-3/net/wireless/core.c.orig compat-wireless-3.2-
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/if.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/net/wireless/lib80211.c.orig compat-wireless-3.2-rc6-3/net/wireless/lib80211.c
|
||||
--- compat-wireless-3.2-rc6-3/net/wireless/lib80211.c.orig 2011-12-19 22:45:13.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/net/wireless/lib80211.c 2012-01-05 14:17:22.727324551 -0500
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/lib80211.c.orig compat-wireless-2011-12-18/net/wireless/lib80211.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/lib80211.c.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/lib80211.c 2012-01-05 13:40:44.698803689 -0500
|
||||
@@ -13,6 +13,7 @@
|
||||
*
|
||||
*/
|
||||
@ -316,9 +336,9 @@ diff -up compat-wireless-3.2-rc6-3/net/wireless/lib80211.c.orig compat-wireless-
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/net/wireless/lib80211_crypt_tkip.c.orig compat-wireless-3.2-rc6-3/net/wireless/lib80211_crypt_tkip.c
|
||||
--- compat-wireless-3.2-rc6-3/net/wireless/lib80211_crypt_tkip.c.orig 2011-12-19 22:45:13.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/net/wireless/lib80211_crypt_tkip.c 2012-01-05 14:17:22.727324551 -0500
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c.orig compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c 2012-01-05 13:40:44.698803689 -0500
|
||||
@@ -10,6 +10,7 @@
|
||||
* more details.
|
||||
*/
|
||||
@ -327,9 +347,9 @@ diff -up compat-wireless-3.2-rc6-3/net/wireless/lib80211_crypt_tkip.c.orig compa
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/err.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/net/wireless/reg.c.orig compat-wireless-3.2-rc6-3/net/wireless/reg.c
|
||||
--- compat-wireless-3.2-rc6-3/net/wireless/reg.c.orig 2011-12-19 22:45:13.000000000 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/net/wireless/reg.c 2012-01-05 14:17:22.728324538 -0500
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/reg.c.orig compat-wireless-2011-12-18/net/wireless/reg.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/reg.c.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/reg.c 2012-01-05 13:40:44.699803676 -0500
|
||||
@@ -33,6 +33,7 @@
|
||||
*
|
||||
*/
|
||||
@ -338,9 +358,9 @@ diff -up compat-wireless-3.2-rc6-3/net/wireless/reg.c.orig compat-wireless-3.2-r
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-3.2-rc6-3/patches/98-pr_fmt.patch.orig compat-wireless-3.2-rc6-3/patches/98-pr_fmt.patch
|
||||
--- compat-wireless-3.2-rc6-3/patches/98-pr_fmt.patch.orig 2012-01-05 14:17:22.728324538 -0500
|
||||
+++ compat-wireless-3.2-rc6-3/patches/98-pr_fmt.patch 2012-01-05 14:17:22.728324538 -0500
|
||||
diff -up compat-wireless-2011-12-18/patches/98-pr_fmt.patch.orig compat-wireless-2011-12-18/patches/98-pr_fmt.patch
|
||||
--- compat-wireless-2011-12-18/patches/98-pr_fmt.patch.orig 2012-01-05 13:39:36.552655633 -0500
|
||||
+++ compat-wireless-2011-12-18/patches/98-pr_fmt.patch 2012-01-05 13:39:36.553655620 -0500
|
||||
@@ -0,0 +1,346 @@
|
||||
+The way the compat-* header files are included causes the default
|
||||
+pr_fmt definition from <linux/kernel.h> to be evaluated for every file.
|
||||
|
@ -1,45 +1,13 @@
|
||||
A recent LKML thread (http://lkml.indiana.edu/hypermail/linux/kernel/1112.3/00965.html)
|
||||
discusses warnings that occur during a suspend/resume cycle. The driver
|
||||
attempts to read the firmware file before userspace is ready, leading to the
|
||||
following warning:
|
||||
|
||||
WARNING: at drivers/base/firmware_class.c:537 _request_firmware+0x3f6/0x420()
|
||||
|
||||
For rtl8192cu, the problem is fixed by storing the firmware in a global buffer
|
||||
rather than one allocated per device. The usage count is increased when
|
||||
suspending and decreased when resuming. This way, the firmware is retained
|
||||
through a suspend/resume cycle, and does not have to be reread.
|
||||
|
||||
This patch should fix the bug reported in
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=771002.
|
||||
|
||||
Note: This patch also touches rtl8192ce as the "firmware" loaded message
|
||||
is now printed in the wrong place.
|
||||
Note: This patch also touches rtl8192ce as the "firmware" loaded message
|
||||
is now printed in the wrong place.
|
||||
|
||||
Reported-by: Mohammed Arafa <bugzilla@xxxxxxxxxxxx>
|
||||
Reported-by: Dave Jones <davej@xxxxxxxxxx>
|
||||
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
|
||||
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
|
||||
Cc: Stable <stable@xxxxxxxxxxxxxxx>
|
||||
|
||||
---
|
||||
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 1 -
|
||||
drivers/net/wireless/rtlwifi/rtl8192ce/sw.c | 1 +
|
||||
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 58 +++++++++++++++++----
|
||||
3 files changed, 49 insertions(+), 11 deletions(-)
|
||||
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-13 13:07:58.830625006 -0500
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-13 13:08:06.825439927 -0500
|
||||
@@ -227,7 +227,6 @@ int rtl92c_download_fw(struct ieee80211_
|
||||
u32 fwsize;
|
||||
enum version_8192c version = rtlhal->version;
|
||||
|
||||
- pr_info("Loading firmware file %s\n", rtlpriv->cfg->fw_name);
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
@@ -265,7 +265,6 @@ int rtl92c_download_fw(struct ieee80211_
|
||||
if (!rtlhal->pfirmware)
|
||||
return 1;
|
||||
|
||||
- pr_info("Loading firmware file %s\n", rtlpriv->cfg->fw_name);
|
||||
pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
|
||||
pfwdata = (u8 *) rtlhal->pfirmware;
|
||||
fwsize = rtlhal->fwsize;
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
@@ -186,6 +186,7 @@ int rtl92c_init_sw_vars(struct ieee80211
|
||||
|
@ -142,8 +142,6 @@ CONFIG_SPARSE_IRQ=y
|
||||
|
||||
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
|
||||
|
||||
CONFIG_FTMAC100=m
|
||||
|
||||
CONFIG_HWSPINLOCK_OMAP=m
|
||||
|
||||
CONFIG_USE_OF=y
|
||||
@ -154,7 +152,17 @@ CONFIG_MMC_SDHCI_OF=m
|
||||
CONFIG_MMC_SDHCI_PXAV3=m
|
||||
CONFIG_MMC_SDHCI_PXAV2=m
|
||||
|
||||
CONFIG_FTGMAC100=m
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_PL330_DMA=y
|
||||
# CONFIG_ARM_KPROBES_TEST is not set
|
||||
# CONFIG_ARM_ATAG_DTB_COMPAT is not set
|
||||
|
||||
# CONFIG_FTGMAC100 is not set
|
||||
# CONFIG_FTMAC100 is not set
|
||||
#
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=32768
|
||||
|
||||
# disable TPM on arm at least on the trimslices it causes havoc
|
||||
# CONFIG_TCG_TPM is not set
|
||||
@ -171,3 +179,18 @@ CONFIG_FTGMAC100=m
|
||||
# CONFIG_DRM_RADEON is not set
|
||||
# CONFIG_ATM_HE is not set
|
||||
# CONFIG_SCSI_ACARD is not set
|
||||
|
||||
# these all currently fail due to missing symbols __bad_udelay or
|
||||
# error: implicit declaration of function ‘iowrite32be’
|
||||
# CONFIG_SND_ALI5451 is not set
|
||||
# CONFIG_DRM_NOUVEAU is not set
|
||||
# CONFIG_MLX4_EN is not set
|
||||
|
||||
# FIXME: Guesses, need checking
|
||||
# CONFIG_MACH_EUKREA_CPUIMX35SD is not set
|
||||
CONFIG_ARM_ERRATA_720789=y
|
||||
CONFIG_ARM_ERRATA_751472=y
|
||||
# CONFIG_FB_MX3 is not set
|
||||
# CONFIG_MX3_IPU is not set
|
||||
# CONFIG_MX3_IPU_IRQS is not set
|
||||
|
||||
|
@ -1,3 +1,16 @@
|
||||
ONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEBUG=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||
CONFIG_CPU_FREQ_TABLE=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||
|
@ -93,3 +93,6 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||
CONFIG_CPU_FREQ_TABLE=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||
|
||||
CONFIG_PL310_ERRATA_769419=y
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
|
@ -40,4 +40,4 @@ CONFIG_RTC_DRV_MV=m
|
||||
CONFIG_MV_XOR=y
|
||||
CONFIG_CRYPTO_DEV_MV_CESA=m
|
||||
|
||||
|
||||
# CONFIG_TOUCHSCREEN_EETI is not set
|
||||
|
@ -148,7 +148,6 @@ CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
# CONFIG_CC_STACKPROTECTOR is not set
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
@ -183,10 +182,6 @@ CONFIG_PM_SLEEP_SMP=y
|
||||
# CONFIG_APM_EMULATION is not set
|
||||
CONFIG_ARCH_HAS_OPP=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
# CONFIG_IP_PNP_RARP is not set
|
||||
# CONFIG_NET_IPGRE_DEMUX is not set
|
||||
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
|
||||
# CONFIG_ARPD is not set
|
||||
@ -412,7 +407,6 @@ CONFIG_SERIAL_8250_DETECT_IRQ=y
|
||||
CONFIG_SERIAL_OMAP=y
|
||||
CONFIG_SERIAL_OMAP_CONSOLE=y
|
||||
# CONFIG_SERIAL_IFX6X60 is not set
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
# CONFIG_R3964 is not set
|
||||
@ -448,7 +442,6 @@ CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_GPIO_GENERIC_PLATFORM is not set
|
||||
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
@ -624,12 +617,6 @@ CONFIG_REGULATOR_TWL4030=y
|
||||
# CONFIG_REGULATOR_ISL6271A is not set
|
||||
# CONFIG_REGULATOR_AD5398 is not set
|
||||
# CONFIG_REGULATOR_TPS6524X is not set
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_RC_CORE=y
|
||||
CONFIG_LIRC=y
|
||||
CONFIG_IR_RC5_SZ_DECODER=y
|
||||
CONFIG_IR_LIRC_CODEC=y
|
||||
# CONFIG_RC_LOOPBACK is not set
|
||||
CONFIG_VIDEOBUF_DMA_CONTIG=m
|
||||
CONFIG_V4L2_MEM2MEM_DEV=m
|
||||
# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
|
||||
@ -806,25 +793,6 @@ CONFIG_SND_SOC_TLV320AIC3X=y
|
||||
CONFIG_SND_SOC_TWL4030=y
|
||||
CONFIG_SND_SOC_TWL6040=y
|
||||
# CONFIG_SOUND_PRIME is not set
|
||||
CONFIG_HID=y
|
||||
CONFIG_HID_3M_PCT=m
|
||||
CONFIG_HID_A4TECH=m
|
||||
# CONFIG_HID_ACRUX is not set
|
||||
CONFIG_HID_APPLE=m
|
||||
CONFIG_HID_BELKIN=m
|
||||
CONFIG_HID_CHERRY=m
|
||||
CONFIG_HID_CHICONY=m
|
||||
CONFIG_HID_CYPRESS=m
|
||||
CONFIG_HID_EZKEY=m
|
||||
CONFIG_HID_KYE=m
|
||||
CONFIG_HID_KENSINGTON=m
|
||||
CONFIG_HID_LOGITECH=m
|
||||
CONFIG_HID_MICROSOFT=m
|
||||
CONFIG_HID_MOSART=m
|
||||
CONFIG_HID_MONTEREY=m
|
||||
CONFIG_HID_NTRIG=m
|
||||
CONFIG_HID_QUANTA=m
|
||||
CONFIG_HID_STANTUM=m
|
||||
# CONFIG_HID_TIVO_SLIDE is not set
|
||||
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
|
||||
# CONFIG_USB_DEVICEFS is not set
|
||||
@ -991,11 +959,6 @@ CONFIG_QUOTA_TREE=m
|
||||
CONFIG_QFMT_V1=m
|
||||
CONFIG_QFMT_V2=m
|
||||
CONFIG_AUTOFS4_FS=m
|
||||
CONFIG_ISO9660_FS=m
|
||||
CONFIG_FAT_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
||||
# CONFIG_NTFS_DEBUG is not set
|
||||
# CONFIG_NTFS_RW is not set
|
||||
# CONFIG_JFFS2_SUMMARY is not set
|
||||
@ -1063,9 +1026,6 @@ CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_DEBUG_ICEDCC is not set
|
||||
CONFIG_OC_ETM=y
|
||||
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=0
|
||||
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
|
||||
# CONFIG_IMA is not set
|
||||
CONFIG_CRYPTO_AEAD=m
|
||||
CONFIG_CRYPTO_RNG=m
|
||||
@ -1099,3 +1059,27 @@ CONFIG_LIBCRC32C=y
|
||||
# CONFIG_USB_HSO is not set
|
||||
|
||||
CONFIG_CRYSTALHD=m
|
||||
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
|
||||
CONFIG_MACH_OMAP_GENERIC=y
|
||||
CONFIG_PL310_ERRATA_753970=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_ETHERNET=y
|
||||
CONFIG_NET_VENDOR_BROADCOM=y
|
||||
CONFIG_NET_VENDOR_MICROCHIP=y
|
||||
CONFIG_SENSORS_AD7314=m
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_VIDEO_MT9P031=m
|
||||
CONFIG_VIDEO_MT9T001=m
|
||||
CONFIG_VIDEO_S5K6AA=m
|
||||
CONFIG_PANEL_DVI=m
|
||||
CONFIG_PANEL_PICODLP=m
|
||||
CONFIG_USB_RENESAS_USBHS=m
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
# CONFIG_OMAP_IOMMU is not set
|
||||
CONFIG_USB_RENESAS_USBHS_HCD=m
|
||||
|
||||
|
@ -83,3 +83,10 @@ CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||
|
||||
CONFIG_CRYSTALHD=m
|
||||
|
||||
CONFIG_MACH_VENTANA=y
|
||||
CONFIG_PL310_ERRATA_753970=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
|
@ -11,6 +11,11 @@
|
||||
# CONFIG_SSB is not set
|
||||
# CONFIG_B44 is not set
|
||||
|
||||
#
|
||||
# Prevent b43 and brcmsmac from competing
|
||||
#
|
||||
# CONFIG_B43_BCMA is not set
|
||||
|
||||
#
|
||||
# These have to be turned-on again since compat-wireless does not
|
||||
# provide them...
|
||||
|
@ -24,6 +24,7 @@ CONFIG_FAIL_MAKE_REQUEST=y
|
||||
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
||||
CONFIG_FAIL_IO_TIMEOUT=y
|
||||
CONFIG_FAIL_MMC_REQUEST=y
|
||||
|
||||
CONFIG_SLUB_DEBUG_ON=y
|
||||
|
||||
@ -81,7 +82,6 @@ CONFIG_CARL9170_DEBUGFS=y
|
||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||
|
||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
||||
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
|
||||
|
||||
CONFIG_DMADEVICES_DEBUG=y
|
||||
CONFIG_DMADEVICES_VDEBUG=y
|
||||
@ -99,9 +99,8 @@ CONFIG_KDB_KEYBOARD=y
|
||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
||||
CONFIG_TEST_LIST_SORT=y
|
||||
|
||||
CONFIG_DEBUG_SET_MODULE_RONX=y
|
||||
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
|
||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
||||
|
994
config-generic
994
config-generic
File diff suppressed because it is too large
Load Diff
@ -1,204 +0,0 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
#
|
||||
|
||||
#
|
||||
# Processor type and features
|
||||
#
|
||||
CONFIG_IA64=y
|
||||
CONFIG_64BIT=y
|
||||
# CONFIG_XEN is not set
|
||||
CONFIG_MMU=y
|
||||
CONFIG_EFI=y
|
||||
# CONFIG_ITANIUM is not set
|
||||
CONFIG_MCKINLEY=y
|
||||
CONFIG_IA64_GENERIC=y
|
||||
CONFIG_DMAR=y
|
||||
# CONFIG_IA64_DIG is not set
|
||||
# CONFIG_IA64_HP_ZX1 is not set
|
||||
# CONFIG_IA64_SGI_SN2 is not set
|
||||
CONFIG_IA64_ESI=y
|
||||
CONFIG_IA64_HP_AML_NFW=y
|
||||
CONFIG_MSPEC=y
|
||||
# CONFIG_IA64_HP_SIM is not set
|
||||
# CONFIG_IA64_PAGE_SIZE_4KB is not set
|
||||
# CONFIG_IA64_PAGE_SIZE_8KB is not set
|
||||
CONFIG_IA64_PAGE_SIZE_16KB=y
|
||||
# CONFIG_IA64_PAGE_SIZE_64KB is not set
|
||||
CONFIG_IA64_L1_CACHE_SHIFT=7
|
||||
CONFIG_NUMA=y
|
||||
# CONFIG_VIRTUAL_MEM_MAP is not set
|
||||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
CONFIG_IA64_MCA_RECOVERY=m
|
||||
CONFIG_IA64_CYCLONE=y
|
||||
CONFIG_MMTIMER=y
|
||||
CONFIG_IOSAPIC=y
|
||||
CONFIG_FORCE_MAX_ZONEORDER=18
|
||||
CONFIG_NR_CPUS=1024
|
||||
# CONFIG_IA32_SUPPORT is not set
|
||||
# CONFIG_COMPAT is not set
|
||||
CONFIG_PERFMON=y
|
||||
CONFIG_IA64_PALINFO=y
|
||||
CONFIG_EFI_VARS=y
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=16
|
||||
CONFIG_EFI_PCDP=y
|
||||
#
|
||||
# Block devices
|
||||
#
|
||||
# CONFIG_BLK_DEV_FD is not set
|
||||
|
||||
#
|
||||
# IDE chipset support/bugfixes
|
||||
#
|
||||
CONFIG_BLK_DEV_SGIIOC4=y
|
||||
|
||||
#
|
||||
# Character devices
|
||||
#
|
||||
CONFIG_TCG_INFINEON=m
|
||||
|
||||
#
|
||||
# Watchdog Cards
|
||||
#
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_GEN_RTC is not set
|
||||
CONFIG_EFI_RTC=y
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
|
||||
#
|
||||
# AGP
|
||||
#
|
||||
CONFIG_AGP_I460=y
|
||||
CONFIG_AGP_HP_ZX1=y
|
||||
CONFIG_AGP_SGI_TIOCA=y
|
||||
|
||||
#
|
||||
# HP Simulator drivers
|
||||
#
|
||||
# CONFIG_HP_SIMETH is not set
|
||||
# CONFIG_HP_SIMSERIAL is not set
|
||||
# CONFIG_HP_SIMSCSI is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_IA64_PRINT_HAZARDS is not set
|
||||
# CONFIG_DISABLE_VHPT is not set
|
||||
# CONFIG_IA64_DEBUG_CMPXCHG is not set
|
||||
# CONFIG_IA64_DEBUG_IRQ is not set
|
||||
|
||||
#
|
||||
# Memory Technology Devices (MTD)
|
||||
#
|
||||
# CONFIG_MTD is not set
|
||||
|
||||
#
|
||||
# SGI
|
||||
#
|
||||
CONFIG_SGI_SNSC=y
|
||||
CONFIG_SGI_TIOCX=y
|
||||
CONFIG_SGI_MBCS=m
|
||||
CONFIG_SGI_IOC3=m
|
||||
CONFIG_SGI_IOC4=y
|
||||
CONFIG_SGI_XP=m
|
||||
CONFIG_SGI_GRU=m
|
||||
# CONFIG_SGI_GRU_DEBUG is not set
|
||||
CONFIG_SERIAL_SGI_L1_CONSOLE=y
|
||||
CONFIG_SERIAL_SGI_IOC3=m
|
||||
CONFIG_SERIAL_SGI_IOC4=m
|
||||
|
||||
|
||||
#
|
||||
# SCSI low-level drivers
|
||||
#
|
||||
# CONFIG_SCSI_BUSLOGIC is not set
|
||||
|
||||
#
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ASUS is not set
|
||||
CONFIG_ACPI_PROCFS_POWER=y
|
||||
CONFIG_ACPI_SYSFS_POWER=y
|
||||
# CONFIG_ACPI_BATTERY is not set
|
||||
CONFIG_ACPI_BLACKLIST_YEAR=0
|
||||
CONFIG_ACPI_BUTTON=y
|
||||
# CONFIG_ACPI_DOCK is not set
|
||||
CONFIG_ACPI_FAN=y
|
||||
CONFIG_ACPI_HOTPLUG_MEMORY=y
|
||||
CONFIG_ACPI_NUMA=y
|
||||
CONFIG_ACPI_POWER=y
|
||||
CONFIG_ACPI_PROCESSOR=y
|
||||
CONFIG_ACPI_PROCFS=y
|
||||
CONFIG_ACPI_SLEEP=y
|
||||
CONFIG_ACPI_THERMAL=y
|
||||
# CONFIG_ACPI_TOSHIBA is not set
|
||||
CONFIG_ACPI_VIDEO=m
|
||||
# CONFIG_ACPI_PROC_EVENT is not set
|
||||
CONFIG_ACPI_HED=m
|
||||
CONFIG_ACPI_EC_DEBUGFS=m
|
||||
CONFIG_ACPI_IPMI=m
|
||||
CONFIG_ACPI_CUSTOM_METHOD=m
|
||||
CONFIG_SENSORS_ACPI_POWER=m
|
||||
|
||||
CONFIG_PM=y
|
||||
CONFIG_HOTPLUG_PCI=y
|
||||
# CONFIG_HPET is not set
|
||||
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||
CONFIG_HOTPLUG_PCI_SGI=m
|
||||
CONFIG_PNPACPI=y
|
||||
|
||||
CONFIG_SCHED_SMT=y
|
||||
|
||||
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
|
||||
|
||||
CONFIG_IA64_ACPI_CPUFREQ=m
|
||||
|
||||
# CONFIG_PERMIT_BSP_REMOVE is not set
|
||||
# CONFIG_FORCE_CPEI_RETARGET is not set
|
||||
|
||||
CONFIG_NODES_SHIFT=10
|
||||
|
||||
|
||||
CONFIG_HW_RANDOM_INTEL=m
|
||||
|
||||
CONFIG_CRASH_DUMP=y
|
||||
CONFIG_PROC_VMCORE=y
|
||||
|
||||
# drivers/media/video/usbvision/usbvision-i2c.c:64:39: error: macro "outb" passed 4 arguments, but takes just 2
|
||||
# CONFIG_VIDEO_USBVISION is not set
|
||||
|
||||
# CONFIG_IA64_MC_ERR_INJECT is not set
|
||||
|
||||
CONFIG_DMIID=y
|
||||
CONFIG_DMI_SYSFS=y
|
||||
|
||||
CONFIG_SENSORS_I5K_AMB=m
|
||||
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
|
||||
CONFIG_FRAME_WARN=2048
|
||||
|
||||
CONFIG_VIRT_CPU_ACCOUNTING=y
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_KVM=m
|
||||
CONFIG_KVM_INTEL=m
|
||||
|
||||
CONFIG_HP_ILO=m
|
||||
|
||||
CONFIG_PARAVIRT_GUEST=y
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
|
||||
|
||||
CONFIG_DMAR_DEFAULT_ON=y
|
||||
|
||||
CONFIG_RCU_FANOUT=64
|
||||
|
||||
CONFIG_ACPI_POWER_METER=m
|
||||
CONFIG_I2C_SCMI=m
|
||||
|
||||
# CONFIG_HP_ACCEL is not set
|
@ -24,6 +24,7 @@ CONFIG_CPUMASK_OFFSTACK=y
|
||||
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
|
||||
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
|
||||
# CONFIG_FAIL_IO_TIMEOUT is not set
|
||||
# CONFIG_FAIL_MMC_REQUEST is not set
|
||||
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
|
||||
@ -81,7 +82,6 @@ CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
||||
|
||||
# CONFIG_DEBUG_OBJECTS_WORK is not set
|
||||
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
|
||||
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||
@ -99,9 +99,8 @@ CONFIG_KDB_KEYBOARD=y
|
||||
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
|
||||
# CONFIG_DEBUG_SET_MODULE_RONX is not set
|
||||
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
|
||||
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
|
||||
|
@ -43,11 +43,11 @@ CONFIG_FB_MATROX=y
|
||||
CONFIG_FB_ATY128_BACKLIGHT=y
|
||||
CONFIG_FB_ATY_BACKLIGHT=y
|
||||
CONFIG_FB_RIVA_BACKLIGHT=y
|
||||
# FIXME: Do we care about this hardware ?
|
||||
CONFIG_FB_MB862XX=m
|
||||
CONFIG_FB_MB862XX_PCI_GDC=y
|
||||
CONFIG_FB_MB862XX_LIME=y
|
||||
CONFIG_FB_MB862XX_I2C=y
|
||||
# CONFIG_FB_MB862XX is not set
|
||||
# CONFIG_FB_MB862XX_PCI_GDC is not set
|
||||
# CONFIG_FB_MB862XX_LIME is not set
|
||||
# CONFIG_FB_MB862XX_I2C is not set
|
||||
|
||||
|
||||
CONFIG_SND_POWERMAC=m
|
||||
CONFIG_SND_POWERMAC_AUTO_DRC=y
|
||||
@ -182,8 +182,8 @@ CONFIG_EDAC_PASEMI=m
|
||||
CONFIG_EDAC_AMD8131=m
|
||||
CONFIG_EDAC_AMD8111=m
|
||||
|
||||
CONFIG_AXON_RAM=m
|
||||
CONFIG_OPROFILE_CELL=y
|
||||
# CONFIG_AXON_RAM is not set
|
||||
# CONFIG_OPROFILE_CELL is not set
|
||||
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
# CONFIG_IDEPCI_PCIBUS_ORDER is not set
|
||||
@ -204,9 +204,9 @@ CONFIG_DMADEVICES=y
|
||||
|
||||
CONFIG_SND_PPC=y
|
||||
|
||||
CONFIG_PPC_82xx=y
|
||||
CONFIG_PPC_83xx=y
|
||||
CONFIG_PPC_86xx=y
|
||||
# CONFIG_PPC_82xx is not set
|
||||
# CONFIG_PPC_83xx is not set
|
||||
# CONFIG_PPC_86xx is not set
|
||||
CONFIG_EXTRA_TARGETS=""
|
||||
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||
# CONFIG_FTR_FIXUP_SELFTEST is not set
|
||||
@ -220,27 +220,28 @@ 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
|
||||
# CONFIG_SERIO_XILINX_XPS_PS2 is not set
|
||||
|
||||
# CONFIG_PPC_SMLPAR is not set
|
||||
|
||||
CONFIG_MGCOGE=y
|
||||
CONFIG_GEF_SBC610=y
|
||||
CONFIG_GEF_PPC9A=y
|
||||
CONFIG_GEF_SBC310=y
|
||||
# CONFIG_MGCOGE is not set
|
||||
# CONFIG_GEF_SBC610 is not set
|
||||
# CONFIG_GEF_PPC9A is not set
|
||||
# CONFIG_GEF_SBC310 is not set
|
||||
|
||||
CONFIG_QUICC_ENGINE=y
|
||||
CONFIG_QE_GPIO=y
|
||||
CONFIG_MPC8xxx_GPIO=y
|
||||
# CONFIG_QUICC_ENGINE is not set
|
||||
# CONFIG_QE_GPIO is not set
|
||||
# CONFIG_MPC8xxx_GPIO is not set
|
||||
|
||||
CONFIG_IDE_GD=y
|
||||
CONFIG_IDE_GD_ATA=y
|
||||
CONFIG_IDE_GD_ATAPI=y
|
||||
|
||||
CONFIG_MCU_MPC8349EMITX=m
|
||||
# CONFIG_MCU_MPC8349EMITX is not set
|
||||
|
||||
CONFIG_GPIO_XILINX=y
|
||||
# CONFIG_GPIO_XILINX is not set
|
||||
|
||||
CONFIG_PMIC_DA903X=y
|
||||
CONFIG_BACKLIGHT_DA903X=m
|
||||
@ -261,11 +262,11 @@ CONFIG_TOUCHSCREEN_DA9034=m
|
||||
|
||||
CONFIG_SIMPLE_GPIO=y
|
||||
|
||||
CONFIG_FSL_PQ_MDIO=m
|
||||
# CONFIG_FSL_PQ_MDIO is not set
|
||||
|
||||
CONFIG_PS3_VRAM=m
|
||||
# CONFIG_PS3_VRAM is not set
|
||||
CONFIG_MDIO_GPIO=m
|
||||
CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL=m
|
||||
# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
CONFIG_GPIO_PCA953X=m
|
||||
CONFIG_GPIO_PCF857X=m
|
||||
@ -293,20 +294,20 @@ CONFIG_SWIOTLB=y
|
||||
|
||||
CONFIG_PPC_DISABLE_WERROR=y
|
||||
|
||||
CONFIG_XILINX_LL_TEMAC=m
|
||||
CONFIG_XILINX_EMACLITE=m
|
||||
# CONFIG_XILINX_LL_TEMAC is not set
|
||||
# CONFIG_XILINX_EMACLITE is not set
|
||||
|
||||
CONFIG_GPIO_WM831X=m
|
||||
# CONFIG_GPIO_LANGWELL is not set
|
||||
# CONFIG_GPIO_UCB1400 is not set
|
||||
CONFIG_EDAC_MPC85XX=m
|
||||
# CONFIG_EDAC_MPC85XX is not set
|
||||
|
||||
CONFIG_NR_IRQS=512
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
|
||||
CONFIG_PPC_MPC5200_LPBFIFO=m
|
||||
CONFIG_CAN_MSCAN=m
|
||||
CONFIG_CAN_MPC5XXX=m
|
||||
# CONFIG_PPC_MPC5200_LPBFIFO is not set
|
||||
# CONFIG_CAN_MSCAN is not set
|
||||
# CONFIG_CAN_MPC5XXX is not set
|
||||
CONFIG_PATA_MACIO=m
|
||||
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
@ -327,7 +328,7 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
||||
# CONFIG_PPC_MPC512x is not set
|
||||
# CONFIG_RTC_DRV_MPC5121 is not set
|
||||
|
||||
CONFIG_MPC512X_DMA=m
|
||||
# CONFIG_MPC512X_DMA is not set
|
||||
|
||||
CONFIG_KVM_GUEST=y
|
||||
|
||||
@ -338,15 +339,17 @@ CONFIG_I2C_MPC=m
|
||||
|
||||
CONFIG_RFKILL_GPIO=m
|
||||
|
||||
CONFIG_CRYPTO_DEV_FSL_CAAM=m
|
||||
CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
|
||||
CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y
|
||||
CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD=255
|
||||
CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD=2048
|
||||
CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=m
|
||||
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
|
||||
|
||||
# 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
|
||||
|
||||
# Disable btrfs until it is shown to work with 64k pages (rhbz 747079)
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
|
@ -7,17 +7,17 @@ CONFIG_PPC32=y
|
||||
CONFIG_CPU_FREQ_PMAC=y
|
||||
CONFIG_PPC_CHRP=y
|
||||
CONFIG_PPC_PMAC=y
|
||||
CONFIG_PPC_MPC52xx=y
|
||||
# CONFIG_PPC_MPC52xx is not set
|
||||
CONFIG_PPC_PREP=y
|
||||
|
||||
# CONFIG_PPC_MPC5200_SIMPLE is not set
|
||||
CONFIG_SATA_FSL=m
|
||||
# CONFIG_SATA_FSL is not set
|
||||
# CONFIG_SATA_NV is not set
|
||||
|
||||
# busted in .28git1
|
||||
# ERROR: "cacheable_memzero" [drivers/net/gianfar_driver.ko] undefined!
|
||||
# CONFIG_GIANFAR is not set
|
||||
CONFIG_USB_EHCI_FSL=y
|
||||
# CONFIG_USB_EHCI_FSL is not set
|
||||
|
||||
CONFIG_PMAC_APM_EMU=y
|
||||
CONFIG_PMAC_BACKLIGHT=y
|
||||
@ -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
|
||||
@ -72,24 +73,20 @@ CONFIG_BRIQ_PANEL=m
|
||||
# CONFIG_ATA_PIIX is not set
|
||||
# CONFIG_PATA_AMD is not set
|
||||
# CONFIG_PATA_ATIIXP is not set
|
||||
CONFIG_PATA_MPC52xx=m
|
||||
# CONFIG_PATA_MPC52xx is not set
|
||||
# CONFIG_PATA_MPIIX is not set
|
||||
# CONFIG_PATA_OLDPIIX is not set
|
||||
# CONFIG_PATA_OPTI is not set
|
||||
# CONFIG_PATA_SERVERWORKS is not set
|
||||
|
||||
CONFIG_SERIAL_MPC52xx=y
|
||||
CONFIG_SERIAL_MPC52xx_CONSOLE=y
|
||||
CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
|
||||
# CONFIG_SERIAL_MPC52xx is not set
|
||||
# CONFIG_MPC5200_WDT is not set
|
||||
CONFIG_8xxx_WDT=m
|
||||
CONFIG_GEF_WDT=m
|
||||
|
||||
CONFIG_PPC_MPC5200_BUGFIX=y
|
||||
CONFIG_FEC_MPC52xx=m
|
||||
# CONFIG_PPC_MPC5200_BUGFIX is not set
|
||||
# CONFIG_NET_VENDOR_FREESCALE is not set
|
||||
#CHECK: This may later become a tristate.
|
||||
CONFIG_FEC_MPC52xx_MDIO=y
|
||||
CONFIG_PPC_MPC5200_GPIO=y
|
||||
CONFIG_MDIO_GPIO=m
|
||||
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
@ -144,26 +141,28 @@ CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_SND_ISA=y
|
||||
CONFIG_CRYPTO_DEV_TALITOS=m
|
||||
|
||||
CONFIG_FSL_EMB_PERFMON=y
|
||||
CONFIG_MPC8272_ADS=y
|
||||
CONFIG_PQ2FADS=y
|
||||
CONFIG_EP8248E=y
|
||||
CONFIG_MPC830x_RDB=y
|
||||
CONFIG_MPC831x_RDB=y
|
||||
CONFIG_MPC832x_MDS=y
|
||||
CONFIG_MPC832x_RDB=y
|
||||
CONFIG_MPC834x_MDS=y
|
||||
CONFIG_MPC834x_ITX=y
|
||||
CONFIG_MPC836x_MDS=y
|
||||
CONFIG_MPC836x_RDK=y
|
||||
CONFIG_MPC837x_MDS=y
|
||||
CONFIG_MPC837x_RDB=y
|
||||
CONFIG_SBC834x=y
|
||||
CONFIG_ASP834x=y
|
||||
CONFIG_KMETER1=y
|
||||
CONFIG_MPC8641_HPCN=y
|
||||
CONFIG_SBC8641D=y
|
||||
CONFIG_MPC8610_HPCD=y
|
||||
# CONFIG_FSL_EMB_PERFMON is not set
|
||||
# CONFIG_MPC8272_ADS is not set
|
||||
# CONFIG_PQ2FADS is not set
|
||||
# CONFIG_EP8248E is not set
|
||||
# CONFIG_MPC830x_RDB is not set
|
||||
# CONFIG_MPC831x_RDB is not set
|
||||
# CONFIG_MPC832x_MDS is not set
|
||||
# CONFIG_MPC832x_RDB is not set
|
||||
# CONFIG_MPC834x_MDS is not set
|
||||
# CONFIG_MPC834x_ITX is not set
|
||||
# CONFIG_MPC836x_MDS is not set
|
||||
# CONFIG_MPC836x_RDK is not set
|
||||
# CONFIG_MPC837x_MDS is not set
|
||||
# CONFIG_MPC837x_RDB is not set
|
||||
# CONFIG_SBC834x is not set
|
||||
# CONFIG_ASP834x is not set
|
||||
# CONFIG_KMETER1 is not set
|
||||
# CONFIG_MPC8641_HPCN is not set
|
||||
# CONFIG_SBC8641D is not set
|
||||
# CONFIG_MPC8610_HPCD is not set
|
||||
# CONFIG_FSL_LBC is not set
|
||||
# CONFIG_MTD_NAND_FSL_UPM is not set
|
||||
|
||||
# CONFIG_USB_MUSB_HDRC is not set
|
||||
|
||||
@ -172,8 +171,6 @@ CONFIG_MPC8610_HPCD=y
|
||||
# drivers/mtd/maps/sbc8240.c:172: warning: passing argument 1 of 'simple_map_init' from incompatible pointer type
|
||||
# drivers/mtd/maps/sbc8240.c:177: error: 'struct mtd_info' has no member named 'module'
|
||||
|
||||
CONFIG_MTD_NAND_FSL_UPM=m
|
||||
|
||||
CONFIG_RCU_FANOUT=32
|
||||
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
@ -185,3 +182,4 @@ CONFIG_KVM_BOOK3S_32=m
|
||||
# CONFIG_SCSI_QLA_ISCSI is not set
|
||||
|
||||
CONFIG_BATTERY_PMU=m
|
||||
|
||||
|
@ -2,42 +2,23 @@ CONFIG_WINDFARM_PM81=y
|
||||
CONFIG_WINDFARM_PM91=y
|
||||
CONFIG_WINDFARM_PM121=y
|
||||
CONFIG_PPC_PMAC64=y
|
||||
CONFIG_PPC_MAPLE=y
|
||||
CONFIG_PPC_CELL=y
|
||||
CONFIG_PPC_IBM_CELL_BLADE=y
|
||||
# CONFIG_PPC_MAPLE is not set
|
||||
# CONFIG_PPC_CELL is not set
|
||||
# CONFIG_PPC_IBM_CELL_BLADE is not set
|
||||
CONFIG_PPC_ISERIES=y
|
||||
CONFIG_PPC_PSERIES=y
|
||||
CONFIG_PPC_PMAC=y
|
||||
CONFIG_PPC_PASEMI=y
|
||||
CONFIG_PPC_POWERNV=y
|
||||
CONFIG_PPC_POWERNV_RTAS=y
|
||||
# CONFIG_PPC_PASEMI is not set
|
||||
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
|
||||
CONFIG_PPC_PS3=y
|
||||
CONFIG_PPC_CELLEB=y
|
||||
CONFIG_PPC_CELL_QPACE=y
|
||||
CONFIG_PS3_HTAB_SIZE=20
|
||||
# CONFIG_PS3_DYNAMIC_DMA is not set
|
||||
CONFIG_PS3_ADVANCED=y
|
||||
CONFIG_PS3_HTAB_SIZE=20
|
||||
# CONFIG_PS3_DYNAMIC_DMA is not set
|
||||
CONFIG_PS3_VUART=y
|
||||
CONFIG_PS3_PS3AV=y
|
||||
CONFIG_PS3_STORAGE=m
|
||||
CONFIG_PS3_DISK=m
|
||||
CONFIG_PS3_ROM=m
|
||||
CONFIG_PS3_FLASH=m
|
||||
CONFIG_PS3_LPM=y
|
||||
CONFIG_SND_PS3=m
|
||||
CONFIG_SND_PS3_DEFAULT_START_DELAY=1000
|
||||
CONFIG_GELIC_NET=m
|
||||
CONFIG_GELIC_WIRELESS=y
|
||||
CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE=y
|
||||
CONFIG_CBE_THERM=m
|
||||
CONFIG_CBE_CPUFREQ=m
|
||||
CONFIG_CBE_CPUFREQ_PMI=m
|
||||
CONFIG_CBE_CPUFREQ_PMI_ENABLE=y
|
||||
# CONFIG_PPC_PS3 is not set
|
||||
# CONFIG_PPC_CELLEB is not set
|
||||
# CONFIG_PPC_CELL_QPACE is not set
|
||||
CONFIG_PMAC_RACKMETER=m
|
||||
CONFIG_IBMEBUS=y
|
||||
CONFIG_SPU_FS=m
|
||||
CONFIG_RTAS_FLASH=y
|
||||
# CONFIG_UDBG_RTAS_CONSOLE is not set
|
||||
CONFIG_PPC_SPLPAR=y
|
||||
CONFIG_SCANLOG=y
|
||||
CONFIG_LPARCFG=y
|
||||
@ -60,10 +41,9 @@ CONFIG_CPU_FREQ_PMAC64=y
|
||||
CONFIG_SCSI_IPR=m
|
||||
CONFIG_SCSI_IPR_TRACE=y
|
||||
CONFIG_SCSI_IPR_DUMP=y
|
||||
CONFIG_SPIDER_NET=m
|
||||
CONFIG_HVC_RTAS=y
|
||||
CONFIG_HVC_ISERIES=y
|
||||
CONFIG_CBE_RAS=y
|
||||
CONFIG_HVC_OPAL=y
|
||||
|
||||
# iSeries device drivers
|
||||
#
|
||||
@ -75,19 +55,13 @@ CONFIG_VIOTAPE=m
|
||||
CONFIG_PASEMI_MAC=m
|
||||
CONFIG_SERIAL_OF_PLATFORM=m
|
||||
|
||||
CONFIG_PPC_PASEMI_IOMMU=y
|
||||
CONFIG_SERIAL_TXX9=y
|
||||
CONFIG_SERIAL_TXX9_NR_UARTS=6
|
||||
CONFIG_SERIAL_TXX9_CONSOLE=y
|
||||
|
||||
CONFIG_HVC_BEAT=y
|
||||
|
||||
CONFIG_FB_PS3=y
|
||||
CONFIG_FB_PS3_DEFAULT_SIZE_M=18
|
||||
|
||||
CONFIG_PPC_PMI=m
|
||||
CONFIG_PS3_SYS_MANAGER=y
|
||||
# CONFIG_BLK_DEV_CELLEB is not set
|
||||
|
||||
CONFIG_PATA_SCC=m
|
||||
|
||||
@ -138,19 +112,9 @@ CONFIG_SECCOMP=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
# CONFIG_BLK_DEV_PLATFORM is not set
|
||||
CONFIG_IBM_NEW_EMAC=m
|
||||
CONFIG_IBM_NEW_EMAC_RXB=128
|
||||
CONFIG_IBM_NEW_EMAC_TXB=64
|
||||
CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32
|
||||
CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256
|
||||
CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0
|
||||
# CONFIG_IBM_NEW_EMAC_DEBUG is not set
|
||||
|
||||
# CONFIG_VIRQ_DEBUG is not set
|
||||
CONFIG_ELECTRA_CF=m
|
||||
|
||||
CONFIG_MTD_NAND_PASEMI=m
|
||||
CONFIG_EDAC_CELL=m
|
||||
CONFIG_EDAC_CPC925=m
|
||||
CONFIG_FRAME_WARN=2048
|
||||
|
||||
@ -164,14 +128,6 @@ CONFIG_SCSI_IBMVFC=m
|
||||
# CONFIG_SCSI_IBMVFC_TRACE is not set
|
||||
CONFIG_IBM_BSR=m
|
||||
|
||||
CONFIG_SERIO_XILINX_XPS_PS2=m
|
||||
|
||||
CONFIG_PPC_IBM_CELL_RESETBUTTON=y
|
||||
CONFIG_PPC_IBM_CELL_POWERBUTTON=m
|
||||
CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m
|
||||
|
||||
CONFIG_RTC_DRV_PS3=y
|
||||
|
||||
CONFIG_CRASH_DUMP=y
|
||||
CONFIG_RELOCATABLE=y
|
||||
|
||||
@ -202,4 +158,3 @@ CONFIG_IO_EVENT_IRQ=y
|
||||
CONFIG_HW_RANDOM_AMD=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
CONFIG_CPU_FREQ_MAPLE=y
|
||||
|
@ -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
|
||||
|
@ -43,6 +43,7 @@ CONFIG_I2C_ALI1535=m
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_FB_DDC is not set
|
||||
# CONFIG_FB_BW2 is not set
|
||||
# CONFIG_FB_GRVGA is not set
|
||||
CONFIG_FB_CG3=y
|
||||
CONFIG_FB_CG6=y
|
||||
# CONFIG_FB_RIVA is not set
|
||||
|
@ -57,9 +57,6 @@ CONFIG_FB_GEODE_GX=y
|
||||
# CONFIG_PCI_GOMMCONFIG is not set
|
||||
CONFIG_PCI_GOANY=y
|
||||
|
||||
# FIXME: wtf? "x86 specific drivers"
|
||||
CONFIG_PCMCIA_FDOMAIN=m
|
||||
CONFIG_SCSI_FUTURE_DOMAIN=m
|
||||
CONFIG_IBM_ASM=m
|
||||
|
||||
#
|
||||
@ -138,8 +135,6 @@ CONFIG_CRYPTO_TWOFISH_586=m
|
||||
|
||||
CONFIG_VIDEO_CAFE_CCIC=m
|
||||
|
||||
CONFIG_VMI=y
|
||||
|
||||
CONFIG_XEN_MAX_DOMAIN_MEMORY=8
|
||||
|
||||
CONFIG_MTD_NAND_CAFE=m
|
||||
@ -155,6 +150,7 @@ CONFIG_OLPC_XO1_PM=y
|
||||
CONFIG_OLPC_XO15_SCI=y
|
||||
CONFIG_OLPC_XO1_RTC=y
|
||||
CONFIG_OLPC_XO1_SCI=y
|
||||
# CONFIG_ALIX is not set
|
||||
# staging
|
||||
# CONFIG_FB_OLPC_DCON is not set
|
||||
|
||||
@ -204,3 +200,6 @@ CONFIG_I2O_EXT_ADAPTEC=y
|
||||
CONFIG_I2O_CONFIG_OLD_IOCTL=y
|
||||
CONFIG_I2O_BUS=m
|
||||
|
||||
# CONFIG_EDAC_SBRIDGE is not set
|
||||
|
||||
# CONFIG_X86_WANT_INTEL_MID is not set
|
||||
|
@ -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 is not set
|
||||
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
||||
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
||||
CONFIG_SCSI_ADVANSYS=m
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
@ -59,7 +59,6 @@ CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ASUS is not set
|
||||
CONFIG_ACPI_PROCFS_POWER=y
|
||||
CONFIG_ACPI_BATTERY=y
|
||||
CONFIG_ACPI_BUTTON=y
|
||||
CONFIG_ACPI_CONTAINER=m
|
||||
@ -73,6 +72,8 @@ CONFIG_ACPI_SLEEP=y
|
||||
CONFIG_ACPI_THERMAL=y
|
||||
CONFIG_ACPI_TOSHIBA=m
|
||||
CONFIG_ACPI_VIDEO=m
|
||||
# FIXME: Next two are deprecated. Remove them when they disappear upstream
|
||||
# CONFIG_ACPI_PROCFS_POWER is not set
|
||||
# CONFIG_ACPI_PROC_EVENT is not set
|
||||
CONFIG_PNPACPI=y
|
||||
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
|
||||
@ -227,8 +228,7 @@ CONFIG_PARAVIRT=y
|
||||
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
|
||||
# CONFIG_PARAVIRT_DEBUG is not set
|
||||
|
||||
# PARAVIRT_SPINLOCKS has a 5% perf hit
|
||||
# FIXME: Still true ? References?
|
||||
# PARAVIRT_SPINLOCKS has a 5% perf hit on native hw (see kconfig)
|
||||
# CONFIG_PARAVIRT_SPINLOCKS is not set
|
||||
|
||||
CONFIG_KVM_CLOCK=y
|
||||
@ -310,7 +310,7 @@ CONFIG_HP_ILO=m
|
||||
CONFIG_BACKLIGHT_APPLE=m
|
||||
|
||||
|
||||
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
|
||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
||||
|
||||
# CONFIG_CMDLINE_BOOL is not set
|
||||
|
||||
@ -381,3 +381,6 @@ CONFIG_HP_ACCEL=m
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_CC_STACKPROTECTOR=y
|
||||
CONFIG_RELOCATABLE=y
|
||||
|
||||
# CONFIG_HYPERV is not set
|
||||
|
||||
|
@ -22,8 +22,7 @@ CONFIG_AMD_IOMMU=y
|
||||
CONFIG_AMD_IOMMU_STATS=y
|
||||
# CONFIG_IOMMU_DEBUG is not set
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_CALGARY_IOMMU=y
|
||||
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
|
||||
# CONFIG_CALGARY_IOMMU is not set
|
||||
|
||||
CONFIG_KEXEC_JUMP=y
|
||||
|
||||
@ -44,6 +43,9 @@ CONFIG_CRYPTO_AES_X86_64=y
|
||||
CONFIG_CRYPTO_TWOFISH_X86_64=m
|
||||
CONFIG_CRYPTO_SALSA20_X86_64=m
|
||||
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
|
||||
CONFIG_CRYPTO_SHA1_SSSE3=m
|
||||
CONFIG_CRYPTO_BLOWFISH_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
|
||||
|
||||
# CONFIG_I2C_ALI1535 is not set
|
||||
# CONFIG_I2C_ALI1563 is not set
|
||||
@ -53,6 +55,7 @@ CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
|
||||
|
||||
CONFIG_EDAC_AMD64=m
|
||||
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
|
||||
CONFIG_EDAC_SBRIDGE=m
|
||||
|
||||
# CONFIG_PC8736x_GPIO is not set
|
||||
|
||||
@ -62,8 +65,8 @@ CONFIG_SPARSEMEM=y
|
||||
CONFIG_HAVE_MEMORY_PRESENT=y
|
||||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
# CONFIG_MEMORY_HOTPLUG is not set
|
||||
# CONFIG_MEMORY_HOTREMOVE is not set
|
||||
|
||||
# CONFIG_BLK_DEV_CMD640 is not set
|
||||
# CONFIG_BLK_DEV_RZ1000 is not set
|
||||
@ -79,7 +82,7 @@ CONFIG_SGI_GRU=m
|
||||
|
||||
# CONFIG_VIDEO_CAFE_CCIC is not set
|
||||
|
||||
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
|
||||
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
|
||||
# CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set
|
||||
CONFIG_XEN_DEV_EVTCHN=m
|
||||
CONFIG_XEN_SYS_HYPERVISOR=y
|
||||
@ -95,7 +98,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,83 +0,0 @@
|
||||
From 64015d6d16d7ed5b6ffcec95dc13e8694bd2a4d6 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Mon, 20 Jun 2011 22:35:24 +0100
|
||||
Subject: [PATCH] drm/i915/sdvo: Include LVDS panels for the IS_DIGITAL check
|
||||
|
||||
We were checking whether the supplied edid matched the connector it was
|
||||
read from. We do this in case a DDC read returns an EDID for another
|
||||
device on a multifunction or otherwise interesting card. However, we
|
||||
failed to include LVDS as a digital device and so rejecting an otherwise
|
||||
valid EDID.
|
||||
|
||||
Fixes the detection of the secondary SDVO LVDS panel on the Libretto
|
||||
W105.
|
||||
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_sdvo.c | 28 ++++++++++++++++++++--------
|
||||
1 files changed, 20 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
|
||||
index f96975c..26eff9f 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_sdvo.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
|
||||
@@ -49,6 +49,7 @@
|
||||
#define IS_TMDS(c) (c->output_flag & SDVO_TMDS_MASK)
|
||||
#define IS_LVDS(c) (c->output_flag & SDVO_LVDS_MASK)
|
||||
#define IS_TV_OR_LVDS(c) (c->output_flag & (SDVO_TV_MASK | SDVO_LVDS_MASK))
|
||||
+#define IS_DIGITAL(c) (c->output_flag & (SDVO_TMDS_MASK | SDVO_LVDS_MASK))
|
||||
|
||||
|
||||
static const char *tv_format_names[] = {
|
||||
@@ -1363,6 +1364,18 @@ intel_sdvo_hdmi_sink_detect(struct drm_connector *connector)
|
||||
return status;
|
||||
}
|
||||
|
||||
+static bool
|
||||
+intel_sdvo_connector_matches_edid(struct intel_sdvo_connector *sdvo,
|
||||
+ struct edid *edid)
|
||||
+{
|
||||
+ bool monitor_is_digital = !!(edid->input & DRM_EDID_INPUT_DIGITAL);
|
||||
+ bool connector_is_digital = !!IS_DIGITAL(sdvo);
|
||||
+
|
||||
+ DRM_DEBUG_KMS("connector_is_digital? %d, monitor_is_digital? %d\n",
|
||||
+ connector_is_digital, monitor_is_digital);
|
||||
+ return connector_is_digital == monitor_is_digital;
|
||||
+}
|
||||
+
|
||||
static enum drm_connector_status
|
||||
intel_sdvo_detect(struct drm_connector *connector, bool force)
|
||||
{
|
||||
@@ -1407,10 +1420,12 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
|
||||
if (edid == NULL)
|
||||
edid = intel_sdvo_get_analog_edid(connector);
|
||||
if (edid != NULL) {
|
||||
- if (edid->input & DRM_EDID_INPUT_DIGITAL)
|
||||
- ret = connector_status_disconnected;
|
||||
- else
|
||||
+ if (intel_sdvo_connector_matches_edid(intel_sdvo_connector,
|
||||
+ edid))
|
||||
ret = connector_status_connected;
|
||||
+ else
|
||||
+ ret = connector_status_disconnected;
|
||||
+
|
||||
connector->display_info.raw_edid = NULL;
|
||||
kfree(edid);
|
||||
} else
|
||||
@@ -1451,11 +1466,8 @@ static void intel_sdvo_get_ddc_modes(struct drm_connector *connector)
|
||||
edid = intel_sdvo_get_analog_edid(connector);
|
||||
|
||||
if (edid != NULL) {
|
||||
- struct intel_sdvo_connector *intel_sdvo_connector = to_intel_sdvo_connector(connector);
|
||||
- bool monitor_is_digital = !!(edid->input & DRM_EDID_INPUT_DIGITAL);
|
||||
- bool connector_is_digital = !!IS_TMDS(intel_sdvo_connector);
|
||||
-
|
||||
- if (connector_is_digital == monitor_is_digital) {
|
||||
+ if (intel_sdvo_connector_matches_edid(to_intel_sdvo_connector(connector),
|
||||
+ edid)) {
|
||||
drm_mode_connector_update_edid_property(connector, edid);
|
||||
drm_add_edid_modes(connector, edid);
|
||||
}
|
||||
--
|
||||
1.7.5.4
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
|
||||
index 7fd4e3e..a488b50 100644
|
||||
--- a/drivers/gpu/drm/radeon/radeon_fence.c
|
||||
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
|
||||
@@ -263,7 +263,7 @@ retry:
|
||||
*/
|
||||
if (seq == rdev->fence_drv.last_seq && radeon_gpu_is_lockup(rdev)) {
|
||||
/* good news we believe it's a lockup */
|
||||
- WARN(1, "GPU lockup (waiting for 0x%08X last fence id 0x%08X)\n",
|
||||
+ printk(KERN_WARNING "GPU lockup (waiting for 0x%08X last fence id 0x%08X)\n",
|
||||
fence->seq, seq);
|
||||
/* FIXME: what should we do ? marking everyone
|
||||
* as signaled for now
|
2180
elantech.patch
2180
elantech.patch
File diff suppressed because it is too large
Load Diff
@ -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 @@
|
||||
|
||||
The Power platform requires the partner info buffer to be page aligned
|
||||
otherwise it will fail the partner info hcall with H_PARAMETER. Switch
|
||||
from using kmalloc to allocate this buffer to __get_free_page to ensure
|
||||
page alignment.
|
||||
|
||||
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
|
||||
---
|
||||
|
||||
drivers/tty/hvc/hvcs.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff -puN drivers/tty/hvc/hvcs.c~hvcs_pi_buf_alloc drivers/tty/hvc/hvcs.c
|
||||
--- linux-2.6/drivers/tty/hvc/hvcs.c~hvcs_pi_buf_alloc 2011-09-09 16:00:25.000000000 -0500
|
||||
+++ linux-2.6-bjking1/drivers/tty/hvc/hvcs.c 2011-09-09 16:07:08.000000000 -0500
|
||||
@@ -1532,7 +1532,7 @@ static int __devinit hvcs_initialize(voi
|
||||
goto register_fail;
|
||||
}
|
||||
|
||||
- hvcs_pi_buff = kmalloc(PAGE_SIZE, GFP_KERNEL);
|
||||
+ hvcs_pi_buff = (unsigned long *) __get_free_page(GFP_KERNEL);
|
||||
if (!hvcs_pi_buff) {
|
||||
rc = -ENOMEM;
|
||||
goto buff_alloc_fail;
|
||||
@@ -1548,7 +1548,7 @@ static int __devinit hvcs_initialize(voi
|
||||
return 0;
|
||||
|
||||
kthread_fail:
|
||||
- kfree(hvcs_pi_buff);
|
||||
+ free_page((unsigned long)hvcs_pi_buff);
|
||||
buff_alloc_fail:
|
||||
tty_unregister_driver(hvcs_tty_driver);
|
||||
register_fail:
|
||||
@@ -1597,7 +1597,7 @@ static void __exit hvcs_module_exit(void
|
||||
kthread_stop(hvcs_task);
|
||||
|
||||
spin_lock(&hvcs_pi_lock);
|
||||
- kfree(hvcs_pi_buff);
|
||||
+ free_page((unsigned long)hvcs_pi_buff);
|
||||
hvcs_pi_buff = NULL;
|
||||
spin_unlock(&hvcs_pi_lock);
|
||||
|
||||
_
|
162
kernel.spec
162
kernel.spec
@ -54,19 +54,19 @@ Summary: The Linux kernel
|
||||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 2
|
||||
%global baserelease 1
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
# on top of -- for example, 2.6.22-rc7-git1 starts with a 2.6.21 base,
|
||||
# which yields a base_sublevel of 21.
|
||||
%define base_sublevel 1
|
||||
%define base_sublevel 2
|
||||
|
||||
## If this is a released kernel ##
|
||||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 10
|
||||
%define stable_update 1
|
||||
# Is it a -stable RC?
|
||||
%define stable_rc 0
|
||||
# Set rpm version accordingly
|
||||
@ -215,7 +215,7 @@ Summary: The Linux kernel
|
||||
#
|
||||
# (Uncomment the '#' and both spaces below to disable with_backports.)
|
||||
#
|
||||
# % define with_backports 0
|
||||
%define with_backports 0
|
||||
#######################################################################
|
||||
|
||||
%define make_target bzImage
|
||||
@ -410,13 +410,6 @@ Summary: The Linux kernel
|
||||
%define kernel_image_elf 1
|
||||
%endif
|
||||
|
||||
%ifarch ia64
|
||||
%define all_arch_configs kernel-%{version}-ia64*.config
|
||||
%define image_install_path boot/efi/EFI/redhat
|
||||
%define make_target compressed
|
||||
%define kernel_image vmlinux.gz
|
||||
%endif
|
||||
|
||||
%ifarch alpha alphaev56
|
||||
%define all_arch_configs kernel-%{version}-alpha*.config
|
||||
%define image_install_path boot
|
||||
@ -555,7 +548,7 @@ Version: %{rpmversion}
|
||||
Release: %{pkg_release}
|
||||
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
|
||||
# SET %%nobuildarches (ABOVE) INSTEAD
|
||||
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 %{sparc} s390 s390x alpha alphaev56 %{arm}
|
||||
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 %{sparc} s390 s390x alpha alphaev56 %{arm}
|
||||
ExclusiveOS: Linux
|
||||
|
||||
%kernel_reqprovconf
|
||||
@ -564,7 +557,7 @@ ExclusiveOS: Linux
|
||||
# List the packages used during the kernel build
|
||||
#
|
||||
BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar
|
||||
BuildRequires: bzip2, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk
|
||||
BuildRequires: bzip2, xz, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk
|
||||
BuildRequires: gcc >= 3.4.2, binutils >= 2.12, redhat-rpm-config
|
||||
BuildRequires: net-tools
|
||||
BuildRequires: xmlto, asciidoc
|
||||
@ -589,7 +582,7 @@ BuildRequires: rpm-build >= 4.4.2.1-4
|
||||
%define debuginfo_args --strict-build-id
|
||||
%endif
|
||||
|
||||
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.bz2
|
||||
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.xz
|
||||
Source1: compat-wireless-%{cwversion}.tar.bz2
|
||||
|
||||
Source11: genkey
|
||||
@ -613,8 +606,6 @@ Source51: config-powerpc32-generic
|
||||
Source52: config-powerpc32-smp
|
||||
Source53: config-powerpc64
|
||||
|
||||
Source60: config-ia64-generic
|
||||
|
||||
Source70: config-s390x
|
||||
|
||||
Source90: config-sparc64-generic
|
||||
@ -641,11 +632,11 @@ Source2001: cpupower.config
|
||||
# For a stable release kernel
|
||||
%if 0%{?stable_update}
|
||||
%if 0%{?stable_base}
|
||||
%define stable_patch_00 patch-3.%{base_sublevel}.%{stable_base}.bz2
|
||||
%define stable_patch_00 patch-3.%{base_sublevel}.%{stable_base}.xz
|
||||
Patch00: %{stable_patch_00}
|
||||
%endif
|
||||
%if 0%{?stable_rc}
|
||||
%define stable_patch_01 patch-3.%{base_sublevel}.%{stable_update}-rc%{stable_rc}.bz2
|
||||
%define stable_patch_01 patch-3.%{base_sublevel}.%{stable_update}-rc%{stable_rc}.xz
|
||||
Patch01: %{stable_patch_01}
|
||||
%endif
|
||||
|
||||
@ -654,9 +645,9 @@ Patch01: %{stable_patch_01}
|
||||
# near the top of this spec file.
|
||||
%else
|
||||
%if 0%{?rcrev}
|
||||
Patch00: patch-3.%{upstream_sublevel}-rc%{rcrev}.bz2
|
||||
Patch00: patch-3.%{upstream_sublevel}-rc%{rcrev}.xz
|
||||
%if 0%{?gitrev}
|
||||
Patch01: patch-3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.bz2
|
||||
Patch01: patch-3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
|
||||
%endif
|
||||
%else
|
||||
# pre-{base_sublevel+1}-rc1 case
|
||||
@ -691,8 +682,6 @@ Patch100: taint-vbox.patch
|
||||
Patch160: linux-2.6-32bit-mmap-exec-randomization.patch
|
||||
Patch161: linux-2.6-i386-nx-emulation.patch
|
||||
|
||||
Patch202: linux-2.6-debug-taint-vm.patch
|
||||
|
||||
Patch383: linux-2.6-defaults-aspm.patch
|
||||
|
||||
Patch390: linux-2.6-defaults-acpi-video.patch
|
||||
@ -717,10 +706,6 @@ Patch700: linux-2.6-e1000-ich9-montevina.patch
|
||||
|
||||
Patch800: linux-2.6-crash-driver.patch
|
||||
|
||||
# Platform
|
||||
Patch900: samsung-laptop-brightness-fixes-3.2.patch
|
||||
Patch901: asus-laptop-3.2-backport.patch
|
||||
|
||||
# crypto/
|
||||
|
||||
# virt + ksm patches
|
||||
@ -729,17 +714,10 @@ Patch1500: fix_xen_guest_on_old_EC2.patch
|
||||
# DRM
|
||||
#atch1700: drm-edid-try-harder-to-fix-up-broken-headers.patch
|
||||
|
||||
# nouveau + drm fixes
|
||||
Patch1810: drm-nouveau-updates.patch
|
||||
Patch1811: drm-nouveau-gf108.patch
|
||||
# intel drm is all merged upstream
|
||||
Patch1824: drm-intel-next.patch
|
||||
# hush the i915 fbc noise
|
||||
Patch1826: drm-i915-fbc-stfu.patch
|
||||
# rhbz#729882, https://bugs.freedesktop.org/attachment.cgi?id=49069
|
||||
Patch1827: drm-i915-sdvo-lvds-is-digital.patch
|
||||
|
||||
Patch1850: drm-lower-severity-radeon-lockup.diff
|
||||
|
||||
Patch1900: linux-2.6-intel-iommu-igfx.patch
|
||||
|
||||
@ -753,10 +731,6 @@ Patch2900: linux-2.6-v4l-dvb-update.patch
|
||||
Patch2901: linux-2.6-v4l-dvb-experimental.patch
|
||||
Patch2902: linux-2.6-v4l-dvb-uvcvideo-update.patch
|
||||
|
||||
Patch2905: media-dib0700-correct-error-message.patch
|
||||
|
||||
Patch3000: rcutree-avoid-false-quiescent-states.patch
|
||||
|
||||
# fs fixes
|
||||
|
||||
#rhbz 753346
|
||||
@ -765,53 +739,31 @@ Patch3500: jbd-jbd2-validate-sb-s_first-in-journal_get_superblo.patch
|
||||
# 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
|
||||
|
||||
Patch12025: rcu-avoid-just-onlined-cpu-resched.patch
|
||||
Patch12026: block-stray-block-put-after-teardown.patch
|
||||
Patch12030: epoll-limit-paths.patch
|
||||
Patch12031: HID-wacom-Set-input-bits-before-registration.patch
|
||||
|
||||
Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
||||
|
||||
Patch13002: revert-efi-rtclock.patch
|
||||
Patch13003: efi-dont-map-boot-services-on-32bit.patch
|
||||
|
||||
Patch13009: hvcs_pi_buf_alloc.patch
|
||||
|
||||
Patch20000: utrace.patch
|
||||
|
||||
# Flattened devicetree support
|
||||
Patch21000: arm-omap-dt-compat.patch
|
||||
Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch
|
||||
|
||||
#rhbz #735946
|
||||
Patch21020: 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
|
||||
Patch21021: 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
|
||||
Patch21022: mm-do-not-stall-in-synchronous-compaction-for-THP-allocations.patch
|
||||
|
||||
#rhbz 748691
|
||||
Patch21030: be2net-non-member-vlan-pkts-not-received-in-promisco.patch
|
||||
Patch21031: benet-remove-bogus-unlikely-on-vlan-check.patch
|
||||
|
||||
Patch21040: x86-code-dump-fix-truncation.patch
|
||||
|
||||
#rhbz 728607
|
||||
Patch21060: elantech.patch
|
||||
|
||||
#rhbz752176
|
||||
Patch21080: sysfs-msi-irq-per-device.patch
|
||||
|
||||
#backport brcm80211 from 3.2-rc1
|
||||
Patch21090: brcm80211.patch
|
||||
Patch21091: bcma-brcmsmac-compat.patch
|
||||
|
||||
# rhbz 754907
|
||||
Patch21100: cciss-fix-irqf-shared.patch
|
||||
Patch21101: hpsa-add-irqf-shared.patch
|
||||
|
||||
#rhbz 731365
|
||||
@ -821,27 +773,15 @@ Patch21225: pci-Rework-ASPM-disable-code.patch
|
||||
|
||||
Patch21226: pci-crs-blacklist.patch
|
||||
|
||||
#rhbz #757839
|
||||
Patch21230: net-sky2-88e8059-fix-link-speed.patch
|
||||
|
||||
#rhbz 717735
|
||||
Patch21045: nfs-client-freezer.patch
|
||||
|
||||
#rhbz 590880
|
||||
Patch21046: alps.patch
|
||||
|
||||
#rhbz 741117
|
||||
Patch21048: b44-Use-dev_kfree_skb_irq-in-b44_tx.patch
|
||||
|
||||
#rhbz 746097
|
||||
Patch21049: tpm_tis-delay-after-aborting-cmd.patch
|
||||
|
||||
#rhbz 771006
|
||||
Patch21050: thp-reduce-khugepaged-freezing-latency.patch
|
||||
|
||||
#rhbz 770233
|
||||
Patch21065: Bluetooth-Add-support-for-BCM20702A0.patch
|
||||
|
||||
Patch21070: ext4-Support-check-none-nocheck-mount-options.patch
|
||||
Patch21071: ext4-Fix-error-handling-on-inode-bitmap-corruption.patch
|
||||
|
||||
@ -865,10 +805,6 @@ Patch22100: msi-irq-sysfs-warning.patch
|
||||
#rhbz 728740
|
||||
Patch21076: rtl8192cu-Fix-WARNING-on-suspend-resume.patch
|
||||
|
||||
Patch21077: 01-block-add-and-use-scsi_blk_cmd_ioctl.patch
|
||||
Patch21078: 02-block-fail-SCSI-passthrough-ioctls-on-partition-devs.patch
|
||||
Patch21079: 03-dm-dont-fwd-ioctls-from-LVs-to-underlying-dev.patch
|
||||
|
||||
#rhbz 782686
|
||||
Patch21082: procfs-parse-mount-options.patch
|
||||
Patch21083: procfs-add-hidepid-and-gid-mount-options.patch
|
||||
@ -877,9 +813,6 @@ Patch21084: proc-fix-null-pointer-deref-in-proc_pid_permission.patch
|
||||
#rhbz 782681
|
||||
Patch21085: proc-clean-up-and-fix-proc-pid-mem-handling.patch
|
||||
|
||||
#rhbz 782687
|
||||
Patch21086: loop-prevent-information-leak-after-failed-read.patch
|
||||
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
||||
@ -1172,7 +1105,8 @@ ApplyPatch()
|
||||
%endif
|
||||
case "$patch" in
|
||||
*.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
|
||||
*.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
|
||||
*.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
|
||||
*.xz) unxz < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
|
||||
*) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;;
|
||||
esac
|
||||
}
|
||||
@ -1428,9 +1362,6 @@ ApplyPatch linux-2.6-acpi-debug-infinite-loop.patch
|
||||
ApplyPatch acpi-ensure-thermal-limits-match-cpu-freq.patch
|
||||
ApplyPatch acpi-sony-nonvs-blacklist.patch
|
||||
|
||||
# Various low-impact patches to aid debugging.
|
||||
ApplyPatch linux-2.6-debug-taint-vm.patch
|
||||
|
||||
#
|
||||
# PCI
|
||||
#
|
||||
@ -1484,16 +1415,9 @@ ApplyPatch fix_xen_guest_on_old_EC2.patch
|
||||
# DRM core
|
||||
#ApplyPatch drm-edid-try-harder-to-fix-up-broken-headers.patch
|
||||
|
||||
# Nouveau DRM
|
||||
ApplyOptionalPatch drm-nouveau-updates.patch
|
||||
ApplyPatch drm-nouveau-gf108.patch
|
||||
|
||||
# Intel DRM
|
||||
ApplyOptionalPatch drm-intel-next.patch
|
||||
ApplyPatch drm-i915-fbc-stfu.patch
|
||||
ApplyPatch drm-i915-sdvo-lvds-is-digital.patch
|
||||
|
||||
ApplyPatch drm-lower-severity-radeon-lockup.diff
|
||||
|
||||
ApplyPatch linux-2.6-intel-iommu-igfx.patch
|
||||
|
||||
@ -1507,22 +1431,12 @@ ApplyOptionalPatch linux-2.6-v4l-dvb-fixes.patch
|
||||
ApplyOptionalPatch linux-2.6-v4l-dvb-update.patch
|
||||
ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch
|
||||
|
||||
# Platform fixes not sent for -stable
|
||||
ApplyPatch samsung-laptop-brightness-fixes-3.2.patch
|
||||
ApplyPatch asus-laptop-3.2-backport.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 epoll-limit-paths.patch
|
||||
ApplyPatch rcu-avoid-just-onlined-cpu-resched.patch
|
||||
ApplyPatch block-stray-block-put-after-teardown.patch
|
||||
ApplyPatch HID-wacom-Set-input-bits-before-registration.patch
|
||||
|
||||
# rhbz#605888
|
||||
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
||||
@ -1530,40 +1444,13 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
||||
ApplyPatch revert-efi-rtclock.patch
|
||||
ApplyPatch efi-dont-map-boot-services-on-32bit.patch
|
||||
|
||||
ApplyPatch hvcs_pi_buf_alloc.patch
|
||||
|
||||
ApplyPatch media-dib0700-correct-error-message.patch
|
||||
|
||||
# utrace.
|
||||
ApplyPatch utrace.patch
|
||||
|
||||
#rhbz #735946
|
||||
ApplyPatch 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
|
||||
ApplyPatch 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
|
||||
ApplyPatch mm-do-not-stall-in-synchronous-compaction-for-THP-allocations.patch
|
||||
|
||||
#rhbz 748691
|
||||
ApplyPatch be2net-non-member-vlan-pkts-not-received-in-promisco.patch
|
||||
ApplyPatch benet-remove-bogus-unlikely-on-vlan-check.patch
|
||||
|
||||
#rhbz 736815
|
||||
ApplyPatch x86-code-dump-fix-truncation.patch
|
||||
|
||||
#rhbz 728607
|
||||
ApplyPatch elantech.patch
|
||||
|
||||
#rhbz 752176
|
||||
ApplyPatch sysfs-msi-irq-per-device.patch
|
||||
|
||||
%if !%{with_backports}
|
||||
#backport brcm80211 from 3.2-rc1
|
||||
ApplyPatch brcm80211.patch
|
||||
# Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331
|
||||
ApplyPatch bcma-brcmsmac-compat.patch
|
||||
%endif
|
||||
|
||||
# rhbz 754907
|
||||
ApplyPatch cciss-fix-irqf-shared.patch
|
||||
ApplyPatch hpsa-add-irqf-shared.patch
|
||||
|
||||
#rhbz 731365
|
||||
@ -1573,27 +1460,15 @@ ApplyPatch pci-Rework-ASPM-disable-code.patch
|
||||
|
||||
#ApplyPatch pci-crs-blacklist.patch
|
||||
|
||||
#rhbz #757839
|
||||
ApplyPatch net-sky2-88e8059-fix-link-speed.patch
|
||||
|
||||
#rhbz 717735
|
||||
ApplyPatch nfs-client-freezer.patch
|
||||
|
||||
#rhbz 590880
|
||||
ApplyPatch alps.patch
|
||||
|
||||
#rhbz 741117
|
||||
ApplyPatch b44-Use-dev_kfree_skb_irq-in-b44_tx.patch
|
||||
|
||||
#rhbz 746097
|
||||
ApplyPatch tpm_tis-delay-after-aborting-cmd.patch
|
||||
|
||||
#rhbz 771006
|
||||
ApplyPatch thp-reduce-khugepaged-freezing-latency.patch
|
||||
|
||||
#rhbz 770233
|
||||
ApplyPatch Bluetooth-Add-support-for-BCM20702A0.patch
|
||||
|
||||
#rhbz 771058
|
||||
ApplyPatch msi-irq-sysfs-warning.patch
|
||||
|
||||
@ -1608,11 +1483,6 @@ ApplyPatch KVM-x86-fix-missing-checks-in-syscall-emulation.patch
|
||||
#rhbz 728740
|
||||
ApplyPatch rtl8192cu-Fix-WARNING-on-suspend-resume.patch
|
||||
|
||||
#rhbz 769911
|
||||
ApplyPatch 01-block-add-and-use-scsi_blk_cmd_ioctl.patch
|
||||
ApplyPatch 02-block-fail-SCSI-passthrough-ioctls-on-partition-devs.patch
|
||||
ApplyPatch 03-dm-dont-fwd-ioctls-from-LVs-to-underlying-dev.patch
|
||||
|
||||
#rhbz 782686
|
||||
ApplyPatch procfs-parse-mount-options.patch
|
||||
ApplyPatch procfs-add-hidepid-and-gid-mount-options.patch
|
||||
@ -1621,9 +1491,6 @@ ApplyPatch proc-fix-null-pointer-deref-in-proc_pid_permission.patch
|
||||
#rhbz 782681
|
||||
ApplyPatch proc-clean-up-and-fix-proc-pid-mem-handling.patch
|
||||
|
||||
#rhbz 782687
|
||||
ApplyPatch loop-prevent-information-leak-after-failed-read.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
@ -2399,6 +2266,9 @@ fi
|
||||
# and build.
|
||||
|
||||
%changelog
|
||||
* Thu Jan 19 2012 Dave Jones <davej@redhat.com> 3.2.1-1
|
||||
- Rebase to Linux 3.2.1
|
||||
|
||||
* Thu Jan 19 2012 John W. Linville <linville@redhat.com>
|
||||
- Pass the same make options to compat-wireless as to the base kernel
|
||||
|
||||
|
@ -152,7 +152,7 @@ Main executable randomisation (PIE) : 12 bits (guessed)
|
||||
struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
|
||||
--- a/arch/x86/mm/mmap.c
|
||||
+++ b/arch/x86/mm/mmap.c
|
||||
@@ -124,13 +124,16 @@ static unsigned long mmap_legacy_base(void)
|
||||
@@ -124,13 +124,19 @@ static unsigned long mmap_legacy_base(void)
|
||||
*/
|
||||
void arch_pick_mmap_layout(struct mm_struct *mm)
|
||||
{
|
||||
@ -163,9 +163,12 @@ Main executable randomisation (PIE) : 12 bits (guessed)
|
||||
} else {
|
||||
mm->mmap_base = mmap_base();
|
||||
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
|
||||
+#ifdef CONFIG_X86_32
|
||||
+ if (!(current->personality & READ_IMPLIES_EXEC)
|
||||
+ && !(__supported_pte_mask & _PAGE_NX)
|
||||
+ && mmap_is_ia32())
|
||||
+ mm->get_unmapped_exec_area = arch_get_unmapped_exec_area;
|
||||
+#endif
|
||||
mm->unmap_area = arch_unmap_area_topdown;
|
||||
}
|
||||
}
|
||||
@ -224,3 +227,25 @@ Main executable randomisation (PIE) : 12 bits (guessed)
|
||||
if (new_addr & ~PAGE_MASK) {
|
||||
ret = new_addr;
|
||||
goto out;
|
||||
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
|
||||
index 57d1868..29c0c35 100644
|
||||
--- a/arch/x86/kernel/process.c
|
||||
+++ b/arch/x86/kernel/process.c
|
||||
@@ -669,6 +669,16 @@ unsigned long arch_align_stack(unsigned long sp)
|
||||
unsigned long arch_randomize_brk(struct mm_struct *mm)
|
||||
{
|
||||
unsigned long range_end = mm->brk + 0x02000000;
|
||||
- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
|
||||
+ unsigned long bump = 0;
|
||||
+#ifdef CONFIG_X86_32
|
||||
+ /* in the case of NX emulation, shove the brk segment way out of the
|
||||
+ way of the exec randomization area, since it can collide with
|
||||
+ future allocations if not. */
|
||||
+ if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) &&
|
||||
+ (mm->brk < 0x08000000) ) {
|
||||
+ bump = (TASK_SIZE/6);
|
||||
+ }
|
||||
+#endif
|
||||
+ return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk);
|
||||
}
|
||||
|
||||
|
@ -1,51 +0,0 @@
|
||||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
|
||||
index 4e8985a..70d0853 100644
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -318,6 +318,7 @@ static void bad_page(struct page *page)
|
||||
current->comm, page_to_pfn(page));
|
||||
dump_page(page);
|
||||
|
||||
+ print_modules();
|
||||
dump_stack();
|
||||
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
|
||||
--- a/mm/slab.c
|
||||
+++ b/mm/slab.c
|
||||
@@ -1886,8 +1886,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
|
||||
/* Print header */
|
||||
if (lines == 0) {
|
||||
printk(KERN_ERR
|
||||
- "Slab corruption: %s start=%p, len=%d\n",
|
||||
- cachep->name, realobj, size);
|
||||
+ "Slab corruption (%s): %s start=%p, len=%d\n",
|
||||
+ print_tainted(), cachep->name, realobj, size);
|
||||
print_objinfo(cachep, objp, 0);
|
||||
}
|
||||
/* Hexdump the affected line */
|
||||
@@ -2985,8 +2985,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",
|
||||
+ cachep->name, cachep->num, slabp, slabp->inuse, print_tainted());
|
||||
for (i = 0;
|
||||
i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t);
|
||||
i++) {
|
||||
diff --git a/mm/slub.c b/mm/slub.c
|
||||
index 35f351f..e7ccb39 100644
|
||||
--- a/mm/slub.c
|
||||
+++ b/mm/slub.c
|
||||
@@ -472,7 +472,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
|
||||
va_end(args);
|
||||
printk(KERN_ERR "========================================"
|
||||
"=====================================\n");
|
||||
- printk(KERN_ERR "BUG %s: %s\n", s->name, buf);
|
||||
+ printk(KERN_ERR "BUG %s (%s): %s\n", s->name, print_tainted(), buf);
|
||||
printk(KERN_ERR "----------------------------------------"
|
||||
"-------------------------------------\n\n");
|
||||
}
|
@ -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
|
||||
|
||||
|
@ -592,25 +592,3 @@
|
||||
mmu_notifier_invalidate_range_start(mm, start, end);
|
||||
if (is_vm_hugetlb_page(vma))
|
||||
hugetlb_change_protection(vma, start, end, vma->vm_page_prot);
|
||||
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
|
||||
index 57d1868..29c0c35 100644
|
||||
--- a/arch/x86/kernel/process.c
|
||||
+++ b/arch/x86/kernel/process.c
|
||||
@@ -669,6 +669,16 @@ unsigned long arch_align_stack(unsigned long sp)
|
||||
unsigned long arch_randomize_brk(struct mm_struct *mm)
|
||||
{
|
||||
unsigned long range_end = mm->brk + 0x02000000;
|
||||
- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
|
||||
+ unsigned long bump = 0;
|
||||
+#ifdef CONFIG_X86_32
|
||||
+ /* in the case of NX emulation, shove the brk segment way out of the
|
||||
+ way of the exec randomization area, since it can collide with
|
||||
+ future allocations if not. */
|
||||
+ if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) &&
|
||||
+ (mm->brk < 0x08000000) ) {
|
||||
+ bump = (TASK_SIZE/6);
|
||||
+ }
|
||||
+#endif
|
||||
+ return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
Subject: [PATCH] [intel_iommu] Default to igfx_off
|
||||
From 602e1f209dd983e40d989e871cd253e8187899b8 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 81c287f..ee5693b 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
|
||||
@@ -1014,12 +1014,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 bdc447f..240db6b 100644
|
||||
--- a/drivers/iommu/intel-iommu.c
|
||||
+++ b/drivers/iommu/intel-iommu.c
|
||||
@@ -340,7 +340,8 @@ int dmar_disabled = 0;
|
||||
int dmar_disabled = 1;
|
||||
#endif /*CONFIG_DMAR_DEFAULT_ON*/
|
||||
@@ -408,7 +408,8 @@ int dmar_disabled = 1;
|
||||
int intel_iommu_enabled = 0;
|
||||
EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
||||
|
||||
-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;
|
||||
@@ -433,10 +434,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.7.4
|
||||
|
||||
|
@ -1,41 +0,0 @@
|
||||
From 3bb9068278ea524581237abadd41377a14717e7d Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Monakhov <dmonakhov@openvz.org>
|
||||
Date: Wed, 16 Nov 2011 09:21:48 +0100
|
||||
Subject: [PATCH] loop: prevent information leak after failed read
|
||||
|
||||
If read was not fully successful we have to fail whole bio to prevent
|
||||
information leak of old pages
|
||||
|
||||
##Testcase_begin
|
||||
dd if=/dev/zero of=./file bs=1M count=1
|
||||
losetup /dev/loop0 ./file -o 4096
|
||||
truncate -s 0 ./file
|
||||
# OOps loop offset is now beyond i_size, so read will silently fail.
|
||||
# So bio's pages would not be cleared, may which result in information leak.
|
||||
hexdump -C /dev/loop0
|
||||
##testcase_end
|
||||
|
||||
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
---
|
||||
drivers/block/loop.c | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
|
||||
index 3d80682..0d56739 100644
|
||||
--- a/drivers/block/loop.c
|
||||
+++ b/drivers/block/loop.c
|
||||
@@ -372,7 +372,8 @@ do_lo_receive(struct loop_device *lo,
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
-
|
||||
+ if (retval != bvec->bv_len)
|
||||
+ return -EIO;
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.5
|
||||
|
@ -1,103 +0,0 @@
|
||||
From: Olivier Grenie <olivier.grenie@dibcom.fr>
|
||||
Date: Thu, 4 Aug 2011 16:10:03 +0000 (-0300)
|
||||
Subject: [media] dib0700: correct error message
|
||||
X-Git-Tag: next-20110927~67^2~4^2~223
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fnext%2Flinux-next.git;a=commitdiff_plain;h=680417bb318adc5f1f8f392730776176fbcdedd8
|
||||
|
||||
[media] dib0700: correct error message
|
||||
|
||||
The goal of this patch is to correct a previous patch. In case of error,
|
||||
the err() function should be used instead of dprintk() function.
|
||||
|
||||
[mchehab@redhat.com: as I've replaced dprintk by deb_info, on the the
|
||||
previous patch, to avoid breaking bisect, I had to fix a merge conflict
|
||||
on this one]
|
||||
Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
|
||||
diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
|
||||
index a224e94..b693ed1 100644
|
||||
--- a/drivers/media/dvb/dvb-usb/dib0700_core.c
|
||||
+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
|
||||
@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
|
||||
int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
|
||||
int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
|
||||
|
||||
if (st->fw_version >= 0x10201) {
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
|
||||
} else {
|
||||
/* Write request */
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
st->buf[0] = REQUEST_NEW_I2C_WRITE;
|
||||
@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
|
||||
if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
|
||||
return -EAGAIN;
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
|
||||
int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
|
||||
return -EINVAL;
|
||||
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
|
||||
}
|
||||
|
||||
if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
|
||||
int new_proto, ret;
|
||||
|
||||
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
|
||||
- deb_info("could not acquire lock");
|
||||
+ err("could not acquire lock");
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,42 +0,0 @@
|
||||
commit 27d240fdae2808d727ad9ce48ec029731a457524
|
||||
Author: stephen hemminger <shemminger@vyatta.com>
|
||||
Date: Fri Nov 4 12:17:17 2011 +0000
|
||||
|
||||
sky2: fix regression on Yukon Optima
|
||||
|
||||
[ backport to 3.1 ]
|
||||
|
||||
Changes to support other Optima types, introduced an accidental
|
||||
regression that caused 88E8059 to come up in 10Mbit/sec.
|
||||
|
||||
The Yukon Optima supports a reverse auto-negotiation feature that
|
||||
was incorrectly setup, and not needed. The feature could be used to
|
||||
allow wake-on-lan at higher speeds. But doing it correctly would require
|
||||
other changes to initialization.
|
||||
|
||||
Reported-by: Pavel Mateja <pavel@netsafe.cz>
|
||||
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
|
||||
index cbd026f..fdc6c39 100644
|
||||
--- a/drivers/net/sky2.c
|
||||
+++ b/drivers/net/sky2.c
|
||||
@@ -366,17 +366,6 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port)
|
||||
gm_phy_write(hw, port, PHY_MARV_FE_SPEC_2, spec);
|
||||
}
|
||||
} else {
|
||||
- if (hw->chip_id >= CHIP_ID_YUKON_OPT) {
|
||||
- u16 ctrl2 = gm_phy_read(hw, port, PHY_MARV_EXT_CTRL_2);
|
||||
-
|
||||
- /* enable PHY Reverse Auto-Negotiation */
|
||||
- ctrl2 |= 1u << 13;
|
||||
-
|
||||
- /* Write PHY changes (SW-reset must follow) */
|
||||
- gm_phy_write(hw, port, PHY_MARV_EXT_CTRL_2, ctrl2);
|
||||
- }
|
||||
-
|
||||
-
|
||||
/* disable energy detect */
|
||||
ctrl &= ~PHY_M_PC_EN_DET_MSK;
|
||||
|
@ -1,106 +1,4 @@
|
||||
@@ -, +, @@
|
||||
fs/cifs/transport.c | 3 ++-
|
||||
include/linux/freezer.h | 19 +++++++++++++++++--
|
||||
2 files changed, 19 insertions(+), 3 deletions(-)
|
||||
--- a/fs/cifs/transport.c
|
||||
+++ a/fs/cifs/transport.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <linux/wait.h>
|
||||
#include <linux/net.h>
|
||||
#include <linux/delay.h>
|
||||
+#include <linux/freezer.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/processor.h>
|
||||
#include <linux/mempool.h>
|
||||
@@ -324,7 +325,7 @@ wait_for_response(struct TCP_Server_Info *server, struct mid_q_entry *midQ)
|
||||
{
|
||||
int error;
|
||||
|
||||
- error = wait_event_killable(server->response_q,
|
||||
+ error = wait_event_freezekillable(server->response_q,
|
||||
midQ->midState != MID_REQUEST_SUBMITTED);
|
||||
if (error < 0)
|
||||
return -ERESTARTSYS;
|
||||
--- a/include/linux/freezer.h
|
||||
+++ a/include/linux/freezer.h
|
||||
@@ -134,10 +134,25 @@ static inline void set_freezable_with_signal(void)
|
||||
}
|
||||
|
||||
/*
|
||||
- * Freezer-friendly wrappers around wait_event_interruptible() and
|
||||
- * wait_event_interruptible_timeout(), originally defined in <linux/wait.h>
|
||||
+ * Freezer-friendly wrappers around wait_event_interruptible(),
|
||||
+ * wait_event_killable() and wait_event_interruptible_timeout(), originally
|
||||
+ * defined in <linux/wait.h>
|
||||
*/
|
||||
|
||||
+#define wait_event_freezekillable(wq, condition) \
|
||||
+({ \
|
||||
+ int __retval; \
|
||||
+ do { \
|
||||
+ __retval = wait_event_killable(wq, \
|
||||
+ (condition) || freezing(current)); \
|
||||
+ if (__retval && !freezing(current)) \
|
||||
+ break; \
|
||||
+ else if (!(condition)) \
|
||||
+ __retval = -ERESTARTSYS; \
|
||||
+ } while (try_to_freeze()); \
|
||||
+ __retval; \
|
||||
+})
|
||||
+
|
||||
#define wait_event_freezable(wq, condition) \
|
||||
({ \
|
||||
int __retval; \
|
||||
include/linux/freezer.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
--- a/include/linux/freezer.h
|
||||
+++ a/include/linux/freezer.h
|
||||
@@ -143,7 +143,7 @@ static inline void set_freezable_with_signal(void)
|
||||
({ \
|
||||
int __retval; \
|
||||
do { \
|
||||
- __retval = wait_event_killable(wq, \
|
||||
+ __retval = wait_event_killable(wq, \
|
||||
(condition) || freezing(current)); \
|
||||
if (__retval && !freezing(current)) \
|
||||
break; \
|
||||
include/linux/freezer.h | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
--- a/include/linux/freezer.h
|
||||
+++ a/include/linux/freezer.h
|
||||
@@ -203,6 +203,9 @@ static inline void set_freezable_with_signal(void) {}
|
||||
#define wait_event_freezable_timeout(wq, condition, timeout) \
|
||||
wait_event_interruptible_timeout(wq, condition, timeout)
|
||||
|
||||
+#define wait_event_freezekillable(wq, condition) \
|
||||
+ wait_event_killable(wq, condition)
|
||||
+
|
||||
#endif /* !CONFIG_FREEZER */
|
||||
|
||||
#endif /* FREEZER_H_INCLUDED */
|
||||
description on Rafael's request.]
|
||||
include/linux/freezer.h | 11 +++--------
|
||||
1 files changed, 3 insertions(+), 8 deletions(-)
|
||||
--- a/include/linux/freezer.h
|
||||
+++ a/include/linux/freezer.h
|
||||
@@ -142,14 +142,9 @@ static inline void set_freezable_with_signal(void)
|
||||
#define wait_event_freezekillable(wq, condition) \
|
||||
({ \
|
||||
int __retval; \
|
||||
- do { \
|
||||
- __retval = wait_event_killable(wq, \
|
||||
- (condition) || freezing(current)); \
|
||||
- if (__retval && !freezing(current)) \
|
||||
- break; \
|
||||
- else if (!(condition)) \
|
||||
- __retval = -ERESTARTSYS; \
|
||||
- } while (try_to_freeze()); \
|
||||
+ freezer_do_not_count(); \
|
||||
+ __retval = wait_event_killable(wq, (condition)); \
|
||||
+ freezer_count(); \
|
||||
__retval; \
|
||||
})
|
||||
|
||||
fs/nfs/inode.c | 3 ++-
|
||||
fs/nfs/nfs3proc.c | 3 ++-
|
||||
fs/nfs/nfs4proc.c | 5 +++--
|
||||
@ -156,7 +54,7 @@
|
||||
|
||||
#include "nfs4_fs.h"
|
||||
#include "delegation.h"
|
||||
@@ -244,7 +245,7 @@ static int nfs4_delay(struct rpc_clnt *clnt, long *timeout)
|
||||
@@ -241,7 +242,7 @@ static int nfs4_delay(struct rpc_clnt *clnt, long *timeout)
|
||||
*timeout = NFS4_POLL_RETRY_MIN;
|
||||
if (*timeout > NFS4_POLL_RETRY_MAX)
|
||||
*timeout = NFS4_POLL_RETRY_MAX;
|
||||
@ -165,7 +63,7 @@
|
||||
if (fatal_signal_pending(current))
|
||||
res = -ERESTARTSYS;
|
||||
*timeout <<= 1;
|
||||
@@ -3970,7 +3971,7 @@ int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4
|
||||
@@ -3950,7 +3951,7 @@ int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4
|
||||
static unsigned long
|
||||
nfs4_set_lock_task_retry(unsigned long timeout)
|
||||
{
|
||||
@ -195,7 +93,7 @@
|
||||
return res;
|
||||
--- a/include/linux/freezer.h
|
||||
+++ a/include/linux/freezer.h
|
||||
@@ -134,6 +134,29 @@ static inline void set_freezable_with_signal(void)
|
||||
@@ -135,6 +135,29 @@ static inline void set_freezable_with_signal(void)
|
||||
}
|
||||
|
||||
/*
|
||||
@ -225,7 +123,7 @@
|
||||
* Freezer-friendly wrappers around wait_event_interruptible(),
|
||||
* wait_event_killable() and wait_event_interruptible_timeout(), originally
|
||||
* defined in <linux/wait.h>
|
||||
@@ -192,6 +215,11 @@ static inline int freezer_should_skip(struct task_struct *p) { return 0; }
|
||||
@@ -194,6 +217,11 @@ static inline int freezer_should_skip(struct task_struct *p) { return 0; }
|
||||
static inline void set_freezable(void) {}
|
||||
static inline void set_freezable_with_signal(void) {}
|
||||
|
||||
@ -260,7 +158,7 @@
|
||||
1 files changed, 18 insertions(+), 3 deletions(-)
|
||||
--- a/include/linux/freezer.h
|
||||
+++ a/include/linux/freezer.h
|
||||
@@ -140,18 +140,33 @@ static inline void set_freezable_with_signal(void)
|
||||
@@ -141,18 +141,33 @@ static inline void set_freezable_with_signal(void)
|
||||
* while in this function.
|
||||
*/
|
||||
|
||||
|
@ -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) */
|
@ -1,8 +1,3 @@
|
||||
From e234ca17f2d5ce23606fceef2df6c02f8555547e Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
Date: Wed, 11 Jan 2012 13:35:33 -0500
|
||||
Subject: [PATCH] rtl8192cu: Fix WARNING on suspend/resume
|
||||
|
||||
A recent LKML thread (http://lkml.indiana.edu/hypermail/linux/kernel/1112.3/00965.html)
|
||||
discusses warnings that occur during a suspend/resume cycle. The driver
|
||||
attempts to read the firmware file before userspace is ready, leading to the
|
||||
@ -18,6 +13,8 @@ through a suspend/resume cycle, and does not have to be reread.
|
||||
This patch should fix the bug reported in
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=771002.
|
||||
|
||||
Note: This patch also touches rtl8192ce as the "firmware" loaded message
|
||||
is now printed in the wrong place.
|
||||
Note: This patch also touches rtl8192ce as the "firmware" loaded message
|
||||
is now printed in the wrong place.
|
||||
|
||||
@ -27,18 +24,15 @@ Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
|
||||
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
|
||||
Cc: Stable <stable@xxxxxxxxxxxxxxx>
|
||||
|
||||
Backported to Fedora 3.1.x.
|
||||
---
|
||||
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 1 -
|
||||
drivers/net/wireless/rtlwifi/rtl8192ce/sw.c | 1 +
|
||||
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 58 +++++++++++++++++----
|
||||
3 files changed, 49 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
index 49a064b..e3c4ac7 100644
|
||||
--- a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
@@ -226,7 +226,6 @@ int rtl92c_download_fw(struct ieee80211_hw *hw)
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-13 13:07:58.830625006 -0500
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-13 13:08:06.825439927 -0500
|
||||
@@ -227,7 +227,6 @@ int rtl92c_download_fw(struct ieee80211_
|
||||
u32 fwsize;
|
||||
enum version_8192c version = rtlhal->version;
|
||||
|
||||
@ -46,11 +40,9 @@ index 49a064b..e3c4ac7 100644
|
||||
if (!rtlhal->pfirmware)
|
||||
return 1;
|
||||
|
||||
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
index 373dc78..9c3a8f1 100644
|
||||
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
@@ -171,6 +171,7 @@ int rtl92c_init_sw_vars(struct ieee80211_hw *hw)
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
@@ -186,6 +186,7 @@ int rtl92c_init_sw_vars(struct ieee80211
|
||||
memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
|
||||
rtlpriv->rtlhal.fwsize = firmware->size;
|
||||
release_firmware(firmware);
|
||||
@ -58,21 +50,18 @@ index 373dc78..9c3a8f1 100644
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
index ef63c0d..f4230dd 100644
|
||||
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
@@ -42,6 +42,9 @@
|
||||
#include "led.h"
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
@@ -43,6 +43,8 @@
|
||||
#include "hw.h"
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/module.h>
|
||||
+#include <linux/atomic.h>
|
||||
+#include <linux/types.h>
|
||||
+
|
||||
|
||||
MODULE_AUTHOR("Georgia <georgia@realtek.com>");
|
||||
MODULE_AUTHOR("Ziv Huang <ziv_huang@realtek.com>");
|
||||
@@ -50,6 +53,10 @@ MODULE_LICENSE("GPL");
|
||||
@@ -51,6 +53,10 @@ MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("Realtek 8192C/8188C 802.11n USB wireless");
|
||||
MODULE_FIRMWARE("rtlwifi/rtl8192cufw.bin");
|
||||
|
||||
@ -83,10 +72,10 @@ index ef63c0d..f4230dd 100644
|
||||
static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
@@ -60,12 +67,21 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
|
||||
rtlpriv->dm.dm_flag = 0;
|
||||
rtlpriv->dm.disable_framebursting = 0;
|
||||
@@ -62,12 +68,21 @@ static int rtl92cu_init_sw_vars(struct i
|
||||
rtlpriv->dm.disable_framebursting = false;
|
||||
rtlpriv->dm.thermalvalue = 0;
|
||||
rtlpriv->dbg.global_debuglevel = rtlpriv->cfg->mod_params->debug;
|
||||
- rtlpriv->rtlhal.pfirmware = vmalloc(0x4000);
|
||||
- if (!rtlpriv->rtlhal.pfirmware) {
|
||||
+
|
||||
@ -107,7 +96,7 @@ index ef63c0d..f4230dd 100644
|
||||
/* request fw */
|
||||
err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
|
||||
rtlpriv->io.dev);
|
||||
@@ -80,9 +96,14 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
|
||||
@@ -82,9 +97,14 @@ static int rtl92cu_init_sw_vars(struct i
|
||||
release_firmware(firmware);
|
||||
return 1;
|
||||
}
|
||||
@ -123,7 +112,7 @@ index ef63c0d..f4230dd 100644
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -91,12 +112,30 @@ static void rtl92cu_deinit_sw_vars(struct ieee80211_hw *hw)
|
||||
@@ -93,12 +113,30 @@ static void rtl92cu_deinit_sw_vars(struc
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
|
||||
@ -156,7 +145,7 @@ index ef63c0d..f4230dd 100644
|
||||
static struct rtl_hal_ops rtl8192cu_hal_ops = {
|
||||
.init_sw_vars = rtl92cu_init_sw_vars,
|
||||
.deinit_sw_vars = rtl92cu_deinit_sw_vars,
|
||||
@@ -338,11 +377,10 @@ static struct usb_driver rtl8192cu_driver = {
|
||||
@@ -374,11 +412,10 @@ static struct usb_driver rtl8192cu_drive
|
||||
.disconnect = rtl_usb_disconnect,
|
||||
.id_table = rtl8192c_usb_ids,
|
||||
|
||||
@ -172,6 +161,3 @@ index ef63c0d..f4230dd 100644
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.supports_autosuspend = 1,
|
||||
#endif
|
||||
--
|
||||
1.7.7.5
|
||||
|
||||
|
@ -1,238 +0,0 @@
|
||||
From: Jason Stubbs <jasonbstubbs@gmail.com>
|
||||
Date: Tue, 20 Sep 2011 16:16:13 +0000 (-0700)
|
||||
Subject: Platform: Brightness quirk for samsung laptop driver
|
||||
X-Git-Tag: v3.2-rc1~111^2~41
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=ac080523141d5bfa5f60ef2436480f645f915e9c
|
||||
|
||||
Platform: Brightness quirk for samsung laptop driver
|
||||
|
||||
On some Samsung laptops the brightness regulation works slightly different.
|
||||
All SABI commands except for set_brightness work as expected. The behaviour
|
||||
of set_brightness is as follows:
|
||||
|
||||
- Setting a new brightness will only step one level toward the new brightness
|
||||
level. For example, setting a level of 5 when the current level is 2 will
|
||||
result in a brightness level of 3.
|
||||
- A spurious KEY_BRIGHTNESS_UP or KEY_BRIGHTNESS_DOWN event is also generated
|
||||
along with the change in brightness.
|
||||
- Neither of the above two issues occur when changing from/to brightness
|
||||
level 0.
|
||||
|
||||
This patch adds detection and a non-intrusive workaround for the above issues.
|
||||
|
||||
Signed-off-by: Jason Stubbs <jasonbstubbs@gmail.com>
|
||||
Tested-by: David Herrmann <dh.herrmann@googlemail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
---
|
||||
|
||||
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
|
||||
index 4d3bed4..6474e42 100644
|
||||
--- a/drivers/platform/x86/samsung-laptop.c
|
||||
+++ b/drivers/platform/x86/samsung-laptop.c
|
||||
@@ -226,6 +226,7 @@ static struct backlight_device *backlight_device;
|
||||
static struct mutex sabi_mutex;
|
||||
static struct platform_device *sdev;
|
||||
static struct rfkill *rfk;
|
||||
+static bool has_stepping_quirk;
|
||||
|
||||
static int force;
|
||||
module_param(force, bool, 0);
|
||||
@@ -382,6 +383,17 @@ static void set_brightness(u8 user_brightness)
|
||||
{
|
||||
u8 user_level = user_brightness + sabi_config->min_brightness;
|
||||
|
||||
+ if (has_stepping_quirk && user_level != 0) {
|
||||
+ /*
|
||||
+ * short circuit if the specified level is what's already set
|
||||
+ * to prevent the screen from flickering needlessly
|
||||
+ */
|
||||
+ if (user_brightness == read_brightness())
|
||||
+ return;
|
||||
+
|
||||
+ sabi_set_command(sabi_config->commands.set_brightness, 0);
|
||||
+ }
|
||||
+
|
||||
sabi_set_command(sabi_config->commands.set_brightness, user_level);
|
||||
}
|
||||
|
||||
@@ -390,6 +402,34 @@ static int get_brightness(struct backlight_device *bd)
|
||||
return (int)read_brightness();
|
||||
}
|
||||
|
||||
+static void check_for_stepping_quirk(void)
|
||||
+{
|
||||
+ u8 initial_level = read_brightness();
|
||||
+ u8 check_level;
|
||||
+
|
||||
+ /*
|
||||
+ * Some laptops exhibit the strange behaviour of stepping toward
|
||||
+ * (rather than setting) the brightness except when changing to/from
|
||||
+ * brightness level 0. This behaviour is checked for here and worked
|
||||
+ * around in set_brightness.
|
||||
+ */
|
||||
+
|
||||
+ if (initial_level <= 2)
|
||||
+ check_level = initial_level + 2;
|
||||
+ else
|
||||
+ check_level = initial_level - 2;
|
||||
+
|
||||
+ has_stepping_quirk = false;
|
||||
+ set_brightness(check_level);
|
||||
+
|
||||
+ if (read_brightness() != check_level) {
|
||||
+ has_stepping_quirk = true;
|
||||
+ pr_info("enabled workaround for brightness stepping quirk\n");
|
||||
+ }
|
||||
+
|
||||
+ set_brightness(initial_level);
|
||||
+}
|
||||
+
|
||||
static int update_status(struct backlight_device *bd)
|
||||
{
|
||||
set_brightness(bd->props.brightness);
|
||||
@@ -805,6 +845,9 @@ static int __init samsung_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
+ /* Check for stepping quirk */
|
||||
+ check_for_stepping_quirk();
|
||||
+
|
||||
/* knock up a platform device to hang stuff off of */
|
||||
sdev = platform_device_register_simple("samsung", -1, NULL, 0);
|
||||
if (IS_ERR(sdev))
|
||||
From: Jason Stubbs <jasonbstubbs@gmail.com>
|
||||
Date: Tue, 20 Sep 2011 16:16:14 +0000 (-0700)
|
||||
Subject: Platform: Samsung laptop DMI info for NC210/NC110
|
||||
X-Git-Tag: v3.2-rc1~111^2~40
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=7b3c257ce4267e004a7c7e68c05d1eb70da8c972
|
||||
|
||||
Platform: Samsung laptop DMI info for NC210/NC110
|
||||
|
||||
This patch just adds the DMI info for the samsung laptop driver to work with
|
||||
the NC210/NC110. It needs the brightness quirk patch for proper support.
|
||||
|
||||
Signed-off-by: Jason Stubbs <jasonbstubbs@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
---
|
||||
|
||||
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
|
||||
index 6474e42..8ffab50 100644
|
||||
--- a/drivers/platform/x86/samsung-laptop.c
|
||||
+++ b/drivers/platform/x86/samsung-laptop.c
|
||||
@@ -737,6 +737,15 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
||||
},
|
||||
.callback = dmi_check_cb,
|
||||
},
|
||||
+ {
|
||||
+ .ident = "NC210/NC110",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "NC210/NC110"),
|
||||
+ DMI_MATCH(DMI_BOARD_NAME, "NC210/NC110"),
|
||||
+ },
|
||||
+ .callback = dmi_check_cb,
|
||||
+ },
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(dmi, samsung_dmi_table);
|
||||
From: Raul Gutierrez Segales <rgs@collabora.co.uk>
|
||||
Date: Tue, 20 Sep 2011 16:16:15 +0000 (-0700)
|
||||
Subject: Platform: fix samsung-laptop DMI identification for N220 model
|
||||
X-Git-Tag: v3.2-rc1~111^2~39
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=f689c875c13c9d62b3c4de09cd5dad66549f700d
|
||||
|
||||
Platform: fix samsung-laptop DMI identification for N220 model
|
||||
|
||||
This is a follow-up for commit 78a7539b, which didn't cover the
|
||||
Samsung N220 laptop. With this backlight brightness works nicely
|
||||
on the N220 netbook.
|
||||
|
||||
Signed-off-by: Raul Gutierrez Segales <rgs@collabora.co.uk>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
---
|
||||
|
||||
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
|
||||
index 8ffab50..1e436eb 100644
|
||||
--- a/drivers/platform/x86/samsung-laptop.c
|
||||
+++ b/drivers/platform/x86/samsung-laptop.c
|
||||
@@ -663,6 +663,16 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
||||
.callback = dmi_check_cb,
|
||||
},
|
||||
{
|
||||
+ .ident = "N220",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR,
|
||||
+ "SAMSUNG ELECTRONICS CO., LTD."),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "N220"),
|
||||
+ DMI_MATCH(DMI_BOARD_NAME, "N220"),
|
||||
+ },
|
||||
+ .callback = dmi_check_cb,
|
||||
+ },
|
||||
+ {
|
||||
.ident = "N150/N210/N220/N230",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR,
|
||||
From: John Serock <john.serock@gmail.com>
|
||||
Date: Thu, 13 Oct 2011 10:42:01 +0000 (-0400)
|
||||
Subject: Platform: Detect samsung laptop quirk when initial level is zero
|
||||
X-Git-Tag: v3.2-rc1~111^2~29
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=ba05b237372bad82533d1f717569d1d817ff3c27
|
||||
|
||||
Platform: Detect samsung laptop quirk when initial level is zero
|
||||
|
||||
This patch depends on the "Platform: Brightness quirk for samsung
|
||||
laptop driver" patch from Jason Stubbs. This patch adds a check for an
|
||||
initial brightness level of 0; if the level is 0, this patch changes
|
||||
the brightness level to 1 before the driver attempts to detect the
|
||||
brightness quirk.
|
||||
|
||||
The Samsung N150 netbook experiences the brightness quirk. Without
|
||||
Jason's patch, the only brightness levels available on the N150 are 0,
|
||||
1, and 8. This patch ensures that, when the initial brightness level
|
||||
is 0, the samsang-laptop driver detects the brightness quirk on the
|
||||
N150, thereby making brightness levels 0 through 8 available.
|
||||
|
||||
Signed-off-by: John Serock <john.serock@gmail.com>
|
||||
Acked-by: Jason Stubbs <jasonbstubbs@gmail.com>
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
---
|
||||
|
||||
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
|
||||
index 1e436eb..31ddd57 100644
|
||||
--- a/drivers/platform/x86/samsung-laptop.c
|
||||
+++ b/drivers/platform/x86/samsung-laptop.c
|
||||
@@ -404,8 +404,9 @@ static int get_brightness(struct backlight_device *bd)
|
||||
|
||||
static void check_for_stepping_quirk(void)
|
||||
{
|
||||
- u8 initial_level = read_brightness();
|
||||
+ u8 initial_level;
|
||||
u8 check_level;
|
||||
+ u8 orig_level = read_brightness();
|
||||
|
||||
/*
|
||||
* Some laptops exhibit the strange behaviour of stepping toward
|
||||
@@ -414,6 +415,11 @@ static void check_for_stepping_quirk(void)
|
||||
* around in set_brightness.
|
||||
*/
|
||||
|
||||
+ if (orig_level == 0)
|
||||
+ set_brightness(1);
|
||||
+
|
||||
+ initial_level = read_brightness();
|
||||
+
|
||||
if (initial_level <= 2)
|
||||
check_level = initial_level + 2;
|
||||
else
|
||||
@@ -427,7 +433,7 @@ static void check_for_stepping_quirk(void)
|
||||
pr_info("enabled workaround for brightness stepping quirk\n");
|
||||
}
|
||||
|
||||
- set_brightness(initial_level);
|
||||
+ set_brightness(orig_level);
|
||||
}
|
||||
|
||||
static int update_status(struct backlight_device *bd)
|
4
sources
4
sources
@ -1,3 +1,3 @@
|
||||
8d43453f8159b2332ad410b19d86a931 linux-3.1.tar.bz2
|
||||
364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz
|
||||
204381bc537b689edcb15df0efed6467 compat-wireless-3.2-1.tar.bz2
|
||||
a8e1c25a93a685ec2a1c3a808715fe9d patch-3.1.10.bz2
|
||||
62ac6ac9b870162f693ecf5e8606423a patch-3.2.1.xz
|
||||
|
@ -1,33 +0,0 @@
|
||||
From c91a793f66d5b06292aa431ae3a36c8aca991fa3 Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Tue, 5 Jul 2011 17:04:11 -0700
|
||||
Subject: [PATCH] drivers/video/udlfb bind framebuffer to interface.
|
||||
|
||||
Udlfb has been binding the framebuffer device to its parent, which
|
||||
isn't correct and causes confusion with operations like udev remove.
|
||||
|
||||
Coming plug and play multiseat support is dependent on this fix.
|
||||
|
||||
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Signed-off-by: Bernie Thompson <bernie@plugable.com>
|
||||
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
|
||||
---
|
||||
drivers/video/udlfb.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c
|
||||
index 816a4fd..c6584c9 100644
|
||||
--- a/drivers/video/udlfb.c
|
||||
+++ b/drivers/video/udlfb.c
|
||||
@@ -1549,7 +1549,7 @@ static int dlfb_usb_probe(struct usb_interface *interface,
|
||||
/* We don't register a new USB class. Our client interface is fbdev */
|
||||
|
||||
/* allocates framebuffer driver structure, not framebuffer memory */
|
||||
- info = framebuffer_alloc(0, &usbdev->dev);
|
||||
+ info = framebuffer_alloc(0, &interface->dev);
|
||||
if (!info) {
|
||||
retval = -ENOMEM;
|
||||
pr_err("framebuffer_alloc failed\n");
|
||||
--
|
||||
1.7.4.4
|
||||
|
1652
utrace.patch
1652
utrace.patch
File diff suppressed because it is too large
Load Diff
@ -1,73 +0,0 @@
|
||||
From: Clemens Ladisch <clemens@ladisch.de>
|
||||
Date: Mon, 19 Dec 2011 21:07:58 +0000 (+0100)
|
||||
Subject: x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT
|
||||
X-Git-Url: https://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftip%2Ftip.git;a=commitdiff_plain;h=13f541c10b30fc6529200d7f9a0073217709622f
|
||||
|
||||
x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT
|
||||
|
||||
When printing the code bytes in show_registers(), the markers around the
|
||||
byte at the fault address could make the printk() format string look
|
||||
like a valid log level and facility code. This would prevent this byte
|
||||
from being printed and result in a spurious newline:
|
||||
|
||||
[ 7555.765589] Code: 8b 32 e9 94 00 00 00 81 7d 00 ff 00 00 00 0f 87 96 00 00 00 48 8b 83 c0 00 00 00 44 89 e2 44 89 e6 48 89 df 48 8b 80 d8 02 00 00
|
||||
[ 7555.765683] 8b 48 28 48 89 d0 81 e2 ff 0f 00 00 48 c1 e8 0c 48 c1 e0 04
|
||||
|
||||
Add KERN_CONT where needed, and elsewhere in show_registers() for
|
||||
consistency.
|
||||
|
||||
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
||||
Link: http://lkml.kernel.org/r/4EEFA7AE.9020407@ladisch.de
|
||||
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
||||
---
|
||||
|
||||
diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
|
||||
index 3b97a80..c99f9ed 100644
|
||||
--- a/arch/x86/kernel/dumpstack_32.c
|
||||
+++ b/arch/x86/kernel/dumpstack_32.c
|
||||
@@ -116,16 +116,16 @@ void show_registers(struct pt_regs *regs)
|
||||
for (i = 0; i < code_len; i++, ip++) {
|
||||
if (ip < (u8 *)PAGE_OFFSET ||
|
||||
probe_kernel_address(ip, c)) {
|
||||
- printk(" Bad EIP value.");
|
||||
+ printk(KERN_CONT " Bad EIP value.");
|
||||
break;
|
||||
}
|
||||
if (ip == (u8 *)regs->ip)
|
||||
- printk("<%02x> ", c);
|
||||
+ printk(KERN_CONT "<%02x> ", c);
|
||||
else
|
||||
- printk("%02x ", c);
|
||||
+ printk(KERN_CONT "%02x ", c);
|
||||
}
|
||||
}
|
||||
- printk("\n");
|
||||
+ printk(KERN_CONT "\n");
|
||||
}
|
||||
|
||||
int is_valid_bugaddr(unsigned long ip)
|
||||
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
|
||||
index 19853ad..6d728d9 100644
|
||||
--- a/arch/x86/kernel/dumpstack_64.c
|
||||
+++ b/arch/x86/kernel/dumpstack_64.c
|
||||
@@ -284,16 +284,16 @@ void show_registers(struct pt_regs *regs)
|
||||
for (i = 0; i < code_len; i++, ip++) {
|
||||
if (ip < (u8 *)PAGE_OFFSET ||
|
||||
probe_kernel_address(ip, c)) {
|
||||
- printk(" Bad RIP value.");
|
||||
+ printk(KERN_CONT " Bad RIP value.");
|
||||
break;
|
||||
}
|
||||
if (ip == (u8 *)regs->ip)
|
||||
- printk("<%02x> ", c);
|
||||
+ printk(KERN_CONT "<%02x> ", c);
|
||||
else
|
||||
- printk("%02x ", c);
|
||||
+ printk(KERN_CONT "%02x ", c);
|
||||
}
|
||||
}
|
||||
- printk("\n");
|
||||
+ printk(KERN_CONT "\n");
|
||||
}
|
||||
|
||||
int is_valid_bugaddr(unsigned long ip)
|
Loading…
Reference in New Issue
Block a user