summaryrefslogtreecommitdiffstats
path: root/freed-ora/current
diff options
context:
space:
mode:
Diffstat (limited to 'freed-ora/current')
-rw-r--r--freed-ora/current/master/acpi_reboot.patch51
-rw-r--r--freed-ora/current/master/add-appleir-usb-driver.patch4
-rw-r--r--freed-ora/current/master/apple_backlight.patch688
-rw-r--r--freed-ora/current/master/config-arm8
-rw-r--r--freed-ora/current/master/config-generic143
-rw-r--r--freed-ora/current/master/config-ia64-generic3
-rw-r--r--freed-ora/current/master/config-nodebug102
-rw-r--r--freed-ora/current/master/config-powerpc-generic7
-rw-r--r--freed-ora/current/master/config-powerpc32-generic3
-rw-r--r--freed-ora/current/master/config-powerpc642
-rw-r--r--freed-ora/current/master/config-s390x2
-rw-r--r--freed-ora/current/master/config-x86-generic20
-rw-r--r--freed-ora/current/master/config-x86_64-generic19
-rwxr-xr-xfreed-ora/current/master/deblob-2.6.392413
-rwxr-xr-xfreed-ora/current/master/deblob-check265
-rw-r--r--freed-ora/current/master/drm-intel-big-hammer.patch21
-rw-r--r--freed-ora/current/master/drm-intel-eeebox-eb1007-quirk.patch36
-rw-r--r--freed-ora/current/master/drm-nouveau-updates.patch1876
-rw-r--r--freed-ora/current/master/efi_default_physical.patch403
-rw-r--r--freed-ora/current/master/efifb_update.patch217
-rw-r--r--freed-ora/current/master/flexcop-fix-xlate_proc_name-warning.patch30
-rw-r--r--freed-ora/current/master/fs-call-security_d_instantiate-in-d_obtain_alias.patch64
-rw-r--r--freed-ora/current/master/hdpvr-ir-enable.patch229
-rw-r--r--freed-ora/current/master/kernel.spec1063
-rw-r--r--freed-ora/current/master/linux-2.6-acpi-debug-infinite-loop.patch27
-rw-r--r--freed-ora/current/master/linux-2.6-crash-driver.patch29
-rw-r--r--freed-ora/current/master/linux-2.6-debug-sizeof-structs.patch16
-rw-r--r--freed-ora/current/master/linux-2.6-ehci-check-port-status.patch54
-rw-r--r--freed-ora/current/master/linux-2.6-i386-nx-emulation.patch10
-rw-r--r--freed-ora/current/master/linux-2.6-utrace-ptrace.patch3
-rw-r--r--freed-ora/current/master/patch-libre-2.6.39-rc6.bz2.sign7
-rw-r--r--freed-ora/current/master/patch-libre-2.6.39-rc6.xdeltabin0 -> 525771 bytes
-rw-r--r--freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta.sign7
-rw-r--r--freed-ora/current/master/pci-_osc-supported-field-should-contain-supported-features-not-enabled-ones.patch66
-rw-r--r--freed-ora/current/master/perf-gcc460-build-fixes.patch227
-rw-r--r--freed-ora/current/master/prevent-runtime-conntrack-changes.patch74
-rwxr-xr-xfreed-ora/current/master/scripts/rebase.sh12
-rw-r--r--freed-ora/current/master/sources1
-rw-r--r--freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch305
-rw-r--r--freed-ora/current/master/thinkpad-acpi-fix-backlight.patch56
40 files changed, 3139 insertions, 5424 deletions
diff --git a/freed-ora/current/master/acpi_reboot.patch b/freed-ora/current/master/acpi_reboot.patch
index a980b31f7..c67cf950b 100644
--- a/freed-ora/current/master/acpi_reboot.patch
+++ b/freed-ora/current/master/acpi_reboot.patch
@@ -22,7 +22,7 @@ index c495aa8..c770e66 100644
+ * 1) If the FADT has the ACPI reboot register flag set, try it
+ * 2) If still alive, write to the keyboard controller
+ * 3) If still alive, write to the ACPI reboot register again
-+ * 4) Ig still alive, write to the keyboard controller again
++ * 4) If still alive, write to the keyboard controller again
+ *
+ * If the machine is still alive at this stage, it gives up. We default to
+ * following the same pattern, except that if we're still alive after (4) we'll
@@ -51,52 +51,3 @@ index c495aa8..c770e66 100644
case BOOT_TRIPLE:
load_idt(&no_idt);
-diff --git a/drivers/acpi/acpica/hwxface.c b/drivers/acpi/acpica/hwxface.c
-index 50cc3be..c6a4e63 100644
---- a/drivers/acpi/acpica/hwxface.c
-+++ b/drivers/acpi/acpica/hwxface.c
-@@ -82,12 +82,11 @@ acpi_status acpi_reset(void)
- /*
- * For I/O space, write directly to the OSL. This bypasses the port
- * validation mechanism, which may block a valid write to the reset
-- * register.
-+ * register. Spec section 4.7.3.6 requires register width to be 8.
- */
- status =
- acpi_os_write_port((acpi_io_address) reset_reg->address,
-- acpi_gbl_FADT.reset_value,
-- reset_reg->bit_width);
-+ acpi_gbl_FADT.reset_value, 8);
- } else {
- /* Write the reset value to the reset register */
-
-diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
-index 93f9114..a6c77e8b 100644
---- a/drivers/acpi/reboot.c
-+++ b/drivers/acpi/reboot.c
-@@ -15,9 +15,15 @@ void acpi_reboot(void)
-
- rr = &acpi_gbl_FADT.reset_register;
-
-- /* Is the reset register supported? */
-- if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) ||
-- rr->bit_width != 8 || rr->bit_offset != 0)
-+ /* ACPI reset register was only introduced with v2 of the FADT */
-+
-+ if (acpi_gbl_FADT.header.revision < 2)
-+ return;
-+
-+ /* Is the reset register supported? The spec says we should be
-+ * checking the bit width and bit offset, but Windows ignores
-+ * these fields */
-+ if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER))
- return;
-
- reset_value = acpi_gbl_FADT.reset_value;
-@@ -45,6 +51,4 @@ void acpi_reboot(void)
- acpi_reset();
- break;
- }
-- /* Wait ten seconds */
-- acpi_os_stall(10000000);
- }
diff --git a/freed-ora/current/master/add-appleir-usb-driver.patch b/freed-ora/current/master/add-appleir-usb-driver.patch
index 61edb8061..af4f968f6 100644
--- a/freed-ora/current/master/add-appleir-usb-driver.patch
+++ b/freed-ora/current/master/add-appleir-usb-driver.patch
@@ -99,9 +99,9 @@ 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[] = {
- #if defined(CONFIG_HID_ACRUX_FF) || defined(CONFIG_HID_ACRUX_FF_MODULE)
+ { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) },
{ HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) },
- #endif
- { 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) },
diff --git a/freed-ora/current/master/apple_backlight.patch b/freed-ora/current/master/apple_backlight.patch
deleted file mode 100644
index c7d5a8191..000000000
--- a/freed-ora/current/master/apple_backlight.patch
+++ /dev/null
@@ -1,688 +0,0 @@
-Various fixes to the Apple backlight driver. Upstream in .38?
-
-diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
-index e54a337..fb5df46 100644
---- a/drivers/video/backlight/Kconfig
-+++ b/drivers/video/backlight/Kconfig
-@@ -236,12 +236,12 @@ config BACKLIGHT_MAX8925
- If you have a LCD backlight connected to the WLED output of MAX8925
- WLED output, say Y here to enable this driver.
-
--config BACKLIGHT_MBP_NVIDIA
-- tristate "MacBook Pro Nvidia Backlight Driver"
-+config BACKLIGHT_APPLE
-+ tristate "Apple Backlight Driver"
- depends on X86
- help
-- If you have an Apple Macbook Pro with Nvidia graphics hardware say Y
-- to enable a driver for its backlight
-+ If you have an Intel-based Apple say Y to enable a driver for its
-+ backlight
-
- config BACKLIGHT_TOSA
- tristate "Sharp SL-6000 Backlight Driver"
-diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
-index 44c0f81..ebaecc0 100644
---- a/drivers/video/backlight/Makefile
-+++ b/drivers/video/backlight/Makefile
-@@ -26,7 +26,7 @@ obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
- obj-$(CONFIG_BACKLIGHT_PWM) += pwm_bl.o
- obj-$(CONFIG_BACKLIGHT_DA903X) += da903x_bl.o
- obj-$(CONFIG_BACKLIGHT_MAX8925) += max8925_bl.o
--obj-$(CONFIG_BACKLIGHT_MBP_NVIDIA) += mbp_nvidia_bl.o
-+obj-$(CONFIG_BACKLIGHT_APPLE) += apple_bl.o
- obj-$(CONFIG_BACKLIGHT_TOSA) += tosa_bl.o
- obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
- obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
-diff --git a/drivers/video/backlight/apple_bl.c b/drivers/video/backlight/apple_bl.c
-new file mode 100644
-index 0000000..8f808c7
---- /dev/null
-+++ b/drivers/video/backlight/apple_bl.c
-@@ -0,0 +1,240 @@
-+/*
-+ * Backlight Driver for Intel-based Apples
-+ *
-+ * Copyright (c) Red Hat <mjg@redhat.com>
-+ * Based on code from Pommed:
-+ * Copyright (C) 2006 Nicolas Boichat <nicolas @boichat.ch>
-+ * Copyright (C) 2006 Felipe Alfaro Solana <felipe_alfaro @linuxmail.org>
-+ * Copyright (C) 2007 Julien BLACHE <jb@jblache.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * This driver triggers SMIs which cause the firmware to change the
-+ * backlight brightness. This is icky in many ways, but it's impractical to
-+ * get at the firmware code in order to figure out what it's actually doing.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/backlight.h>
-+#include <linux/err.h>
-+#include <linux/io.h>
-+#include <linux/pci.h>
-+#include <linux/acpi.h>
-+
-+static struct backlight_device *apple_backlight_device;
-+
-+struct hw_data {
-+ /* I/O resource to allocate. */
-+ unsigned long iostart;
-+ unsigned long iolen;
-+ /* Backlight operations structure. */
-+ const struct backlight_ops backlight_ops;
-+ void (*set_brightness)(int);
-+};
-+
-+static const struct hw_data *hw_data;
-+
-+#define DRIVER "apple_backlight: "
-+
-+/* Module parameters. */
-+static int debug;
-+module_param_named(debug, debug, int, 0644);
-+MODULE_PARM_DESC(debug, "Set to one to enable debugging messages.");
-+
-+/*
-+ * Implementation for machines with Intel chipset.
-+ */
-+static void intel_chipset_set_brightness(int intensity)
-+{
-+ outb(0x04 | (intensity << 4), 0xb3);
-+ outb(0xbf, 0xb2);
-+}
-+
-+static int intel_chipset_send_intensity(struct backlight_device *bd)
-+{
-+ int intensity = bd->props.brightness;
-+
-+ if (debug)
-+ printk(KERN_DEBUG DRIVER "setting brightness to %d\n",
-+ intensity);
-+
-+ intel_chipset_set_brightness(intensity);
-+ return 0;
-+}
-+
-+static int intel_chipset_get_intensity(struct backlight_device *bd)
-+{
-+ int intensity;
-+
-+ outb(0x03, 0xb3);
-+ outb(0xbf, 0xb2);
-+ intensity = inb(0xb3) >> 4;
-+
-+ if (debug)
-+ printk(KERN_DEBUG DRIVER "read brightness of %d\n",
-+ intensity);
-+
-+ return intensity;
-+}
-+
-+static const struct hw_data intel_chipset_data = {
-+ .iostart = 0xb2,
-+ .iolen = 2,
-+ .backlight_ops = {
-+ .options = BL_CORE_SUSPENDRESUME,
-+ .get_brightness = intel_chipset_get_intensity,
-+ .update_status = intel_chipset_send_intensity,
-+ },
-+ .set_brightness = intel_chipset_set_brightness,
-+};
-+
-+/*
-+ * Implementation for machines with Nvidia chipset.
-+ */
-+static void nvidia_chipset_set_brightness(int intensity)
-+{
-+ outb(0x04 | (intensity << 4), 0x52f);
-+ outb(0xbf, 0x52e);
-+}
-+
-+static int nvidia_chipset_send_intensity(struct backlight_device *bd)
-+{
-+ int intensity = bd->props.brightness;
-+
-+ if (debug)
-+ printk(KERN_DEBUG DRIVER "setting brightness to %d\n",
-+ intensity);
-+
-+ nvidia_chipset_set_brightness(intensity);
-+ return 0;
-+}
-+
-+static int nvidia_chipset_get_intensity(struct backlight_device *bd)
-+{
-+ int intensity;
-+
-+ outb(0x03, 0x52f);
-+ outb(0xbf, 0x52e);
-+ intensity = inb(0x52f) >> 4;
-+
-+ if (debug)
-+ printk(KERN_DEBUG DRIVER "read brightness of %d\n",
-+ intensity);
-+
-+ return intensity;
-+}
-+
-+static const struct hw_data nvidia_chipset_data = {
-+ .iostart = 0x52e,
-+ .iolen = 2,
-+ .backlight_ops = {
-+ .options = BL_CORE_SUSPENDRESUME,
-+ .get_brightness = nvidia_chipset_get_intensity,
-+ .update_status = nvidia_chipset_send_intensity
-+ },
-+ .set_brightness = nvidia_chipset_set_brightness,
-+};
-+
-+static int __devinit apple_bl_add(struct acpi_device *dev)
-+{
-+ struct backlight_properties props;
-+ struct pci_dev *host;
-+ int intensity;
-+
-+ host = pci_get_bus_and_slot(0, 0);
-+
-+ if (!host) {
-+ printk(KERN_ERR DRIVER "unable to find PCI host\n");
-+ return -ENODEV;
-+ }
-+
-+ if (host->vendor == PCI_VENDOR_ID_INTEL)
-+ hw_data = &intel_chipset_data;
-+ else if (host->vendor == PCI_VENDOR_ID_NVIDIA)
-+ hw_data = &nvidia_chipset_data;
-+
-+ pci_dev_put(host);
-+
-+ if (!hw_data) {
-+ printk(KERN_ERR DRIVER "unknown hardware\n");
-+ return -ENODEV;
-+ }
-+
-+ /* Check that the hardware responds - this may not work under EFI */
-+
-+ intensity = hw_data->backlight_ops.get_brightness(NULL);
-+
-+ if (!intensity) {
-+ hw_data->set_brightness(1);
-+ if (!hw_data->backlight_ops.get_brightness(NULL))
-+ return -ENODEV;
-+
-+ hw_data->set_brightness(0);
-+ }
-+
-+ if (!request_region(hw_data->iostart, hw_data->iolen,
-+ "Apple backlight"))
-+ return -ENXIO;
-+
-+ memset(&props, 0, sizeof(struct backlight_properties));
-+ props.max_brightness = 15;
-+ apple_backlight_device = backlight_device_register("apple_backlight",
-+ NULL, NULL, &hw_data->backlight_ops, &props);
-+
-+ if (IS_ERR(apple_backlight_device)) {
-+ release_region(hw_data->iostart, hw_data->iolen);
-+ return PTR_ERR(apple_backlight_device);
-+ }
-+
-+ apple_backlight_device->props.brightness =
-+ hw_data->backlight_ops.get_brightness(apple_backlight_device);
-+ backlight_update_status(apple_backlight_device);
-+
-+ return 0;
-+}
-+
-+static int __devexit apple_bl_remove(struct acpi_device *dev, int type)
-+{
-+ backlight_device_unregister(apple_backlight_device);
-+
-+ release_region(hw_data->iostart, hw_data->iolen);
-+ hw_data = NULL;
-+ return 0;
-+}
-+
-+static const struct acpi_device_id apple_bl_ids[] = {
-+ {"APP0002", 0},
-+ {"", 0},
-+};
-+
-+static struct acpi_driver apple_bl_driver = {
-+ .name = "Apple backlight",
-+ .ids = apple_bl_ids,
-+ .ops = {
-+ .add = apple_bl_add,
-+ .remove = apple_bl_remove,
-+ },
-+};
-+
-+static int __init apple_bl_init(void)
-+{
-+ return acpi_bus_register_driver(&apple_bl_driver);
-+}
-+
-+static void __exit apple_bl_exit(void)
-+{
-+ acpi_bus_unregister_driver(&apple_bl_driver);
-+}
-+
-+module_init(apple_bl_init);
-+module_exit(apple_bl_exit);
-+
-+MODULE_AUTHOR("Matthew Garrett <mjg@redhat.com>");
-+MODULE_DESCRIPTION("Apple Backlight Driver");
-+MODULE_LICENSE("GPL");
-+MODULE_DEVICE_TABLE(acpi, apple_bl_ids);
-+MODULE_ALIAS("mbp_nvidia_bl");
-diff --git a/drivers/video/backlight/mbp_nvidia_bl.c b/drivers/video/backlight/mbp_nvidia_bl.c
-deleted file mode 100644
-index 1485f73..0000000
---- a/drivers/video/backlight/mbp_nvidia_bl.c
-+++ /dev/null
-@@ -1,400 +0,0 @@
--/*
-- * Backlight Driver for Nvidia 8600 in Macbook Pro
-- *
-- * Copyright (c) Red Hat <mjg@redhat.com>
-- * Based on code from Pommed:
-- * Copyright (C) 2006 Nicolas Boichat <nicolas @boichat.ch>
-- * Copyright (C) 2006 Felipe Alfaro Solana <felipe_alfaro @linuxmail.org>
-- * Copyright (C) 2007 Julien BLACHE <jb@jblache.org>
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License version 2 as
-- * published by the Free Software Foundation.
-- *
-- * This driver triggers SMIs which cause the firmware to change the
-- * backlight brightness. This is icky in many ways, but it's impractical to
-- * get at the firmware code in order to figure out what it's actually doing.
-- */
--
--#include <linux/module.h>
--#include <linux/kernel.h>
--#include <linux/init.h>
--#include <linux/platform_device.h>
--#include <linux/backlight.h>
--#include <linux/err.h>
--#include <linux/dmi.h>
--#include <linux/io.h>
--
--static struct backlight_device *mbp_backlight_device;
--
--/* Structure to be passed to the DMI_MATCH function. */
--struct dmi_match_data {
-- /* I/O resource to allocate. */
-- unsigned long iostart;
-- unsigned long iolen;
-- /* Backlight operations structure. */
-- const struct backlight_ops backlight_ops;
--};
--
--/* Module parameters. */
--static int debug;
--module_param_named(debug, debug, int, 0644);
--MODULE_PARM_DESC(debug, "Set to one to enable debugging messages.");
--
--/*
-- * Implementation for MacBooks with Intel chipset.
-- */
--static int intel_chipset_send_intensity(struct backlight_device *bd)
--{
-- int intensity = bd->props.brightness;
--
-- if (debug)
-- printk(KERN_DEBUG "mbp_nvidia_bl: setting brightness to %d\n",
-- intensity);
--
-- outb(0x04 | (intensity << 4), 0xb3);
-- outb(0xbf, 0xb2);
-- return 0;
--}
--
--static int intel_chipset_get_intensity(struct backlight_device *bd)
--{
-- int intensity;
--
-- outb(0x03, 0xb3);
-- outb(0xbf, 0xb2);
-- intensity = inb(0xb3) >> 4;
--
-- if (debug)
-- printk(KERN_DEBUG "mbp_nvidia_bl: read brightness of %d\n",
-- intensity);
--
-- return intensity;
--}
--
--static const struct dmi_match_data intel_chipset_data = {
-- .iostart = 0xb2,
-- .iolen = 2,
-- .backlight_ops = {
-- .options = BL_CORE_SUSPENDRESUME,
-- .get_brightness = intel_chipset_get_intensity,
-- .update_status = intel_chipset_send_intensity,
-- }
--};
--
--/*
-- * Implementation for MacBooks with Nvidia chipset.
-- */
--static int nvidia_chipset_send_intensity(struct backlight_device *bd)
--{
-- int intensity = bd->props.brightness;
--
-- if (debug)
-- printk(KERN_DEBUG "mbp_nvidia_bl: setting brightness to %d\n",
-- intensity);
--
-- outb(0x04 | (intensity << 4), 0x52f);
-- outb(0xbf, 0x52e);
-- return 0;
--}
--
--static int nvidia_chipset_get_intensity(struct backlight_device *bd)
--{
-- int intensity;
--
-- outb(0x03, 0x52f);
-- outb(0xbf, 0x52e);
-- intensity = inb(0x52f) >> 4;
--
-- if (debug)
-- printk(KERN_DEBUG "mbp_nvidia_bl: read brightness of %d\n",
-- intensity);
--
-- return intensity;
--}
--
--static const struct dmi_match_data nvidia_chipset_data = {
-- .iostart = 0x52e,
-- .iolen = 2,
-- .backlight_ops = {
-- .options = BL_CORE_SUSPENDRESUME,
-- .get_brightness = nvidia_chipset_get_intensity,
-- .update_status = nvidia_chipset_send_intensity
-- }
--};
--
--/*
-- * DMI matching.
-- */
--static /* const */ struct dmi_match_data *driver_data;
--
--static int mbp_dmi_match(const struct dmi_system_id *id)
--{
-- driver_data = id->driver_data;
--
-- printk(KERN_INFO "mbp_nvidia_bl: %s detected\n", id->ident);
-- return 1;
--}
--
--static const struct dmi_system_id __initdata mbp_device_table[] = {
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 1,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 2,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook2,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 3,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook3,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 4,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook4,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 4,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook4,2"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 1,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 1,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,2"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 2,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 2,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,2"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 3,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 3,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,2"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 4,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro4,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookAir 1,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir1,1"),
-- },
-- .driver_data = (void *)&intel_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 5,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5,1"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 5,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5,2"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBook 6,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBook6,1"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookAir 2,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir2,1"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 5,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,1"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 5,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,2"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 5,3",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,3"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 5,4",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,4"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookPro 5,5",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,5"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookAir 3,1",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir3,1"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- {
-- .callback = mbp_dmi_match,
-- .ident = "MacBookAir 3,2",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir3,2"),
-- },
-- .driver_data = (void *)&nvidia_chipset_data,
-- },
-- { }
--};
--
--static int __init mbp_init(void)
--{
-- struct backlight_properties props;
-- if (!dmi_check_system(mbp_device_table))
-- return -ENODEV;
--
-- if (!request_region(driver_data->iostart, driver_data->iolen,
-- "Macbook Pro backlight"))
-- return -ENXIO;
--
-- memset(&props, 0, sizeof(struct backlight_properties));
-- props.max_brightness = 15;
-- mbp_backlight_device = backlight_device_register("mbp_backlight", NULL,
-- NULL,
-- &driver_data->backlight_ops,
-- &props);
-- if (IS_ERR(mbp_backlight_device)) {
-- release_region(driver_data->iostart, driver_data->iolen);
-- return PTR_ERR(mbp_backlight_device);
-- }
--
-- mbp_backlight_device->props.brightness =
-- driver_data->backlight_ops.get_brightness(mbp_backlight_device);
-- backlight_update_status(mbp_backlight_device);
--
-- return 0;
--}
--
--static void __exit mbp_exit(void)
--{
-- backlight_device_unregister(mbp_backlight_device);
--
-- release_region(driver_data->iostart, driver_data->iolen);
--}
--
--module_init(mbp_init);
--module_exit(mbp_exit);
--
--MODULE_AUTHOR("Matthew Garrett <mjg@redhat.com>");
--MODULE_DESCRIPTION("Nvidia-based Macbook Pro Backlight Driver");
--MODULE_LICENSE("GPL");
--MODULE_DEVICE_TABLE(dmi, mbp_device_table);
diff --git a/freed-ora/current/master/config-arm b/freed-ora/current/master/config-arm
index e2d8af390..3095ce40e 100644
--- a/freed-ora/current/master/config-arm
+++ b/freed-ora/current/master/config-arm
@@ -83,7 +83,7 @@ CONFIG_FB_ARMCLCD=m
CONFIG_SND_ARM=y
CONFIG_SND_ARMAACI=m
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
# CONFIG_MUSB_PIO_ONLY is not set
CONFIG_USB_TUSB6010=y
# CONFIG_USB_MUSB_DEBUG is not set
@@ -135,3 +135,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_HVC_DCC is not set
CONFIG_SPARSE_IRQ=y
+
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+
+CONFIG_FTMAC100=m
+
+CONFIG_HWSPINLOCK_OMAP=m
diff --git a/freed-ora/current/master/config-generic b/freed-ora/current/master/config-generic
index 344f5fc07..8b596367f 100644
--- a/freed-ora/current/master/config-generic
+++ b/freed-ora/current/master/config-generic
@@ -32,6 +32,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_FHANDLE=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
@@ -191,6 +192,7 @@ CONFIG_EXTRA_FIRMWARE=""
#
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_SWAP=m
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_AR7_PARTS=m
CONFIG_MTD_CONCAT=m
@@ -240,6 +242,7 @@ CONFIG_MTD_ABSENT=m
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_LATCH_ADDR is not set
CONFIG_MTD_SC520CDP=m
CONFIG_MTD_NETSC520=m
# CONFIG_MTD_SBC_GXX is not set
@@ -282,6 +285,7 @@ CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_NAND_CAFE is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_NANDSIM=m
@@ -569,6 +573,7 @@ CONFIG_SATA_ACARD_AHCI=m
CONFIG_PATA_ACPI=m
CONFIG_PATA_ALI=m
CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
CONFIG_PATA_ARTOP=m
CONFIG_PATA_ATIIXP=m
CONFIG_PATA_CMD640_PCI=m
@@ -689,6 +694,7 @@ CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_MULTIPATH_QL=m
CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_RAID=m
+CONFIG_DM_FLAKEY=m
#
# Fusion MPT device support
@@ -759,6 +765,7 @@ CONFIG_INET_TUNNEL=m
CONFIG_INET_DIAG=m
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
@@ -847,6 +854,7 @@ CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NETFILTER_XTABLES=y
+CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
@@ -902,6 +910,9 @@ CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
@@ -927,6 +938,8 @@ CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_CONNTRACK_IPV6=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_SNMP=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_CT_PROTO_DCCP=m
@@ -1016,6 +1029,19 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_LIST_SET=m
+
#
# SCTP Configuration (EXPERIMENTAL)
#
@@ -1077,6 +1103,9 @@ CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_CLS=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_CLS_BASIC=m
@@ -1421,6 +1450,7 @@ CONFIG_ADM8211=m
CONFIG_ATH_COMMON=m
CONFIG_ATH5K=m
CONFIG_ATH5K_DEBUG=y
+# CONFIG_ATH5K_TRACER is not set
CONFIG_ATH9K=m
# CONFIG_ATH9K_DEBUG is not set
CONFIG_ATH9K_DEBUGFS=y
@@ -1436,12 +1466,12 @@ CONFIG_ATMEL=m
CONFIG_B43=m
CONFIG_B43_PCMCIA=y
CONFIG_B43_SDIO=y
-# CONFIG_B43_DEBUG is not set
+CONFIG_B43_DEBUG=y
CONFIG_B43_PHY_LP=y
CONFIG_B43_PHY_N=y
# CONFIG_B43_FORCE_PIO is not set
CONFIG_B43LEGACY=m
-# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DEBUG=y
CONFIG_B43LEGACY_DMA=y
CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
@@ -1479,7 +1509,12 @@ CONFIG_IWLWIFI=m
CONFIG_IWLWIFI_DEBUG=y
CONFIG_IWLWIFI_DEBUGFS=y
CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
+# CONFIG_IWL_P2P is not set
CONFIG_IWLAGN=m
+CONFIG_IWLWIFI_LEGACY=m
+CONFIG_IWLWIFI_LEGACY_DEBUG=y
+CONFIG_IWLWIFI_LEGACY_DEBUGFS=y
+# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
CONFIG_IWL4965=y
CONFIG_IWL5000=y
CONFIG_IWL3945=m
@@ -1512,6 +1547,7 @@ CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RT2800PCI=m
CONFIG_RT2800PCI_RT33XX=y
CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
CONFIG_RT73USB=m
CONFIG_RTL8180=m
CONFIG_RTL8187=m
@@ -1538,6 +1574,7 @@ CONFIG_WL1271_SDIO=m
CONFIG_WL1271_SPI=m
CONFIG_RTL8192CE=m
+CONFIG_RTL8192CU=m
#
# Token Ring devices
@@ -1597,6 +1634,8 @@ CONFIG_CAN_TSCAN1=m
CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
CONFIG_CAN_SOFTING_CS=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
# CONFIG_PCH_CAN is not set
CONFIG_NETROM=m
CONFIG_ROSE=m
@@ -1655,9 +1694,9 @@ CONFIG_WINBOND_FIR=m
# Bluetooth support
#
CONFIG_BT=m
-CONFIG_BT_L2CAP=m
+CONFIG_BT_L2CAP=y
CONFIG_BT_L2CAP_EXT_FEATURES=y
-CONFIG_BT_SCO=m
+CONFIG_BT_SCO=y
CONFIG_BT_CMTP=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
@@ -1689,6 +1728,7 @@ CONFIG_BT_HCIUART_LL=y
CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m
CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
#
# ISDN subsystem
@@ -1883,6 +1923,7 @@ CONFIG_KEYBOARD_ATKBD=y
# FIXME: Do we really need these keyboards enabled ?
CONFIG_KEYBOARD_ADP5588=m
CONFIG_KEYBOARD_MAX7359=m
+# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_MCS is not set
CONFIG_KEYBOARD_OPENCORES=m
CONFIG_KEYBOARD_QT2160=m
@@ -1959,6 +2000,7 @@ CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
CONFIG_TOUCHSCREEN_W90X900=m
# CONFIG_TOUCHSCREEN_BU21013 is not set
CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
@@ -2113,6 +2155,8 @@ CONFIG_I2C_TINY_USB=m
# CONFIG_I2C_DESIGNWARE is not set
# CONFIG_I2C_XILINX is not set
+CONFIG_I2C_DIOLAN_U2C=m
+
#
# I2C Hardware Sensors Chip support
#
@@ -2219,6 +2263,17 @@ CONFIG_SENSORS_W83795=m
# CONFIG_SENSORS_W83795_FANCTRL is not set
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_ADS1015=m
+
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
# CONFIG_HMC6352 is not set
# CONFIG_BMP085 is not set
@@ -2402,12 +2457,14 @@ CONFIG_HANGCHECK_TIMER=m
# Multimedia devices
#
CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_DEV=m
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_VIDEO_VIVI is not set
#
@@ -2424,11 +2481,13 @@ CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_BT848_DVB=y
CONFIG_VIDEO_BWQCAM=m
CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
CONFIG_VIDEO_CAFE_CCIC=m
# CONFIG_VIDEO_CPIA is not set
CONFIG_VIDEO_CPIA2=m
CONFIG_VIDEO_CQCAM=m
CONFIG_VIDEO_CX23885=m
+# CONFIG_MEDIA_ALTERA_CI is not set
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_CX88=m
@@ -2484,6 +2543,7 @@ CONFIG_RADIO_GEMTEK_PCI=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_MAESTRO=m
CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER_CUSTOMISE=y
@@ -2601,6 +2661,9 @@ CONFIG_DVB_DUMMY_FE=m
CONFIG_DVB_FIREDTV=m
CONFIG_DVB_NGENE=m
CONFIG_DVB_MB86A20S=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_DIB9000=m
+CONFIG_DVB_STV0367=m
#
# Supported SAA7146 based PCI Adapters
@@ -2677,6 +2740,7 @@ CONFIG_IR_RC5_SZ_DECODER=m
CONFIG_IR_LIRC_CODEC=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
CONFIG_IR_NUVOTON=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
@@ -2944,6 +3008,7 @@ CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_US122L=m
CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_6FIRE=m
#
# PCMCIA devices
@@ -2952,6 +3017,9 @@ CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+
#
# Open Sound System
#
@@ -3004,17 +3072,19 @@ CONFIG_USB_TMC=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_CYPRESS_ATACB=y
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_ONETOUCH=y
-CONFIG_USB_STORAGE_ALAUDA=y
-CONFIG_USB_STORAGE_KARMA=y
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
# CONFIG_USB_LIBUSUAL is not set
CONFIG_USB_UAS=m
@@ -3079,6 +3149,11 @@ CONFIG_HID_UCLOGIC=m
CONFIG_HID_WALTOP=m
CONFIG_HID_ROCCAT_PYRA=m
CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
#
# USB Imaging devices
@@ -3137,6 +3212,8 @@ CONFIG_USB_GSPCA_KONICA=m
CONFIG_USB_GSPCA_XIRLINK_CIT=m
CONFIG_USB_GSPCA_SPCA1528=m
CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
@@ -3162,6 +3239,7 @@ CONFIG_SOC_CAMERA_OV9640=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV9740=m
#
# USB Network adaptors
@@ -3190,6 +3268,7 @@ CONFIG_USB_NET_INT51X1=m
CONFIG_USB_CDC_PHONET=m
CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
#
# USB Host-to-Host Cables
@@ -3214,7 +3293,7 @@ CONFIG_USB_USS720=m
#
# USB Serial Converter support
#
-CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_ARK3116=m
@@ -3280,6 +3359,8 @@ CONFIG_USB_SERIAL_DEBUG=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_SAMBA=m
+CONFIG_USB_SERIAL_CONSOLE=y
+
CONFIG_USB_EZUSB=y
CONFIG_USB_EMI62=m
CONFIG_USB_LED=m
@@ -3553,7 +3634,7 @@ CONFIG_NFS_FSCACHE=y
# CONFIG_NFSD_DEPRECATED is not set
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
+CONFIG_EXPORTFS=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_XPRT_RDMA=m
@@ -3858,6 +3939,7 @@ CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_MEM_RES_CTLR=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y # XXX disabled by default, pass 'swapaccount'
# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+CONFIG_CGROUP_PERF=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
@@ -3885,7 +3967,7 @@ CONFIG_IBMASR=m
CONFIG_PM_DEBUG=y
CONFIG_PM_TRACE=y
# CONFIG_PM_VERBOSE is not set
-# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_RUNTIME=y
## BEGIN ISA Junk.
@@ -4069,9 +4151,11 @@ CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LM3530=m
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
+CONFIG_DW_DMAC=m
# CONFIG_TIMB_DMA is not set
CONFIG_NET_DMA=y
# CONFIG_DMATEST is not set
@@ -4173,6 +4257,8 @@ CONFIG_PM_TRACE_RTC=y
CONFIG_R6040=m
CONFIG_BNX2X=m
+CONFIG_SCSI_BNX2X_FCOE=m
+
CONFIG_NOZOMI=m
# CONFIG_TPS65010 is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
@@ -4200,6 +4286,7 @@ CONFIG_MEMSTICK=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MEMSTICK_TIFM_MS=m
CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
@@ -4328,6 +4415,10 @@ CONFIG_USB_ATMEL=m
# CONFIG_DX_SEP is not set
# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_RTS_PSTOR is not set
+# CONFIG_DRM_PSB is not set
+# CONFIG_ALTERA_STAPL is not set
+# CONFIG_DVB_CXD2099 is not set
#
# Android
@@ -4337,7 +4428,7 @@ CONFIG_USB_ATMEL=m
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
-# CONFIG_BOOT_TRACER is not set
+CONFIG_BOOT_TRACER=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_SECURITYFS=y
@@ -4423,6 +4514,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_LOCKUP_DETECTOR=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_ATOMIC64_SELFTEST=y
@@ -4449,6 +4541,7 @@ CONFIG_GPIO_SYSFS=y
# CONFIG_GPIO_IT8761E is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_UCB1400_CORE is not set
+# CONFIG_TPS6105X is not set
# CONFIG_RADIO_MIROPCM20 is not set
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_GPIO_SCH is not set
@@ -4490,6 +4583,20 @@ CONFIG_NFC_DEVICES=y
CONFIG_PN544_NFC=m
CONFIG_TARGET_CORE=m
+CONFIG_LOOPBACK_TARGET=m
+# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
+
+CONFIG_HWSPINLOCK=m
+
+CONFIG_PSTORE=y
+
+# CONFIG_AVERAGE is not set
+
+# CONFIG_SIGMA is not set
+
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+
+CONFIG_TEST_KSTRTOX=m
diff --git a/freed-ora/current/master/config-ia64-generic b/freed-ora/current/master/config-ia64-generic
index 5c864b3d0..5cc5091c0 100644
--- a/freed-ora/current/master/config-ia64-generic
+++ b/freed-ora/current/master/config-ia64-generic
@@ -183,6 +183,7 @@ CONFIG_PROC_VMCORE=y
# CONFIG_IA64_MC_ERR_INJECT is not set
CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=y
CONFIG_SENSORS_I5K_AMB=m
@@ -206,3 +207,5 @@ CONFIG_RCU_FANOUT=64
CONFIG_ACPI_POWER_METER=m
CONFIG_I2C_SCMI=m
+
+# CONFIG_HP_ACCEL is not set
diff --git a/freed-ora/current/master/config-nodebug b/freed-ora/current/master/config-nodebug
index c81b03b85..ba766eb88 100644
--- a/freed-ora/current/master/config-nodebug
+++ b/freed-ora/current/master/config-nodebug
@@ -2,100 +2,100 @@ CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_PCM_XRUN_DEBUG=y
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_PROVE_RCU is not set
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_LOCK_ALLOC=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_DEBUG_VM=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_PROVE_RCU=y
# CONFIG_PROVE_RCU_REPEATEDLY is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_DEBUG_PER_CPU_MAPS=y
CONFIG_CPUMASK_OFFSTACK=y
-# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_FAILSLAB is not set
-# CONFIG_FAIL_PAGE_ALLOC is not set
-# CONFIG_FAIL_MAKE_REQUEST is not set
-# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
-# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
-# CONFIG_FAIL_IO_TIMEOUT is not set
+CONFIG_FAULT_INJECTION=y
+CONFIG_FAILSLAB=y
+CONFIG_FAIL_PAGE_ALLOC=y
+CONFIG_FAIL_MAKE_REQUEST=y
+CONFIG_FAULT_INJECTION_DEBUG_FS=y
+CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+CONFIG_FAIL_IO_TIMEOUT=y
-# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_DEBUG_ON=y
-# CONFIG_LOCK_STAT is not set
+CONFIG_LOCK_STAT=y
-# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_STACK_USAGE=y
-# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
-# CONFIG_DEBUG_SG is not set
+CONFIG_DEBUG_SG=y
# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_OBJECTS is not set
+CONFIG_DEBUG_WRITECOUNT=y
+CONFIG_DEBUG_OBJECTS=y
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
-# CONFIG_DEBUG_OBJECTS_FREE is not set
-# CONFIG_DEBUG_OBJECTS_TIMERS is not set
+CONFIG_DEBUG_OBJECTS_FREE=y
+CONFIG_DEBUG_OBJECTS_TIMERS=y
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
-# CONFIG_X86_PTDUMP is not set
+CONFIG_X86_PTDUMP=y
-# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEBUG_DEVICES=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_NOTIFIERS is not set
+CONFIG_DEBUG_NOTIFIERS=y
-# CONFIG_DMA_API_DEBUG is not set
+CONFIG_DMA_API_DEBUG=y
-# CONFIG_MMIOTRACE is not set
+CONFIG_MMIOTRACE=y
-# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_DEBUG_CREDENTIALS=y
# off in both production debug and nodebug builds,
# on in rawhide nodebug builds
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
-# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_DEBUG=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_DEBUG_PERF_USE_VMALLOC=y
-# CONFIG_JBD2_DEBUG is not set
+CONFIG_JBD2_DEBUG=y
-# CONFIG_DEBUG_CFQ_IOSCHED is not set
+CONFIG_DEBUG_CFQ_IOSCHED=y
-# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_DRBD_FAULT_INJECTION=y
-# CONFIG_ATH_DEBUG is not set
-# CONFIG_CARL9170_DEBUGFS is not set
-# CONFIG_IWLWIFI_DEVICE_TRACING is not set
+CONFIG_ATH_DEBUG=y
+CONFIG_CARL9170_DEBUGFS=y
+CONFIG_IWLWIFI_DEVICE_TRACING=y
-# CONFIG_DEBUG_OBJECTS_WORK is not set
+CONFIG_DEBUG_OBJECTS_WORK=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
-# CONFIG_DMADEVICES_DEBUG is not set
-# CONFIG_DMADEVICES_VDEBUG is not set
+CONFIG_DMADEVICES_DEBUG=y
+CONFIG_DMADEVICES_VDEBUG=y
CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_QUOTA_DEBUG is not set
+CONFIG_CEPH_LIB_PRETTYDEBUG=y
+CONFIG_QUOTA_DEBUG=y
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
CONFIG_PCI_DEFAULT_USE_CRS=y
CONFIG_KGDB_KDB=y
CONFIG_KDB_KEYBOARD=y
-# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
-# CONFIG_TEST_LIST_SORT is not set
+CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
+CONFIG_TEST_LIST_SORT=y
-# CONFIG_DEBUG_SET_MODULE_RONX is not set
+CONFIG_DEBUG_SET_MODULE_RONX=y
diff --git a/freed-ora/current/master/config-powerpc-generic b/freed-ora/current/master/config-powerpc-generic
index 9cd30a459..05b9a4a3c 100644
--- a/freed-ora/current/master/config-powerpc-generic
+++ b/freed-ora/current/master/config-powerpc-generic
@@ -325,6 +325,8 @@ CONFIG_PATA_MACIO=m
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_88PM8607 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_XPS_USB_HCD_XILINX is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
# CONFIG_MMC_SDHCI_OF_HLWD is not set
@@ -338,3 +340,8 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
CONFIG_MPC512X_DMA=m
CONFIG_KVM_GUEST=y
+
+CONFIG_I2C_MPC=m
+
+# CONFIG_IMA is not set
+# CONFIG_TCG_TPM is not set
diff --git a/freed-ora/current/master/config-powerpc32-generic b/freed-ora/current/master/config-powerpc32-generic
index d2304955f..07c060cf1 100644
--- a/freed-ora/current/master/config-powerpc32-generic
+++ b/freed-ora/current/master/config-powerpc32-generic
@@ -137,7 +137,6 @@ CONFIG_VIRTUALIZATION=y
# CONFIG_MEMSTICK is not set
# CONFIG_IPMI_HANDLER is not set
-# CONFIG_TCG_TPM is not set
# PPC gets sad with debug alloc (bz 448598)
# CONFIG_DEBUG_PAGEALLOC is not set
@@ -182,3 +181,5 @@ CONFIG_PERF_EVENTS=y
CONFIG_EVENT_PROFILE=y
CONFIG_KVM_BOOK3S_32=m
+
+# CONFIG_SCSI_QLA_ISCSI is not set
diff --git a/freed-ora/current/master/config-powerpc64 b/freed-ora/current/master/config-powerpc64
index 74f33d1aa..2946a0686 100644
--- a/freed-ora/current/master/config-powerpc64
+++ b/freed-ora/current/master/config-powerpc64
@@ -126,7 +126,7 @@ CONFIG_SCSI_IBMVSCSIS=m
CONFIG_SECCOMP=y
-CONFIG_TUNE_CELL=y
+# CONFIG_TUNE_CELL is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_BLK_DEV_PLATFORM is not set
diff --git a/freed-ora/current/master/config-s390x b/freed-ora/current/master/config-s390x
index 780fc9146..55e205fdd 100644
--- a/freed-ora/current/master/config-s390x
+++ b/freed-ora/current/master/config-s390x
@@ -233,3 +233,5 @@ CONFIG_SCHED_MC=y
CONFIG_SCHED_BOOK=y
CONFIG_STRICT_DEVMEM=y
+
+# CONFIG_WARN_DYNAMIC_STACK is not set
diff --git a/freed-ora/current/master/config-x86-generic b/freed-ora/current/master/config-x86-generic
index d6feae847..f8ccad801 100644
--- a/freed-ora/current/master/config-x86-generic
+++ b/freed-ora/current/master/config-x86-generic
@@ -152,6 +152,7 @@ CONFIG_ACPI_POWER_METER=m
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_HED=m
CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_GHES=m
# CONFIG_ACPI_APEI_EINJ is not set
CONFIG_ACPI_IPMI=m
@@ -324,6 +325,10 @@ CONFIG_TC1100_WMI=m
CONFIG_HP_WMI=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_XO15_EBOOK=m
# CONFIG_TOUCHSCREEN_INTEL_MID is not set
@@ -362,6 +367,7 @@ CONFIG_LGUEST_GUEST=y
CONFIG_VMI=y
CONFIG_XEN=y
+# CONFIG_XEN_DEBUG is not set
CONFIG_XEN_MAX_DOMAIN_MEMORY=8
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
@@ -371,6 +377,9 @@ CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_KBDDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_XEN_WDT=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
@@ -378,6 +387,7 @@ CONFIG_XEN_BACKEND=y
CONFIG_XEN_DEBUG_FS=y
CONFIG_XEN_PLATFORM_PCI=m
CONFIG_XEN_GNTDEV=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_MTD_ESB2ROM=m
CONFIG_MTD_CK804XROM=m
@@ -400,6 +410,8 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=y
+
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
@@ -420,6 +432,9 @@ CONFIG_OLPC_OPENFIRMWARE=y
CONFIG_BATTERY_OLPC=y
CONFIG_MOUSE_PS2_OLPC=y
+# staging
+# CONFIG_FB_OLPC_DCON is not set
+
CONFIG_STRICT_DEVMEM=y
# CONFIG_NO_BOOTMEM is not set
@@ -478,6 +493,7 @@ CONFIG_SFI=y
CONFIG_INPUT_WINBOND_CIR=m
CONFIG_I2C_SCMI=m
+CONFIG_I2C_PXA=m
CONFIG_SBC_FITPC2_WATCHDOG=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_DECODE_MCE=m
@@ -544,3 +560,7 @@ CONFIG_PROC_DEVICETREE=y
CONFIG_SERIAL_OF_PLATFORM=m
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
# CONFIG_MMC_SDHCI_OF is not set
+
+CONFIG_HP_ACCEL=m
+
+# CONFIG_RAPIDIO is not set
diff --git a/freed-ora/current/master/config-x86_64-generic b/freed-ora/current/master/config-x86_64-generic
index 0154cf1b0..2449a4c85 100644
--- a/freed-ora/current/master/config-x86_64-generic
+++ b/freed-ora/current/master/config-x86_64-generic
@@ -16,7 +16,7 @@ CONFIG_K8_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
# CONFIG_NUMA_EMU is not set
-CONFIG_NR_CPUS=256
+CONFIG_NR_CPUS=512
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_P4_CLOCKMOD=m
CONFIG_IA32_EMULATION=y
@@ -98,6 +98,7 @@ CONFIG_ACPI_POWER_METER=m
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_HED=m
CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_GHES=m
# CONFIG_ACPI_APEI_EINJ is not set
CONFIG_ACPI_IPMI=m
@@ -118,6 +119,11 @@ CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
CONFIG_HP_WMI=m
CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+# CONFIG_XO15_EBOOK is not set
+
# CONFIG_INTEL_SCU_IPC is not set
# CONFIG_TOUCHSCREEN_INTEL_MID is not set
@@ -269,6 +275,8 @@ CONFIG_PROC_VMCORE=y
CONFIG_CRASH=m
CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=y
+
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
@@ -294,6 +302,7 @@ CONFIG_KVM_GUEST=y
CONFIG_KVM_MMU_AUDIT=y
CONFIG_XEN=y
+# CONFIG_XEN_DEBUG is not set
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
@@ -303,6 +312,9 @@ CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_KBDDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_XEN_WDT=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
@@ -312,6 +324,7 @@ CONFIG_XEN_BACKEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_DEBUG_FS=y
CONFIG_XEN_PLATFORM_PCI=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_DMADEVICES=y
CONFIG_INTEL_IOATDMA=m
@@ -449,3 +462,7 @@ CONFIG_JUMP_LABEL=y
CONFIG_HP_ILO=m
CONFIG_TRANSPARENT_HUGEPAGE=y
+
+CONFIG_HP_ACCEL=m
+
+# CONFIG_RAPIDIO is not set
diff --git a/freed-ora/current/master/deblob-2.6.39 b/freed-ora/current/master/deblob-2.6.39
new file mode 100755
index 000000000..956038bb6
--- /dev/null
+++ b/freed-ora/current/master/deblob-2.6.39
@@ -0,0 +1,2413 @@
+#!/bin/sh
+
+# Copyright (C) 2008, 2009, 2010, 2011 Alexandre Oliva <lxoliva@fsfla.org>
+# Copyright (C) 2008 Jeff Moe
+# Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+# deblob - remove non-free blobs from the vanilla linux kernel
+
+# http://www.fsfla.org/svn/fsfla/software/linux-libre
+
+
+# This script, suited for the kernel version named below, in kver,
+# attempts to remove only non-Free Software bits, without removing
+# Free Software that happens to be in the same file.
+
+# Drivers that currently require non-Free firmware are retained, but
+# firmware included in GPLed sources is replaced with /*(DEBLOBBED)*/
+# if the deblob-check script, that knows how to do this, is present.
+# -lxoliva
+
+
+# See also:
+# http://wiki.debian.org/KernelFirmwareLicensing
+# svn://svn.debian.org/kernel/dists/trunk/linux-2.6/debian/patches/debian/dfsg/files-1
+# http://wiki.gnewsense.org/Builder gen-kernel
+
+# Thanks to Brian Brazil @ gnewsense
+
+
+# For each kver release, start extra with an empty string, then count
+# from 1 if changes are needed that require rebuilding the tarball.
+kver=2.6.39 extra=0-
+
+case $1 in
+--force)
+ echo "WARNING: Using the force, ignored errors will be" >&2
+ die () {
+ echo ERROR: "$@" >&2
+ errors=:
+ }
+ forced=: errors=false
+ shift
+ ;;
+*)
+ die () {
+ echo ERROR: "$@" >&2
+ echo Use --force to ignore
+ exit 1
+ }
+ forced=false errors=false
+ ;;
+esac
+
+check=`echo "$0" | sed 's,[^/]*$,,;s,^$,.,;s,/*$,,'`/deblob-check
+if [ ! -f $check ] ; then
+ if $forced; then
+ die deblob-check script missing, will remove entire files
+ else
+ die deblob-check script missing
+ fi
+ have_check=false
+else
+ have_check=:
+fi
+
+filetest () {
+ if [ ! -f $1 ]; then
+ die $1 does not exist, something is wrong && return 1
+ fi
+}
+
+announce () {
+ echo
+ echo "$@"
+}
+
+clean_file () {
+ #$1 = filename
+ filetest $1 || return
+ rm $1
+ echo $1: removed
+}
+
+check_changed () {
+ #$1 = filename
+ if cmp $1.deblob $1 > /dev/null; then
+ rm $1.deblob
+ die $1 did not change, something is wrong && return 1
+ fi
+ mv $1.deblob $1
+}
+
+clean_blob () {
+ #$1 = filename
+ filetest $1 || return
+ if $have_check; then
+ name=$1
+ set fnord "$@" -d
+ shift 2
+ $check "$@" -i linux-$kver $name > $name.deblob
+ check_changed $name && echo $name: removed blobs
+ else
+ clean_file $1
+ fi
+}
+
+dummy_blob () {
+ #$1 = filename
+ if test -f $1; then
+ die $1 exists, something is wrong && return
+ elif test ! -f firmware/Makefile; then
+ die firmware/Makefile does not exist, something is wrong && return
+ fi
+
+ clean_sed "s,`echo $1 | sed s,^firmware/,,`,\$(DEBLOBBED),g" \
+ firmware/Makefile "dropped $1"
+}
+
+clean_fw () {
+ #$1 = firmware text input, $2 = firmware output
+ filetest $1 || return
+ if test -f $2; then
+ die $2 exists, something is wrong && return
+ fi
+ clean_blob $1 -s 4
+ dummy_blob $2
+}
+
+drop_fw_file () {
+ #$1 = firmware text input, $2 = firmware output
+ filetest $1 || return
+ if test -f $2; then
+ die $2 exists, something is wrong && return
+ fi
+ clean_file $1
+ dummy_blob $2
+}
+
+clean_kconfig () {
+ #$1 = filename $2 = things to remove
+ case $1 in
+ -f)
+ shift
+ ;;
+ *)
+ if $have_check; then
+ return
+ fi
+ ;;
+ esac
+ filetest $1 || return
+ sed "/^config \\($2\\)\$/{p;i\
+ depends on NONFREE
+d;}" $1 > $1.deblob
+ check_changed $1 && echo $1: marked config $2 as depending on NONFREE
+}
+
+clean_mk () {
+ #$1 = config $2 = Makefile name
+ # We don't clean up Makefiles any more --lxoliva
+ # sed -i "/\\($1\\)/d" $2
+ # echo $2: removed $1 support
+ # check_changed $2
+ filetest $2 || return
+ if sed -n "/\\($1\\)/p" $2 | grep . > /dev/null; then
+ :
+ else
+ die $2 does not contain matches for $1
+ fi
+}
+
+clean_sed () {
+ #$1 = sed-script $2 = file $3 = comment
+ filetest $2 || return
+ sed -e "$1" "$2" > "$2".deblob || {
+ die $2: failed: ${3-applied sed script $1} && return 1; }
+ check_changed $2 && echo $2: ${3-applied sed script $1}
+}
+
+reject_firmware () {
+ #$1 = file $2 = pre sed pattern
+ filetest $1 || return
+ clean_sed "$2"'
+s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
+' "$1" 'disabled non-Free firmware-loading machinery'
+}
+
+maybe_reject_firmware () {
+ #$1 = file $2 = pre sed pattern
+ filetest $1 || return
+ clean_sed "$2"'
+s,request_firmware\(_nowait\)\?,maybe_reject_firmware\1,g
+' "$1" 'retain Free firmware-loading machinery, disabling non-Free one'
+}
+
+undefine_macro () {
+ #$1 - macro name
+ #$2 - substitution
+ #$3 - message
+ #rest - file names
+ macro=$1 repl=$2 msg=$3; shift 3
+ for f in "$@"; do
+ clean_sed "
+s,^#define $macro .*\$,/*(DEBLOBBED)*/,;
+s,$macro,$repl,g;
+" "$f" "$msg"
+ done
+}
+
+undefault_firmware () {
+ #$1 - pattern such that $1_DEFAULT_FIRMWARE is #defined to non-Free firmware
+ #$@ other than $1 - file names
+ macro="$1"_DEFAULT_FIRMWARE; shift
+ undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \
+ "disabled non-Free firmware" "$@"
+}
+
+# First, check that files that contain firmwares and their
+# corresponding sources are present.
+
+for f in \
+ drivers/char/ser_a2232fw.h \
+ drivers/char/ser_a2232fw.ax \
+ drivers/net/ixp2000/ixp2400_rx.ucode \
+ drivers/net/ixp2000/ixp2400_rx.uc \
+ drivers/net/ixp2000/ixp2400_tx.ucode \
+ drivers/net/ixp2000/ixp2400_rx.uc \
+ drivers/net/wan/wanxlfw.inc_shipped \
+ drivers/net/wan/wanxlfw.S \
+ drivers/net/wireless/atmel.c \
+ drivers/net/wireless/atmel.c \
+ drivers/scsi/53c700_d.h_shipped \
+ drivers/scsi/53c700.scr \
+ drivers/scsi/aic7xxx/aic79xx_seq.h_shipped \
+ drivers/scsi/aic7xxx/aic79xx.seq \
+ drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped \
+ drivers/scsi/aic7xxx/aic7xxx.seq \
+ drivers/scsi/aic7xxx_old/aic7xxx_seq.c \
+ drivers/scsi/aic7xxx_old/aic7xxx.seq \
+ drivers/scsi/53c7xx_d.h_shipped \
+ drivers/scsi/53c7xx.scr \
+ drivers/scsi/sym53c8xx_2/sym_fw1.h \
+ drivers/scsi/sym53c8xx_2/sym_fw1.h \
+ drivers/scsi/sym53c8xx_2/sym_fw2.h \
+ drivers/scsi/sym53c8xx_2/sym_fw2.h \
+ firmware/dsp56k/bootstrap.bin.ihex \
+ firmware/dsp56k/bootstrap.asm \
+ firmware/keyspan_pda/keyspan_pda.HEX \
+ firmware/keyspan_pda/keyspan_pda.S \
+ firmware/keyspan_pda/xircom_pgs.HEX \
+ firmware/keyspan_pda/xircom_pgs.S \
+ sound/pci/cs46xx/imgs/cwcdma.h \
+ sound/pci/cs46xx/imgs/cwcdma.asp \
+; do
+ if test ! $f; then
+ die $f is not present, something is amiss && return
+ fi
+done
+
+# Identify the tarball.
+grep -q 'EXTRAVERSION.*-libre' Makefile ||
+clean_sed "s,^EXTRAVERSION.*,&-libre$extra,
+" Makefile 'added -libre to EXTRAVERSION'
+
+grep -q Linux-libre README ||
+clean_sed '
+1,3 s,Linux kernel release.*kernel\.org.*,Linux-libre <http://linux-libre.fsfla.org>,
+2,5 s,Linux version 2.6,Linux-libre,
+1,20 s,\(operating system \)\?Unix,Unix kernel,
+/WHAT IS LINUX/i\
+WHAT IS Linux-libre?\
+\
+ Linux-libre is a Free version of the kernel Linux (see below),\
+ suitable for use with the GNU Operating System in 100% Free\
+ GNU/Linux-libre System Distributions.\
+ http://www.gnu.org/distros/\
+\
+ It removes non-Free components from Linux, that are disguised as\
+ source code or distributed in separate files. It also disables\
+ run-time requests for non-Free components, shipped separately or as\
+ part of Linux, and documentation pointing to them, so as to avoid\
+ (Free-)baiting users into the trap of non-Free Software.\
+ http://www.fsfla.org/anuncio/2010-11-Linux-2.6.36-libre-debait\
+\
+ Linux-libre started within the gNewSense GNU/Linux distribution.\
+ It was later adopted by Jeff Moe, who coined its name, and in 2008\
+ it became a project maintained by FSF Latin America.\
+\
+ The Linux-libre project takes a minimal-changes approach to cleaning\
+ up Linux, making no effort to substitute components that need to be\
+ removed with functionally equivalent Free ones. Nevertheless, we\
+ encourage and support efforts towards doing so.\
+ http://libreplanet.org/wiki/LinuxLibre:Devices_that_require_non-free_firmware\
+\
+ Our mascot is Freedo, a light-blue penguin that has just come out\
+ of the the shower. Although we like penguins, GNU is a much\
+ greater contribution to the entire system, so its mascot deserves\
+ more promotion. See our web page for their images.\
+ http://linux-libre.fsfla.org/\
+
+' README 'added blurb about Linux-libre'
+
+# Add reject_firmware and maybe_reject_firmware
+grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
+clean_sed '$i\
+#ifndef _LINUX_LIBRE_FIRMWARE_H\
+#define _LINUX_LIBRE_FIRMWARE_H\
+\
+#include <linux/device.h>\
+\
+#define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
+\
+static inline int\
+report_missing_free_firmware(const char *name, const char *what)\
+{\
+ printk(KERN_ERR "%s: Missing Free %s\\n", name,\
+ what ? what : "firmware");\
+ return -EINVAL;\
+}\
+static inline int\
+reject_firmware(const struct firmware **fw,\
+ const char *name, struct device *device)\
+{\
+ const struct firmware *xfw = NULL;\
+ int retval;\
+ report_missing_free_firmware(dev_name(device), NULL);\
+ retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\
+ if (!retval)\
+ release_firmware(xfw);\
+ return -EINVAL;\
+}\
+static inline int\
+maybe_reject_firmware(const struct firmware **fw,\
+ const char *name, struct device *device)\
+{\
+ if (strstr (name, NONFREE_FIRMWARE))\
+ return reject_firmware(fw, name, device);\
+ else\
+ return request_firmware(fw, name, device);\
+}\
+static inline void\
+discard_rejected_firmware(const struct firmware *fw, void *context)\
+{\
+ release_firmware(fw);\
+}\
+static inline int\
+reject_firmware_nowait(struct module *module, int uevent,\
+ const char *name, struct device *device,\
+ gfp_t gfp, void *context,\
+ void (*cont)(const struct firmware *fw,\
+ void *context))\
+{\
+ int retval;\
+ report_missing_free_firmware(dev_name(device), NULL);\
+ retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\
+ device, gfp, NULL,\
+ discard_rejected_firmware);\
+ if (retval)\
+ return retval;\
+ return -EINVAL;\
+}\
+static inline int\
+maybe_reject_firmware_nowait(struct module *module, int uevent,\
+ const char *name, struct device *device,\
+ gfp_t gfp, void *context,\
+ void (*cont)(const struct firmware *fw,\
+ void *context))\
+{\
+ if (strstr (name, NONFREE_FIRMWARE))\
+ return reject_firmware_nowait(module, uevent, name,\
+ device, gfp, context, cont);\
+ else\
+ return request_firmware_nowait(module, uevent, name,\
+ device, gfp, context, cont);\
+}\
+\
+#endif /* _LINUX_LIBRE_FIRMWARE_H */\
+' include/linux/firmware.h 'added non-Free firmware notification support'
+
+########
+# Arch #
+########
+
+# x86
+
+announce MICROCODE_AMD - "AMD microcode patch loading support"
+reject_firmware arch/x86/kernel/microcode_amd.c
+clean_blob arch/x86/kernel/microcode_amd.c
+clean_kconfig arch/x86/Kconfig 'MICROCODE_AMD'
+clean_mk CONFIG_MICROCODE_AMD arch/x86/kernel/Makefile
+
+announce MICROCODE_INTEL - "Intel microcode patch loading support"
+reject_firmware arch/x86/kernel/microcode_intel.c
+clean_blob arch/x86/kernel/microcode_intel.c
+clean_kconfig arch/x86/Kconfig 'MICROCODE_INTEL'
+clean_mk CONFIG_MICROCODE_INTEL arch/x86/kernel/Makefile
+
+# arm
+
+announce IXP4XX_NPE - "IXP4xx Network Processor Engine support"
+reject_firmware arch/arm/mach-ixp4xx/ixp4xx_npe.c
+clean_blob Documentation/arm/IXP4xx
+
+announce ARCH_NETX - "Hilscher NetX based"
+clean_sed '
+s,\([" ]\)request_firmware(,\1reject_firmware(,
+' arch/arm/mach-netx/xc.c 'disabled non-Free firmware-loading machinery'
+clean_blob arch/arm/mach-netx/xc.c
+clean_blob drivers/net/netx-eth.c
+clean_kconfig arch/arm/Kconfig 'ARCH_NETX'
+clean_mk CONFIG_ARCH_NETX arch/arm/Makefile
+
+announce WESTBRIDGE_DEVICE_DRIVER - "West Bridge Device Driver"
+reject_firmware drivers/staging/westbridge/astoria/device/cyasdevice.c
+clean_blob drivers/staging/westbridge/astoria/device/cyasdevice.c
+clean_kconfig drivers/staging/westbridge/astoria/device/Kconfig 'WESTBRIDGE_DEVICE_DRIVER'
+clean_mk 'CONFIG_WESTBRIDGE_DEVICE_DRIVER' drivers/staging/westbridge/astoria/device/Makefile
+
+#######
+# ATM #
+#######
+
+announce ATM_AMBASSADOR - "Madge Ambassador, Collage PCI 155 Server"
+reject_firmware drivers/atm/ambassador.c
+clean_blob drivers/atm/ambassador.c
+clean_fw firmware/atmsar11.HEX firmware/atmsar11.fw
+clean_kconfig drivers/atm/Kconfig 'ATM_AMBASSADOR'
+clean_mk CONFIG_ATM_AMBASSADOR drivers/atm/Makefile
+
+announce ATM_FORE200E - "FORE Systems 200E-series"
+reject_firmware drivers/atm/fore200e.c
+clean_blob drivers/atm/fore200e.c
+clean_blob Documentation/networking/fore200e.txt
+clean_blob drivers/atm/.gitignore
+clean_blob Documentation/dontdiff
+clean_kconfig drivers/atm/Kconfig 'ATM_FORE200E'
+clean_mk CONFIG_ATM_FORE200E drivers/atm/Makefile
+
+announce ATM_SOLOS - "Solos ADSL2+ PCI Multiport card driver"
+reject_firmware drivers/atm/solos-pci.c
+clean_blob drivers/atm/solos-pci.c
+clean_kconfig drivers/atm/Kconfig 'ATM_SOLOS'
+clean_mk CONFIG_ATM_SOLOS drivers/atm/Makefile
+
+########
+# tty #
+########
+
+announce COMPUTONE - "Computone IntelliPort Plus serial"
+drop_fw_file firmware/intelliport2.bin.ihex firmware/intelliport2.bin
+reject_firmware drivers/staging/tty/ip2/ip2main.c
+clean_blob drivers/staging/tty/ip2/ip2main.c
+clean_kconfig drivers/staging/tty/Kconfig 'COMPUTONE'
+clean_mk CONFIG_COMPUTONE drivers/staging/tty/Makefile
+
+announce CYCLADES - "Cyclades async mux support"
+reject_firmware drivers/tty/cyclades.c
+clean_blob drivers/tty/cyclades.c
+clean_kconfig drivers/tty/Kconfig 'CYCLADES'
+clean_mk CONFIG_CYCLADES drivers/tty/Makefile
+
+announce ISI - "Multi-Tech multiport card support"
+reject_firmware drivers/tty/isicom.c
+clean_blob drivers/tty/isicom.c
+clean_kconfig drivers/tty/Kconfig 'ISI'
+clean_mk CONFIG_ISI drivers/tty/Makefile
+
+announce MOXA_INTELLIO - "Moxa Intellio support"
+reject_firmware drivers/tty/moxa.c
+clean_blob drivers/tty/moxa.c
+clean_kconfig drivers/tty/Kconfig 'MOXA_INTELLIO'
+clean_mk CONFIG_MOXA_INTELLIO drivers/tty/Makefile
+
+# gpu drm
+
+announce DRM_NOUVEAU - "Nouveau (nVidia) cards"
+reject_firmware drivers/gpu/drm/nouveau/nvc0_graph.c
+clean_blob drivers/gpu/drm/nouveau/nvc0_graph.c
+clean_kconfig drivers/gpu/drm/nouveau/Kconfig 'DRM_NOUVEAU'
+clean_mk CONFIG_DRM_NOUVEAU drivers/gpu/drm/nouveau/Makefile
+
+announce DRM_MGA - "Matrox g200/g400"
+drop_fw_file firmware/matrox/g200_warp.H16 firmware/matrox/g200_warp.fw
+drop_fw_file firmware/matrox/g400_warp.H16 firmware/matrox/g400_warp.fw
+reject_firmware drivers/gpu/drm/mga/mga_warp.c
+clean_blob drivers/gpu/drm/mga/mga_warp.c
+clean_kconfig drivers/gpu/drm/Kconfig 'DRM_MGA'
+clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
+
+announce DRM_R128 - "ATI Rage 128"
+drop_fw_file firmware/r128/r128_cce.bin.ihex firmware/r128/r128_cce.bin
+reject_firmware drivers/gpu/drm/r128/r128_cce.c
+clean_blob drivers/gpu/drm/r128/r128_cce.c
+clean_kconfig drivers/gpu/drm/Kconfig 'DRM_R128'
+clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
+
+announce DRM_RADEON - "ATI Radeon"
+drop_fw_file firmware/radeon/R100_cp.bin.ihex firmware/radeon/R100_cp.bin
+drop_fw_file firmware/radeon/R200_cp.bin.ihex firmware/radeon/R200_cp.bin
+drop_fw_file firmware/radeon/R300_cp.bin.ihex firmware/radeon/R300_cp.bin
+drop_fw_file firmware/radeon/R420_cp.bin.ihex firmware/radeon/R420_cp.bin
+drop_fw_file firmware/radeon/R520_cp.bin.ihex firmware/radeon/R520_cp.bin
+drop_fw_file firmware/radeon/R600_me.bin.ihex firmware/radeon/R600_me.bin
+drop_fw_file firmware/radeon/R600_pfp.bin.ihex firmware/radeon/R600_pfp.bin
+drop_fw_file firmware/radeon/RS600_cp.bin.ihex firmware/radeon/RS600_cp.bin
+drop_fw_file firmware/radeon/RS690_cp.bin.ihex firmware/radeon/RS690_cp.bin
+drop_fw_file firmware/radeon/RS780_me.bin.ihex firmware/radeon/RS780_me.bin
+drop_fw_file firmware/radeon/RS780_pfp.bin.ihex firmware/radeon/RS780_pfp.bin
+drop_fw_file firmware/radeon/RV610_me.bin.ihex firmware/radeon/RV610_me.bin
+drop_fw_file firmware/radeon/RV610_pfp.bin.ihex firmware/radeon/RV610_pfp.bin
+drop_fw_file firmware/radeon/RV620_me.bin.ihex firmware/radeon/RV620_me.bin
+drop_fw_file firmware/radeon/RV620_pfp.bin.ihex firmware/radeon/RV620_pfp.bin
+drop_fw_file firmware/radeon/RV630_me.bin.ihex firmware/radeon/RV630_me.bin
+drop_fw_file firmware/radeon/RV630_pfp.bin.ihex firmware/radeon/RV630_pfp.bin
+drop_fw_file firmware/radeon/RV635_me.bin.ihex firmware/radeon/RV635_me.bin
+drop_fw_file firmware/radeon/RV635_pfp.bin.ihex firmware/radeon/RV635_pfp.bin
+drop_fw_file firmware/radeon/RV670_me.bin.ihex firmware/radeon/RV670_me.bin
+drop_fw_file firmware/radeon/RV670_pfp.bin.ihex firmware/radeon/RV670_pfp.bin
+drop_fw_file firmware/radeon/RV710_me.bin.ihex firmware/radeon/RV710_me.bin
+drop_fw_file firmware/radeon/RV710_pfp.bin.ihex firmware/radeon/RV710_pfp.bin
+drop_fw_file firmware/radeon/RV730_me.bin.ihex firmware/radeon/RV730_me.bin
+drop_fw_file firmware/radeon/RV730_pfp.bin.ihex firmware/radeon/RV730_pfp.bin
+drop_fw_file firmware/radeon/RV770_me.bin.ihex firmware/radeon/RV770_me.bin
+drop_fw_file firmware/radeon/RV770_pfp.bin.ihex firmware/radeon/RV770_pfp.bin
+reject_firmware drivers/gpu/drm/radeon/radeon_cp.c
+clean_blob drivers/gpu/drm/radeon/radeon_cp.c
+reject_firmware drivers/gpu/drm/radeon/r100.c
+clean_blob drivers/gpu/drm/radeon/r100.c
+reject_firmware drivers/gpu/drm/radeon/r600.c
+clean_blob drivers/gpu/drm/radeon/r600.c
+reject_firmware drivers/gpu/drm/radeon/r600_cp.c
+clean_blob drivers/gpu/drm/radeon/r600_cp.c
+reject_firmware drivers/gpu/drm/radeon/ni.c
+clean_blob drivers/gpu/drm/radeon/ni.c
+clean_kconfig drivers/gpu/drm/Kconfig 'DRM_RADEON'
+clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
+
+#######
+# dma #
+#######
+
+announce IMX_SDMA - "i.MX SDMA support"
+reject_firmware drivers/dma/imx-sdma.c
+clean_blob drivers/dma/imx-sdma.c
+clean_kconfig drivers/dma/Kconfig 'IMX_SDMA'
+clean_mk CONFIG_IMX_SDMA drivers/dma/Makefile
+
+#########
+# Media #
+#########
+
+# media/tuner
+
+announce MEDIA_TUNER_XC2028 - "XCeive xc2028/xc3028 tuners"
+undefault_firmware 'XC\(2028\|3028L\)' \
+ drivers/media/common/tuners/tuner-xc2028.h \
+ drivers/media/video/saa7134/saa7134-cards.c \
+ drivers/media/video/ivtv/ivtv-driver.c \
+ drivers/media/video/cx18/cx18-driver.c \
+ drivers/media/video/cx18/cx18-dvb.c \
+ drivers/media/video/cx23885/cx23885-dvb.c \
+ drivers/media/video/cx23885/cx23885-video.c \
+ drivers/media/video/cx88/cx88-dvb.c \
+ drivers/media/video/cx88/cx88-cards.c \
+ drivers/media/video/em28xx/em28xx-cards.c \
+ drivers/media/dvb/dvb-usb/dib0700_devices.c \
+ drivers/media/dvb/dvb-usb/cxusb.c
+reject_firmware drivers/media/common/tuners/tuner-xc2028.c
+clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC2028'
+clean_mk CONFIG_MEDIA_TUNER_XC2028 drivers/media/common/tuners/Makefile
+
+announce VIDEO_TM6000_DVB - "DVB Support for tm6000 based TV cards"
+clean_blob drivers/staging/tm6000/tm6000-cards.c
+clean_kconfig drivers/staging/tm6000/Kconfig 'VIDEO_TM6000_DVB'
+clean_mk CONFIG_VIDEO_TM6000_DVB drivers/staging/tm6000/Makefile
+
+announce MEDIA_TUNER_XC5000 - "Xceive XC5000 silicon tuner"
+undefine_macro 'XC5000_DEFAULT_FIRMWARE_SIZE' 0 \
+ 'removed non-Free firmware size' drivers/media/common/tuners/xc5000.c
+undefault_firmware 'XC5000' \
+ drivers/media/common/tuners/xc5000.c \
+ drivers/media/video/cx231xx/cx231xx-cards.c
+reject_firmware drivers/media/common/tuners/xc5000.c
+clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC5000'
+clean_mk CONFIG_MEDIA_TUNER_XC5000 drivers/media/common/tuners/Makefile
+
+announce DVB_USB - "Support for various USB DVB devices"
+reject_firmware drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB'
+clean_mk CONFIG_DVB_USB drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1"
+clean_file drivers/media/dvb/dvb-usb/af9005-script.h
+clean_sed '
+s,^ deb_info("load init script\\n");$, {\n err("Missing Free init script\\n");\n return scriptlen = ret = -EINVAL;\n ,;
+' drivers/media/dvb/dvb-usb/af9005-fe.c 'report missing Free init script'
+clean_blob drivers/media/dvb/dvb-usb/af9005-fe.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
+clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_B2C2_FLEXCOP - "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
+reject_firmware drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+
+announce DVB_BT8XX - "BT8xx based PCI cards"
+reject_firmware drivers/media/dvb/bt8xx/dvb-bt8xx.c
+
+announce DVB_USB_A800 - "AVerMedia AverTV DVB-T USB 2.0 (A800)"
+clean_blob drivers/media/dvb/dvb-usb/a800.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_A800'
+clean_mk CONFIG_DVB_USB_A800 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1 support"
+clean_blob drivers/media/dvb/dvb-usb/af9005.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
+clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_AF9015 - "Afatech AF9015 DVB-T USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/af9015.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9015'
+clean_mk CONFIG_DVB_USB_AF9015 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_AZ6027 - "Azurewave DVB-S/S2 USB2.0 AZ6027 support"
+clean_blob drivers/media/dvb/dvb-usb/az6027.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AZ6027'
+clean_mk CONFIG_DVB_USB_AZ6027 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_CXUSB - "Conexant USB2.0 hybrid reference design support"
+clean_blob drivers/media/dvb/dvb-usb/cxusb.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_CXUSB'
+clean_mk CONFIG_DVB_USB_CXUSB drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_DIB0700 - "DiBcom DiB0700 USB DVB devices"
+reject_firmware drivers/media/dvb/dvb-usb/dib0700_devices.c
+clean_blob drivers/media/dvb/dvb-usb/dib0700_devices.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIB0700'
+clean_mk CONFIG_DVB_USB_DIB0700 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_DIBUSB_MB - "DiBcom USB DVB-T devices (based on the DiB3000M-B)"
+clean_blob drivers/media/dvb/dvb-usb/dibusb-mb.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MB'
+clean_mk CONFIG_DVB_USB_DIBUSB_MB drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_DIBUSB_MC - "DiBcom USB DVB-T devices (based on the DiB3000M-C/P)"
+clean_blob drivers/media/dvb/dvb-usb/dibusb-mc.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MC'
+clean_mk CONFIG_DVB_USB_DIBUSB_MC drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_DIGITV - "Nebula Electronics uDigiTV DVB-T USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/digitv.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIGITV'
+clean_mk CONFIG_DVB_USB_DIGITV drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_DTT200U - "WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan)"
+clean_blob drivers/media/dvb/dvb-usb/dtt200u.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DTT200U'
+clean_mk CONFIG_DVB_USB_DTT200U drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_DW2102 - "DvbWorld DVB-S/S2 USB2.0 support"
+reject_firmware drivers/media/dvb/dvb-usb/dw2102.c
+clean_blob drivers/media/dvb/dvb-usb/dw2102.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DW2102'
+clean_mk CONFIG_DVB_USB_DW2102 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_EC168 - "E3C EC168 DVB-T USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/ec168.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_EC168'
+clean_mk CONFIG_DVB_USB_EC168 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_GP8PSK - "GENPIX 8PSK->USB module support"
+reject_firmware drivers/media/dvb/dvb-usb/gp8psk.c
+clean_blob drivers/media/dvb/dvb-usb/gp8psk.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_GP8PSK'
+clean_mk CONFIG_DVB_USB_GP8PSK drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_LME2510 - "LME DM04/QQBOX DVB-S USB2.0 support"
+reject_firmware drivers/media/dvb/dvb-usb/lmedm04.c
+clean_blob drivers/media/dvb/dvb-usb/lmedm04.c
+clean_file Documentation/dvb/lmedm04.txt
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_LME2510'
+clean_mk CONFIG_DVB_USB_LME2510 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_M920X - "Uli m920x DVB-T USB2.0 support"
+reject_firmware drivers/media/dvb/dvb-usb/m920x.c
+clean_blob drivers/media/dvb/dvb-usb/m920x.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_M920X'
+clean_mk CONFIG_DVB_USB_M920X drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_NOVA_T_USB2 - "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/nova-t-usb2.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_NOVA_T_USB2'
+clean_mk CONFIG_DVB_USB_NOVA_T_USB2 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_OPERA1 - "Opera1 DVB-S USB2.0 receiver"
+reject_firmware drivers/media/dvb/dvb-usb/opera1.c
+clean_blob drivers/media/dvb/dvb-usb/opera1.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_OPERA1'
+clean_mk CONFIG_DVB_USB_OPERA1 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_TECHNISAT_USB2 - "Technisat DVB-S/S2 USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/technisat-usb2.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TECHNISAT_USB2'
+clean_mk CONFIG_DVB_USB_TECHNISAT_USB2 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_TTUSB2 - "Pinnacle 400e DVB-S USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/ttusb2.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TTUSB2'
+clean_mk CONFIG_DVB_USB_TTUSB2 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_UMT_010 - "HanfTek UMT-010 DVB-T USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/umt-010.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_UMT_010'
+clean_mk CONFIG_DVB_USB_UMT_010 drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_VP702X - "TwinhanDTV StarBox and clones DVB-S USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/vp702x.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP702X'
+clean_mk CONFIG_DVB_USB_VP702X drivers/media/dvb/dvb-usb/Makefile
+
+announce DVB_USB_VP7045 - "TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support"
+clean_blob drivers/media/dvb/dvb-usb/vp7045.c
+clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP7045'
+clean_mk CONFIG_DVB_USB_VP7045 drivers/media/dvb/dvb-usb/Makefile
+
+# dvb/frontends
+
+announce DVB_AF9013 - "Afatech AF9013 demodulator"
+undefault_firmware 'AF9013' \
+ drivers/media/dvb/frontends/af9013.c \
+ drivers/media/dvb/frontends/af9013_priv.h
+reject_firmware drivers/media/dvb/frontends/af9013.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_AF9013'
+clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
+
+announce DVB_BCM3510 - "Broadcom BCM3510"
+undefault_firmware 'BCM3510' drivers/media/dvb/frontends/bcm3510.c
+reject_firmware drivers/media/dvb/frontends/bcm3510.c
+reject_firmware drivers/media/dvb/frontends/bcm3510.h
+clean_sed '
+/You.ll need a firmware/,/dvb-fe-bcm/d;
+' drivers/media/dvb/frontends/bcm3510.c \
+ "removed non-Free firmware notes"
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_BCM3510'
+clean_mk CONFIG_DVB_BCM3510 drivers/media/dvb/frontends/Makefile
+
+announce DVB_DS3000 - "Montage Tehnology DS3000 based"
+undefault_firmware 'DS3000' \
+ drivers/media/dvb/frontends/ds3000.c
+reject_firmware drivers/media/dvb/frontends/ds3000.c
+clean_blob drivers/media/dvb/frontends/ds3000.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DS3000'
+clean_mk CONFIG_DVB_DS3000 drivers/media/dvb/frontends/Makefile
+
+announce DVB_LGS8GXX - "Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH demodulator"
+reject_firmware drivers/media/dvb/frontends/lgs8gxx.c
+clean_blob drivers/media/dvb/frontends/lgs8gxx.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_LGS8GXX'
+clean_mk CONFIG_DVB_LGS8GXX drivers/media/dvb/frontends/Makefile
+
+announce DVB_NXT200X - "NxtWave Communications NXT2002/NXT2004 based"
+undefault_firmware 'NXT200[24]' drivers/media/dvb/frontends/nxt200x.c
+reject_firmware drivers/media/dvb/frontends/nxt200x.c
+clean_blob drivers/media/dvb/frontends/nxt200x.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_NXT200X'
+clean_mk CONFIG_DVB_NXT200X drivers/media/dvb/frontends/Makefile
+
+announce DVB_OR51132 - "Oren OR51132 based"
+reject_firmware drivers/media/dvb/frontends/or51132.c
+clean_blob drivers/media/dvb/frontends/or51132.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51132'
+clean_mk CONFIG_DVB_OR51132 drivers/media/dvb/frontends/Makefile
+
+announce DVB_OR51211 - "Oren OR51211 based"
+undefault_firmware 'OR51211' drivers/media/dvb/frontends/or51211.c
+reject_firmware drivers/media/dvb/frontends/or51211.c
+reject_firmware drivers/media/dvb/frontends/or51211.h
+clean_blob drivers/media/dvb/frontends/or51211.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51211'
+clean_mk CONFIG_DVB_OR51211 drivers/media/dvb/frontends/Makefile
+
+announce DVB_SP8870 - "Spase sp8870"
+undefault_firmware 'SP8870' drivers/media/dvb/frontends/sp8870.c
+reject_firmware drivers/media/dvb/frontends/sp8870.c
+reject_firmware drivers/media/dvb/frontends/sp8870.h
+clean_blob drivers/media/dvb/frontends/sp8870.c
+clean_kconfig drivers/media/dvb/frontends 'DVB_SP8870'
+clean_mk CONFIG_DVB_SP8870 drivers/media/dvb/frontends/Makefile
+
+announce DVB_CX24116 - "Conexant CX24116 based"
+undefault_firmware CX24116 drivers/media/dvb/frontends/cx24116.c
+reject_firmware drivers/media/dvb/frontends/cx24116.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_CX24116'
+clean_mk CONFIG_DVB_CX24116 drivers/media/dvb/frontends/Makefile
+
+announce DVB_SP887X - "Spase sp887x based"
+undefault_firmware 'SP887X' drivers/media/dvb/frontends/sp887x.c
+reject_firmware drivers/media/dvb/frontends/sp887x.c
+reject_firmware drivers/media/dvb/frontends/sp887x.h
+clean_blob drivers/media/dvb/frontends/sp887x.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_SP887X'
+clean_mk CONFIG_DVB_SP887X drivers/media/dvb/frontends/Makefile
+
+announce DVB_TDA10048 - "Philips TDA10048HN based"
+undefine_macro 'TDA10048_DEFAULT_FIRMWARE_SIZE' 0 \
+ 'removed non-Free firmware size' drivers/media/dvb/frontends/tda10048.c
+undefault_firmware 'TDA10048' drivers/media/dvb/frontends/tda10048.c
+reject_firmware drivers/media/dvb/frontends/tda10048.c
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_TDA10048'
+clean_mk CONFIG_DVB_TDA10048 drivers/media/dvb/frontends/Makefile
+
+announce DVB_TDA1004X - "Philips TDA10045H/TDA10046H"
+undefault_firmware 'TDA1004[56]' drivers/media/dvb/frontends/tda1004x.c
+reject_firmware drivers/media/dvb/frontends/tda1004x.c
+reject_firmware drivers/media/dvb/frontends/tda1004x.h
+clean_blob drivers/media/dvb/frontends/tda1004x.c
+clean_kconfig drivers/media/dvb/frontends 'DVB_TDA1004X'
+clean_mk CONFIG_DVB_TDA1004X drivers/media/dvb/frontends/Makefile
+
+# dvb
+
+announce DVB_AV7110 - "AV7110 cards"
+reject_firmware drivers/media/dvb/ttpci/av7110.c
+clean_blob drivers/media/dvb/ttpci/av7110.c
+clean_kconfig drivers/media/dvb/ttpci/Kconfig 'DVB_AV7110'
+clean_mk CONFIG_DVB_AV7110 drivers/media/dvb/ttpci/Makefile
+
+announce DVB_BUDGET - "Budget cards"
+reject_firmware drivers/media/dvb/ttpci/budget.c
+reject_firmware drivers/media/dvb/frontends/tdhd1.h
+
+announce DVB_BUDGET_AV - "Budget cards with analog video inputs"
+reject_firmware drivers/media/dvb/ttpci/budget-av.c
+
+announce DVB_BUDGET_CI - "Budget cards with onboard CI connector"
+reject_firmware drivers/media/dvb/ttpci/budget-ci.c
+
+announce DVB_DRX397XD - "Micronas DRX3975D/DRX3977D based"
+reject_firmware drivers/media/dvb/frontends/drx397xD.c
+clean_blob drivers/media/dvb/frontends/drx397xD_fw.h
+clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DRX397XD'
+clean_mk CONFIG_DVB_DRX397XD drivers/media/dvb/frontends/Makefile
+
+announce DVB_NGENE - "Micronas nGene support"
+reject_firmware drivers/media/dvb/ngene/ngene-core.c
+clean_blob drivers/media/dvb/ngene/ngene-core.c
+clean_kconfig drivers/media/dvb/ngene/Kconfig 'DVB_NGENE'
+clean_mk CONFIG_DVB_NGENE drivers/media/dvb/ngene/Makefile
+
+announce DVB_PLUTO2 - "Pluto2 cards"
+reject_firmware drivers/media/dvb/pluto2/pluto2.c
+
+announce SMS_SIANO_MDTV - "Siano SMS1xxx based MDTV receiver"
+reject_firmware drivers/media/dvb/siano/smscoreapi.c
+clean_blob drivers/media/dvb/siano/smscoreapi.c
+clean_blob drivers/media/dvb/siano/sms-cards.c
+clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_SIANO_MDTV'
+clean_mk CONFIG_SMS_SIANO_MDTV drivers/media/dvb/siano/Makefile
+
+announce SMS_USB_DRV - "Siano's USB interface support"
+reject_firmware drivers/media/dvb/siano/smsusb.c
+clean_blob drivers/media/dvb/siano/smsusb.c
+clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_USB_DRV'
+clean_mk CONFIG_SMS_USB_DRV drivers/media/dvb/siano/Makefile
+
+announce DVB_TTUSB_BUDGET - "Technotrend/Hauppauge Nova-USB devices"
+drop_fw_file firmware/ttusb-budget/dspbootcode.bin.ihex firmware/ttusb-budget/dspbootcode.bin
+reject_firmware drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+clean_blob drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+clean_kconfig drivers/media/dvb/ttusb-budget/Kconfig 'DVB_TTUSB_BUDGET'
+clean_mk CONFIG_DVB_TTUSB_BUDGET drivers/media/dvb/ttusb-budget/Makefile
+
+announce DVB_TTUSB_DEC - "Technotrend/Hauppauge USB DEC devices"
+reject_firmware drivers/media/dvb/ttusb-dec/ttusb_dec.c
+clean_blob drivers/media/dvb/ttusb-dec/ttusb_dec.c
+clean_kconfig drivers/media/dvb/ttusb-dec/Kconfig 'DVB_TTUSB_DEC'
+clean_mk CONFIG_DVB_TTUSB_DEC drivers/media/dvb/ttusb-dec/Makefile
+
+# video
+
+announce VIDEO_BT848 - "BT848 Video For Linux"
+reject_firmware drivers/media/video/bt8xx/bttv-cards.c
+clean_kconfig drivers/media/video/bt8xx/Kconfig 'VIDEO_BT848'
+clean_mk CONFIG_VIDEO_BT848 drivers/media/video/bt8xx/Makefile
+
+announce VIDEO_CPIA2 - "CPiA2 Video For Linux"
+clean_fw firmware/cpia2/stv0672_vp4.bin.ihex firmware/cpia2/stv0672_vp4.bin
+reject_firmware drivers/media/video/cpia2/cpia2_core.c
+clean_blob drivers/media/video/cpia2/cpia2_core.c
+clean_kconfig drivers/media/video/cpia2/Kconfig 'VIDEO_CPIA2'
+clean_mk CONFIG_VIDEO_CPIA2 drivers/media/video/cpia2/Makefile
+
+announce VIDEO_CX18 - "Conexant cx23418 MPEG encoder support"
+reject_firmware drivers/media/video/cx18/cx18-av-firmware.c
+reject_firmware drivers/media/video/cx18/cx18-dvb.c
+reject_firmware drivers/media/video/cx18/cx18-firmware.c
+clean_blob drivers/media/video/cx18/cx18-av-firmware.c
+clean_blob drivers/media/video/cx18/cx18-dvb.c
+clean_blob drivers/media/video/cx18/cx18-firmware.c
+clean_kconfig drivers/media/video/cx18/Kconfig 'VIDEO_CX18'
+clean_mk CONFIG_VIDEO_CX18 drivers/media/video/cx18/Makefile
+
+announce VIDEO_CX231XX - "Conexant cx231xx USB video capture support"
+reject_firmware drivers/media/video/cx231xx/cx231xx-417.c
+clean_blob drivers/media/video/cx231xx/cx231xx-417.c
+clean_kconfig drivers/media/video/cx231xx/Kconfig 'VIDEO_CX231XX'
+clean_mk CONFIG_VIDEO_CX231XX drivers/media/video/cx231xx/Makefile
+
+announce VIDEO_CX23885 - "Conexant cx23885 (2388x successor) support"
+reject_firmware drivers/media/video/cx23885/cx23885-417.c
+clean_blob drivers/media/video/cx23885/cx23885-417.c
+reject_firmware drivers/media/video/cx23885/cx23885-cards.c
+clean_blob drivers/media/video/cx23885/cx23885-cards.c
+clean_kconfig drivers/media/video/cx23885/Kconfig 'VIDEO_CX23885'
+clean_mk CONFIG_VIDEO_CX23885 drivers/media/video/cx23885/Makefile
+
+announce VIDEO_CX25840 - "Conexant CX2584x audio/video decoders"
+reject_firmware drivers/media/video/cx25840/cx25840-firmware.c
+clean_blob drivers/media/video/cx25840/cx25840-firmware.c
+clean_kconfig drivers/media/video/cx25840/Kconfig 'VIDEO_CX25840'
+clean_mk CONFIG_VIDEO_CX25840 drivers/media/video/cx25840/Makefile
+
+announce VIDEO_CX88_BLACKBIRD - "Blackbird MPEG encoder support (cx2388x + cx23416)"
+reject_firmware drivers/media/video/cx88/cx88-blackbird.c
+clean_kconfig drivers/media/video/cx88/Kconfig 'VIDEO_CX88_BLACKBIRD'
+clean_mk CONFIG_VIDEO_CX88_BLACKBIRD drivers/media/video/cx88/Makefile
+
+announce VIDEO_IVTV - "Conexant cx23416/cx23415 MPEG encoder/decoder support"
+reject_firmware drivers/media/video/ivtv/ivtv-firmware.c
+clean_blob drivers/media/video/ivtv/ivtv-firmware.c
+clean_kconfig drivers/media/video/ivtv/Kconfig 'VIDEO_IVTV'
+clean_mk CONFIG_VIDEO_IVTV drivers/media/video/ivtv/Makefile
+
+announce VIDEO_PVRUSB2 - "Hauppauge WinTV-PVR USB2 support"
+reject_firmware drivers/media/video/pvrusb2/pvrusb2-hdw.c
+clean_blob drivers/media/video/pvrusb2/pvrusb2-devattr.c
+clean_kconfig drivers/media/video/pvrusb2/Kconfig 'VIDEO_PVRUSB2'
+clean_mk CONFIG_VIDEO_PVRUSB2 drivers/media/video/pvrusb2/Makefile
+
+announce "VIDEO_CX23885, VIDEO_CX88_BLACKBIRD, VIDEO_IVTV, VIDEO_PVRUSB2" - "See above"
+clean_blob include/media/cx2341x.h
+
+announce VIDEO_GO7007 - "Go 7007 support"
+reject_firmware drivers/staging/go7007/go7007-driver.c
+clean_blob drivers/staging/go7007/go7007-driver.c
+reject_firmware drivers/staging/go7007/go7007-fw.c
+clean_blob drivers/staging/go7007/go7007-usb.c
+clean_blob drivers/staging/go7007/saa7134-go7007.c
+clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007'
+clean_mk CONFIG_VIDEO_GO7007 drivers/staging/go7007/Makefile
+
+announce VIDEO_GO7007_USB_S2250_BOARD - "Sensoray 2250/2251 support"
+reject_firmware drivers/staging/go7007/s2250-loader.c
+clean_blob drivers/staging/go7007/s2250-loader.c
+clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007_USB_S2250_BOARD'
+clean_mk CONFIG_VIDEO_GO7007_USB_S2250_BOARD drivers/staging/go7007/Makefile
+
+announce VIDEO_SAA7134_DVB - "DVB/ATSC Support for saa7134 based TV cards"
+reject_firmware drivers/media/video/saa7134/saa7134-dvb.c
+clean_kconfig drivers/media/video/saa7134/Kconfig 'VIDEO_SAA7134_DVB'
+clean_mk CONFIG_VIDEO_SAA7134_DVB drivers/media/video/saa7134/Makefile
+
+announce VIDEO_SAA7164 - "NXP SAA7164 support"
+reject_firmware drivers/media/video/saa7164/saa7164-fw.c
+clean_blob drivers/media/video/saa7164/saa7164-fw.c
+clean_kconfig drivers/media/video/saa7164/Kconfig 'VIDEO_SAA7164'
+clean_mk CONFIG_VIDEO_SAA7164 drivers/media/video/saa7164/Makefile
+
+announce VIDEO_TLG2300 - "Telegent TLG2300 USB video capture support"
+reject_firmware drivers/media/video/tlg2300/pd-main.c
+clean_blob drivers/media/video/tlg2300/pd-main.c
+clean_kconfig drivers/media/video/tlg2300/Kconfig 'VIDEO_TLG2300'
+clean_mk CONFIG_VIDEO_TLG2300 drivers/media/video/tlg2300/Makefile
+
+announce USB_DABUSB - "left-over DABUSB firmware"
+clean_fw firmware/dabusb/bitstream.bin.ihex firmware/dabusb/bitstream.bin
+clean_fw firmware/dabusb/firmware.HEX firmware/dabusb/firmware.fw
+
+announce USB_S2255 - "USB Sensoray 2255 video capture device"
+reject_firmware drivers/media/video/s2255drv.c
+clean_blob drivers/media/video/s2255drv.c
+clean_kconfig drivers/media/video/Kconfig 'USB_S2255'
+clean_mk CONFIG_USB_S2255 drivers/media/video/Makefile
+
+announce USB_GSPCA_VICAM - "USB 3com HomeConnect, AKA vicam"
+drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw
+reject_firmware drivers/media/video/gspca/vicam.c
+clean_blob drivers/media/video/gspca/vicam.c
+clean_kconfig drivers/media/video/gspca/Kconfig 'USB_GSPCA_VICAM'
+clean_mk CONFIG_USB_GSPCA_VICAM drivers/media/video/gspca/Makefile
+
+# radio
+
+announce RADIO_WL1273 - "Texas Instruments WL1273 I2C FM Radio"
+reject_firmware drivers/media/radio/radio-wl1273.c
+clean_blob drivers/media/radio/radio-wl1273.c
+clean_kconfig drivers/media/radio/Kconfig 'RADIO_WL1273'
+clean_mk CONFIG_RADIO_WL1273 drivers/media/radio/Makefile
+
+announce RADIO_WL128X - "Texas Instruments WL128x FM Radio"
+clean_blob drivers/media/radio/wl128x/fmdrv_common.h
+reject_firmware drivers/media/radio/wl128x/fmdrv_common.c
+clean_blob drivers/media/radio/wl128x/fmdrv_common.c
+clean_kconfig drivers/media/radio/Kconfig 'RADIO_WL128X'
+clean_mk CONFIG_RADIO_WL128X drivers/media/radio/Makefile
+
+#######
+# net #
+#######
+
+announce ACENIC - "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit"
+drop_fw_file firmware/acenic/tg1.bin.ihex firmware/acenic/tg1.bin
+drop_fw_file firmware/acenic/tg2.bin.ihex firmware/acenic/tg2.bin
+reject_firmware drivers/net/acenic.c
+clean_blob drivers/net/acenic.c
+clean_kconfig drivers/net/Kconfig 'ACENIC'
+clean_mk CONFIG_ACENIC drivers/net/Makefile
+
+announce ADAPTEC_STARFIRE - "Adaptec Starfire/DuraLAN support"
+clean_fw firmware/adaptec/starfire_rx.bin.ihex firmware/adaptec/starfire_rx.bin
+clean_fw firmware/adaptec/starfire_tx.bin.ihex firmware/adaptec/starfire_tx.bin
+reject_firmware drivers/net/starfire.c
+clean_blob drivers/net/starfire.c
+clean_kconfig drivers/net/Kconfig 'ADAPTEC_STARFIRE'
+clean_mk CONFIG_ADAPTEC_STARFIRE drivers/net/Makefile
+
+announce CONFIG_BNA - "Brocade 1010/1020 10Gb Ethernet Driver support"
+clean_blob drivers/net/bna/bnad.c
+clean_blob drivers/net/bna/cna.h
+reject_firmware drivers/net/bna/cna_fwimg.c
+clean_kconfig drivers/net/Kconfig 'BNA'
+clean_mk CONFIG_BNA drivers/net/bna/Makefile
+
+announce BNX2 - "Broadcom NetXtremeII"
+drop_fw_file firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex firmware/bnx2/bnx2-mips-09-6.2.1a.fw
+drop_fw_file firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex firmware/bnx2/bnx2-rv2p-09-6.0.17.fw
+drop_fw_file firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw
+drop_fw_file firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex firmware/bnx2/bnx2-mips-06-6.2.1.fw
+drop_fw_file firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex firmware/bnx2/bnx2-rv2p-06-6.0.15.fw
+reject_firmware drivers/net/bnx2.c
+clean_blob drivers/net/bnx2.c
+clean_kconfig drivers/net/Kconfig 'BNX2'
+clean_mk CONFIG_BNX2 drivers/net/Makefile
+
+announce BNX2X - "Broadcom NetXtremeII 10Gb support"
+drop_fw_file firmware/bnx2x/bnx2x-e1-6.2.5.0.fw.ihex firmware/bnx2x/bnx2x-e1-6.2.5.0.fw
+drop_fw_file firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw.ihex firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw
+drop_fw_file firmware/bnx2x/bnx2x-e2-6.2.5.0.fw.ihex firmware/bnx2x/bnx2x-e2-6.2.5.0.fw
+reject_firmware drivers/net/bnx2x/bnx2x_main.c
+clean_sed '
+/^#include "bnx2x_init\.h"/,/^$/{
+ /^$/i\
+#define bnx2x_init_block(bp, start, end) \\\
+ return (printk(KERN_ERR "%s: Missing Free firmware\\n", bp->dev->name),\\\
+ -EINVAL)
+}' drivers/net/bnx2x/bnx2x_main.c 'report missing Free firmware'
+clean_blob drivers/net/bnx2x/bnx2x_main.c
+clean_blob drivers/net/bnx2x/bnx2x_hsi.h
+clean_blob drivers/net/bnx2x/bnx2x_init_ops.h
+clean_kconfig drivers/net/Kconfig 'BNX2X'
+clean_mk CONFIG_BNX2X drivers/net/Makefile
+
+announce CASSINI - "Sun Cassini"
+drop_fw_file firmware/sun/cassini.bin.ihex firmware/sun/cassini.bin
+reject_firmware drivers/net/cassini.c
+clean_blob drivers/net/cassini.c
+clean_kconfig drivers/net/Kconfig 'CASSINI'
+clean_mk CONFIG_CASSINI drivers/net/Makefile
+
+announce CHELSIO_T3 - "Chelsio AEL 2005 support"
+drop_fw_file firmware/cxgb3/t3b_psram-1.1.0.bin.ihex firmware/cxgb3/t3b_psram-1.1.0.bin
+drop_fw_file firmware/cxgb3/t3c_psram-1.1.0.bin.ihex firmware/cxgb3/t3c_psram-1.1.0.bin
+drop_fw_file firmware/cxgb3/t3fw-7.10.0.bin.ihex firmware/cxgb3/t3fw-7.10.0.bin
+drop_fw_file firmware/cxgb3/ael2005_opt_edc.bin.ihex firmware/cxgb3/ael2005_opt_edc.bin
+drop_fw_file firmware/cxgb3/ael2005_twx_edc.bin.ihex firmware/cxgb3/ael2005_twx_edc.bin
+drop_fw_file firmware/cxgb3/ael2020_twx_edc.bin.ihex firmware/cxgb3/ael2020_twx_edc.bin
+reject_firmware drivers/net/cxgb3/cxgb3_main.c
+clean_blob drivers/net/cxgb3/cxgb3_main.c
+clean_kconfig drivers/net/Kconfig 'CHELSIO_T3'
+clean_mk CONFIG_CHELSIO_T3 drivers/net/cxgb3/Makefile
+
+announce CHELSIO_T4 - "Chelsio Communications T4 Ethernet support"
+reject_firmware drivers/net/cxgb4/cxgb4_main.c
+clean_blob drivers/net/cxgb4/cxgb4_main.c
+clean_kconfig drivers/net/Kconfig 'CHELSIO_T4'
+clean_mk CONFIG_CHELSIO_T4 drivers/net/cxgb4/Makefile
+
+announce E100 - "Intel PRO/100+"
+drop_fw_file firmware/e100/d101m_ucode.bin.ihex firmware/e100/d101m_ucode.bin
+drop_fw_file firmware/e100/d101s_ucode.bin.ihex firmware/e100/d101s_ucode.bin
+drop_fw_file firmware/e100/d102e_ucode.bin.ihex firmware/e100/d102e_ucode.bin
+reject_firmware drivers/net/e100.c
+clean_sed '
+/^static const struct firmware \*e100_\(reject\|request\)_firmware(/,/^}$/{
+ s:^\(.*\)return ERR_PTR(err);$:\1netif_err(nic, probe, nic->netdev, "Proceeding without firmware\\n");\n\1return NULL;:
+}' drivers/net/e100.c 'proceed without firmware'
+clean_blob drivers/net/e100.c
+clean_kconfig drivers/net/Kconfig 'E100'
+clean_mk CONFIG_E100 drivers/net/Makefile
+
+announce FT1000_PCMCIA - "Driver for ft1000 pcmcia device."
+clean_file drivers/staging/ft1000/ft1000-pcmcia/ft1000.img
+reject_firmware drivers/staging/ft1000/TODO
+clean_blob drivers/staging/ft1000/ft1000-pcmcia/boot.h
+clean_sed '
+/^static int ft1000_reset_card/,/^}$/ {
+ /card_bootload/i\
+ return /*(DEBLOBBED)*/ FALSE;
+}
+' drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c \
+ 'disabled non-Free firmware-loading machinery'
+reject_firmware drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
+clean_blob drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
+clean_kconfig drivers/staging/ft1000/Kconfig 'FT1000_PCMCIA'
+clean_mk CONFIG_FT1000_PCMCIA drivers/staging/ft1000/Makefile
+
+announce FT1000_USB - "Driver for ft1000 USB devices."
+clean_file drivers/staging/ft1000/ft1000-usb/ft3000.img
+reject_firmware drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
+clean_blob drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
+clean_kconfig drivers/staging/ft1000/Kconfig 'FT1000_USB'
+clean_mk CONFIG_FT1000_USB drivers/staging/ft1000/Makefile
+
+announce MYRI_SBUS - "MyriCOM Gigabit Ethernet"
+drop_fw_file firmware/myricom/lanai.bin.ihex firmware/myricom/lanai.bin
+reject_firmware drivers/net/myri_sbus.c
+clean_blob drivers/net/myri_sbus.c
+clean_kconfig drivers/net/Kconfig 'MYRI_SBUS'
+clean_mk CONFIG_MYRI_SBUS drivers/net/Makefile
+
+announce MYRI10GE - "Myricom Myri-10G Ethernet support"
+reject_firmware drivers/net/myri10ge/myri10ge.c
+clean_blob drivers/net/myri10ge/myri10ge.c
+clean_kconfig drivers/net/Kconfig 'MYRI10GE'
+clean_mk CONFIG_MYRI10GE drivers/net/myri10ge/Makefile
+
+announce NETXEN_NIC - "NetXen Multi port (1/10) Gigabit Ethernet NIC"
+reject_firmware drivers/net/netxen/netxen_nic.h
+reject_firmware drivers/net/netxen/netxen_nic_main.c
+reject_firmware drivers/net/netxen/netxen_nic_init.c
+clean_blob drivers/net/netxen/netxen_nic.h
+clean_blob drivers/net/netxen/netxen_nic_main.c
+clean_kconfig drivers/net/Kconfig 'NETXEN_NIC'
+clean_mk CONFIG_NETXEN_NIC drivers/net/Makefile
+
+announce QLCNIC - "QLOGIC QLCNIC 1/10Gb Converged Ethernet NIC Support"
+reject_firmware drivers/net/qlcnic/qlcnic.h
+reject_firmware drivers/net/qlcnic/qlcnic_init.c
+reject_firmware drivers/net/qlcnic/qlcnic_main.c
+clean_blob drivers/net/qlcnic/qlcnic.h
+clean_blob drivers/net/qlcnic/qlcnic_main.c
+clean_kconfig drivers/net/Kconfig 'QLCNIC'
+clean_mk CONFIG_QLCNIC drivers/net/qlcnic/Makefile
+
+announce R8169 - "Realtek 8169 gigabit ethernet support"
+reject_firmware drivers/net/r8169.c
+clean_blob drivers/net/r8169.c
+clean_kconfig drivers/net/Kconfig R8169
+clean_mk CONFIG_R8169 drivers/net/Makefile
+
+announce SLICOSS - "Alacritech Gigabit IS-NIC cards"
+reject_firmware drivers/staging/slicoss/slicoss.c
+clean_blob drivers/staging/slicoss/slicoss.c
+clean_kconfig drivers/staging/slicoss/Kconfig 'SLICOSS'
+clean_mk CONFIG_SLICOSS drivers/staging/slicoss/Makefile
+
+announce SPIDER_NET - "Spider Gigabit Ethernet driver"
+reject_firmware drivers/net/spider_net.c
+clean_sed 's,spider_fw\.bin,DEBLOBBED.bin,g' \
+ drivers/net/spider_net.c 'removed non-Free firmware notes'
+clean_blob drivers/net/spider_net.c
+clean_blob drivers/net/spider_net.h
+clean_kconfig drivers/net/Kconfig 'SPIDER_NET'
+clean_mk CONFIG_SPIDER_NET drivers/net/Makefile
+
+announce TEHUTI - "Tehuti Networks 10G Ethernet"
+drop_fw_file firmware/tehuti/bdx.bin.ihex firmware/tehuti/bdx.bin
+reject_firmware drivers/net/tehuti.c
+clean_blob drivers/net/tehuti.c
+clean_kconfig drivers/net/Kconfig 'TEHUTI'
+clean_mk CONFIG_TEHUTI drivers/net/Makefile
+
+announce TIGON3 - "Broadcom Tigon3"
+drop_fw_file firmware/tigon/tg3.bin.ihex firmware/tigon/tg3.bin
+drop_fw_file firmware/tigon/tg3_tso.bin.ihex firmware/tigon/tg3_tso.bin
+drop_fw_file firmware/tigon/tg3_tso5.bin.ihex firmware/tigon/tg3_tso5.bin
+reject_firmware drivers/net/tg3.c
+clean_blob drivers/net/tg3.c
+clean_kconfig drivers/net/Kconfig 'TIGON3'
+clean_mk CONFIG_TIGON3 drivers/net/Makefile
+
+announce TYPHOON - "3cr990 series Typhoon"
+drop_fw_file firmware/3com/typhoon.bin.ihex firmware/3com/typhoon.bin
+reject_firmware drivers/net/typhoon.c
+clean_blob drivers/net/typhoon.c
+clean_kconfig drivers/net/Kconfig 'TYPHOON'
+clean_mk CONFIG_TYPHOON drivers/net/Makefile
+
+announce VXGE - "Exar X3100 Series 10GbE PCIe Server Adapter"
+reject_firmware drivers/net/vxge/vxge-main.c
+clean_blob drivers/net/vxge/vxge-main.c
+clean_kconfig drivers/net/Kconfig 'VXGE'
+clean_mk CONFIG_VXGE drivers/net/vxge/Makefile
+
+# appletalk
+
+announce COPS - "COPS LocalTalk PC"
+clean_sed '
+/sizeof(\(ff\|lt\)drv_code)/{
+ i\
+ printk(KERN_INFO "%s: Missing Free firmware.\\n", dev->name);\
+ return;
+}
+/\(ff\|lt\)drv_code/d;
+' drivers/net/appletalk/cops.c 'report missing Free firmware'
+clean_blob drivers/net/appletalk/cops.c
+clean_file drivers/net/appletalk/cops_ffdrv.h
+clean_file drivers/net/appletalk/cops_ltdrv.h
+clean_kconfig drivers/net/appletalk/Kconfig 'COPS'
+clean_mk CONFIG_COPS drivers/net/appletalk/Makefile
+
+# hamradio
+
+announce YAM - "YAM driver for AX.25"
+drop_fw_file firmware/yam/1200.bin.ihex firmware/yam/1200.bin
+drop_fw_file firmware/yam/9600.bin.ihex firmware/yam/9600.bin
+reject_firmware drivers/net/hamradio/yam.c
+clean_blob drivers/net/hamradio/yam.c
+clean_kconfig drivers/net/hamradio/Kconfig 'YAM'
+clean_mk CONFIG_YAM drivers/net/hamradio/Makefile
+
+# irda
+
+announce USB_IRDA - "IrDA USB dongles"
+reject_firmware drivers/net/irda/irda-usb.c
+clean_blob drivers/net/irda/irda-usb.c
+clean_kconfig drivers/net/irda/Kconfig 'USB_IRDA'
+clean_mk CONFIG_USB_IRDA drivers/net/irda/Makefile
+
+# pcmcia
+
+announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
+drop_fw_file firmware/ositech/Xilinx7OD.bin.ihex firmware/ositech/Xilinx7OD.bin
+reject_firmware drivers/net/pcmcia/smc91c92_cs.c
+clean_blob drivers/net/pcmcia/smc91c92_cs.c
+clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_SMC91C92'
+clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile
+
+# CIS files are not software.
+# announce PCCARD - "PCCard (PCMCIA/CardBus) support"
+# reject_firmware drivers/pcmcia/ds.c
+# clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
+# clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
+
+announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
+# This is not software; it's Free, but GPLed without in-tree sources.
+drop_fw_file firmware/cis/3CCFEM556.cis.ihex firmware/cis/3CCFEM556.cis
+# clean_blob drivers/net/pcmcia/3c574_cs.c
+# clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C574'
+# clean_mk CONFIG_PCMCIA_3C574 drivers/net/pcmcia/Makefile
+
+announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
+# This is not software; it's Free, but GPLed without in-tree sources.
+drop_fw_file firmware/cis/3CXEM556.cis.ihex firmware/cis/3CXEM556.cis
+# clean_blob drivers/net/pcmcia/3c589_cs.c
+# clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C589'
+# clean_mk CONFIG_PCMCIA_3C589 drivers/net/pcmcia/Makefile
+
+announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
+# These are not software; they're Free, but GPLed without in-tree sources.
+drop_fw_file firmware/cis/LA-PCM.cis.ihex firmware/cis/LA-PCM.cis
+drop_fw_file firmware/cis/PCMLM28.cis.ihex firmware/cis/PCMLM28.cis
+drop_fw_file firmware/cis/DP83903.cis.ihex firmware/cis/DP83903.cis
+drop_fw_file firmware/cis/NE2K.cis.ihex firmware/cis/NE2K.cis
+drop_fw_file firmware/cis/tamarack.cis.ihex firmware/cis/tamarack.cis
+drop_fw_file firmware/cis/PE-200.cis.ihex firmware/cis/PE-200.cis
+drop_fw_file firmware/cis/PE520.cis.ihex firmware/cis/PE520.cis
+# clean_blob drivers/net/pcmcia/pcnet_cs.c
+# clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_PCNET'
+# clean_mk CONFIG_PCMCIA_PCNET drivers/net/pcmcia/Makefile
+
+# tokenring
+
+announce 3C359 - "3Com 3C359 Token Link Velocity XL adapter"
+drop_fw_file firmware/3com/3C359.bin.ihex firmware/3com/3C359.bin
+reject_firmware drivers/net/tokenring/3c359.c
+clean_blob drivers/net/tokenring/3c359.c
+clean_kconfig drivers/net/tokenring/Kconfig '3C359'
+clean_mk CONFIG_3C359 drivers/net/tokenring/Makefile
+
+announce SMCTR - "SMC ISA/MCA adapter"
+drop_fw_file firmware/tr_smctr.bin.ihex firmware/tr_smctr.bin
+reject_firmware drivers/net/tokenring/smctr.c
+clean_blob drivers/net/tokenring/smctr.c
+clean_kconfig drivers/net/tokenring/Kconfig 'SMCTR'
+clean_mk CONFIG_SMCTR drivers/net/tokenring/Makefile
+
+announce TMS380TR - "Generic TMS380 Token Ring ISA/PCI adapter support"
+reject_firmware drivers/net/tokenring/tms380tr.c
+clean_blob drivers/net/tokenring/tms380tr.c
+clean_kconfig drivers/net/tokenring/Kconfig 'TMS380TR'
+clean_mk CONFIG_TMS380TR drivers/net/tokenring/Makefile
+
+# usb
+
+announce USB_KAWETH - "USB KLSI KL5USB101-based ethernet device support"
+drop_fw_file firmware/kaweth/new_code.bin.ihex firmware/kaweth/new_code.bin
+drop_fw_file firmware/kaweth/new_code_fix.bin.ihex firmware/kaweth/new_code_fix.bin
+drop_fw_file firmware/kaweth/trigger_code.bin.ihex firmware/kaweth/trigger_code.bin
+drop_fw_file firmware/kaweth/trigger_code_fix.bin.ihex firmware/kaweth/trigger_code_fix.bin
+reject_firmware drivers/net/usb/kaweth.c
+clean_blob drivers/net/usb/kaweth.c
+clean_kconfig drivers/net/usb/Kconfig 'USB_KAWETH'
+clean_mk CONFIG_USB_KAWETH drivers/net/usb/Makefile
+
+# wireless
+
+announce ATMEL "Atmel at76c50x chipset 802.11b support"
+reject_firmware drivers/net/wireless/atmel.c
+clean_blob drivers/net/wireless/atmel.c
+clean_kconfig drivers/net/wireless/Kconfig 'ATMEL'
+clean_mk CONFIG_ATMEL drivers/net/wireless/Makefile
+
+announce AT76C50X_USB - "Atmel at76c503/at76c505/at76c505a USB cards"
+reject_firmware drivers/net/wireless/at76c50x-usb.c
+clean_blob drivers/net/wireless/at76c50x-usb.c
+clean_kconfig drivers/net/wireless/Kconfig 'AT76C50X_USB'
+clean_mk CONFIG_AT76C50X_USB drivers/net/wireless/Makefile
+
+announce B43 - "Broadcom 43xx wireless support (mac80211 stack)"
+maybe_reject_firmware drivers/net/wireless/b43/main.c
+clean_sed '
+/^static int b43_upload_microcode(/,/^}$/{
+ / if (dev->fw\.opensource) {$/i\
+ if (!dev->fw.opensource) {\
+ b43err(dev->wl, "Rejected non-Free firmware\\n");\
+ err = -EOPNOTSUPP;\
+ goto error;\
+ }
+}' drivers/net/wireless/b43/main.c 'double-check and reject non-Free firmware'
+# Major portions of firmware filenames not deblobbed.
+clean_blob drivers/net/wireless/b43/main.c
+clean_kconfig drivers/net/wireless/b43/Kconfig 'B43'
+clean_mk CONFIG_B43 drivers/net/wireless/b43/Makefile
+
+announce B43LEGACY - "Broadcom 43xx-legacy wireless support (mac80211 stack)"
+reject_firmware drivers/net/wireless/b43legacy/main.c
+# Major portions of firwmare filenames not deblobbed.
+clean_blob drivers/net/wireless/b43legacy/main.c
+clean_kconfig drivers/net/wireless/b43legacy/Kconfig 'B43LEGACY'
+clean_mk CONFIG_B43LEGACY drivers/net/wireless/b43legacy/Makefile
+
+announce BRCMSMAC_PCI - "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
+clean_blob drivers/staging/brcm80211/README
+reject_firmware drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
+clean_blob drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
+clean_kconfig drivers/staging/brcm80211/Kconfig 'BRCMSMAC'
+clean_mk CONFIG_BRCMSMAC drivers/staging/brcm80211/Makefile
+
+announce BRCMFMAC - "Broadcom IEEE802.11n embedded FullMAC WLAN driver"
+clean_blob drivers/staging/brcm80211/brcmfmac/README
+reject_firmware drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
+clean_blob drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
+clean_kconfig drivers/staging/brcm80211/Kconfig 'BRCMFMAC'
+clean_mk CONFIG_BRCMFMAC drivers/staging/brcm80211/Makefile
+
+announce HERMES - "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)"
+reject_firmware drivers/net/wireless/orinoco/fw.c
+clean_blob drivers/net/wireless/orinoco/fw.c
+clean_kconfig drivers/net/wireless/orinoco/Kconfig 'HERMES'
+clean_mk CONFIG_HERMES drivers/net/wireless/orinoco/Makefile
+
+announce ORINOCO_USB - "Agere Orinoco USB support"
+reject_firmware drivers/net/wireless/orinoco/orinoco_usb.c
+clean_blob drivers/net/wireless/orinoco/orinoco_usb.c
+clean_kconfig drivers/net/wireless/orinoco/Kconfig 'ORINOCO_USB'
+clean_mk CONFIG_ORINOCO_USB drivers/net/wireless/orinoco/Makefile
+
+announce WLAGS49_H2 - 'Agere Systems HERMES II Wireless PC Card Model 0110'
+# Some pieces of the firmware images are most definitely data, but
+# others seem to be code.
+clean_file drivers/staging/wlags49_h2/ap_h2.c
+clean_file drivers/staging/wlags49_h2/sta_h2.c
+clean_blob drivers/staging/wlags49_h2/wl_profile.c
+clean_kconfig drivers/staging/wlags49_h2/Kconfig 'WLAGS49_H2'
+clean_mk CONFIG_WLAGS49_H2 drivers/staging/Makefile
+
+announce WLAGS49_H25 - 'Linksys Systems HERMES II.5 Wireless-G_CompactFlash_Card'
+clean_file drivers/staging/wlags49_h2/ap_h25.c
+clean_file drivers/staging/wlags49_h2/sta_h25.c
+clean_kconfig drivers/staging/wlags49_h25/Kconfig 'WLAGS49_H25'
+clean_mk CONFIG_WLAGS49_H25 drivers/staging/Makefile
+
+announce IPW2100 - "Intel PRO/Wireless 2100 Network Connection"
+reject_firmware drivers/net/wireless/ipw2x00/ipw2100.c
+clean_blob drivers/net/wireless/ipw2x00/ipw2100.c
+clean_kconfig drivers/net/wireless/Kconfig 'IPW2100'
+clean_mk CONFIG_IPW2100 drivers/net/wireless/ipw2x00/Makefile
+
+announce IPW2200 - "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
+reject_firmware drivers/net/wireless/ipw2x00/ipw2200.c
+clean_blob drivers/net/wireless/ipw2x00/ipw2200.c
+clean_kconfig drivers/net/wireless/Kconfig 'IPW2200'
+clean_mk CONFIG_IPW2200 drivers/net/wireless/ipw2x00/Makefile
+
+announce IWL3945 - "Intel PRO/Wireless 3945ABG/BG Network Connection"
+reject_firmware drivers/net/wireless/iwlegacy/iwl3945-base.c
+clean_blob drivers/net/wireless/iwlegacy/iwl3945-base.c
+clean_blob drivers/net/wireless/iwlegacy/iwl-3945.h
+clean_kconfig drivers/net/wireless/iwlegacy/Kconfig 'IWL3945'
+clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlegacy/Makefile
+
+announce IWLAGN - "Intel Wireless WiFi Next Gen AGN"
+reject_firmware drivers/net/wireless/iwlwifi/iwl-agn.c
+clean_blob drivers/net/wireless/iwlwifi/iwl-agn.c
+clean_blob drivers/net/wireless/iwlwifi/iwl-5000.c
+clean_blob drivers/net/wireless/iwlwifi/iwl-6000.c
+clean_blob drivers/net/wireless/iwlwifi/iwl-1000.c
+clean_blob drivers/net/wireless/iwlwifi/iwl-2000.c
+clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN'
+clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile
+
+announce IWL4965 - "Intel Wireless WiFi 4965AGN"
+reject_firmware drivers/net/wireless/iwlegacy/iwl4965-base.c
+clean_blob drivers/net/wireless/iwlegacy/iwl4965-base.c
+clean_blob drivers/net/wireless/iwlegacy/iwl-4965.c
+clean_kconfig drivers/net/wireless/iwlegacy/Kconfig 'IWL4965'
+clean_mk CONFIG_IWL4965 drivers/net/wireless/iwlegacy/Makefile
+
+announce IWM - "Intel Wireless Multicomm 3200 WiFi driver"
+reject_firmware drivers/net/wireless/iwmc3200wifi/fw.c
+clean_blob drivers/net/wireless/iwmc3200wifi/sdio.c
+clean_kconfig drivers/net/wireless/iwmc3200wifi/Kconfig 'IWM'
+clean_mk CONFIG_IWM drivers/net/wireless/iwmc3200wifi/Makefile
+
+announce IWMC3200TOP - "Intel Wireless MultiCom Top Driver"
+reject_firmware drivers/misc/iwmc3200top/fw-download.c
+undefine_macro '_FW_NAME(api)' '"/*(DEBLOBBED)*/"' \
+ 'removed non-Free firmware name' drivers/misc/iwmc3200top/iwmc3200top.h
+clean_blob drivers/misc/iwmc3200top/main.c
+clean_kconfig drivers/misc/iwmc3200top/Kconfig 'IWMC3200TOP'
+clean_mk CONFIG_IWMC3200TOP drivers/misc/iwmc3200top/Makefile
+
+announce LIBERTAS - "Marvell 8xxx Libertas WLAN driver support"
+reject_firmware drivers/net/wireless/libertas/main.c '
+/Try user-specified firmware first/{
+ :end1
+ /request_firmware(helper, user_helper/! {N; b end1;};
+ :end2
+ /request_firmware(helper, user_helper.*request_firmware(mainfw, user_mainfw/! {N; b end2;};
+ /request_firmware(helper, user_helper.*request_firmware(mainfw, user_mainfw/{
+ /request_firmware.*request_firmware.*request_firmware/!{p; d;};
+ }
+}
+'
+clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS'
+clean_mk CONFIG_LIBERTAS drivers/net/wireless/libertas/Makefile
+
+announce LIBERTAS_CS - "Marvell Libertas 8385 CompactFlash 802.11b/g cards"
+clean_blob drivers/net/wireless/libertas/if_cs.c
+clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_CS'
+clean_mk CONFIG_LIBERTAS_CS drivers/net/wireless/libertas/Makefile
+
+announce LIBERTAS_SDIO - "Marvell Libertas 8385 and 8686 SDIO 802.11b/g cards"
+clean_blob drivers/net/wireless/libertas/if_sdio.c
+clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SDIO'
+clean_mk CONFIG_LIBERTAS_SDIO drivers/net/wireless/libertas/Makefile
+
+announce LIBERTAS_SPI - "Marvell Libertas 8686 SPI 802.11b/g cards"
+clean_blob drivers/net/wireless/libertas/if_spi.c
+clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SPI'
+clean_mk CONFIG_LIBERTAS_SPI drivers/net/wireless/libertas/Makefile
+
+announce LIBERTAS_USB - "Marvell Libertas 8388 USB 802.11b/g cards"
+reject_firmware drivers/net/wireless/libertas/if_usb.c '
+/Try user-specified firmware first/{
+ /request_firmware/!N;
+ /request_firmware/!N;
+ /request_firmware/{p; d;};
+}
+'
+clean_blob drivers/net/wireless/libertas/if_usb.c
+clean_blob drivers/net/wireless/libertas/README
+clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_USB'
+clean_mk CONFIG_LIBERTAS_USB drivers/net/wireless/libertas/Makefile
+
+announce LIBERTAS_THINFIRM_USB - "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware"
+reject_firmware drivers/net/wireless/libertas_tf/if_usb.c
+clean_blob drivers/net/wireless/libertas_tf/if_usb.c
+clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_THINFIRM_USB'
+clean_mk CONFIG_LIBERTAS_THINFIRM_USB drivers/net/wireless/libertas_tf/Makefile
+
+announce MWL8K - 'Marvell 88W8xxx PCI/PCIe Wireless support'
+reject_firmware drivers/net/wireless/mwl8k.c
+clean_blob drivers/net/wireless/mwl8k.c
+clean_kconfig drivers/net/wireless/Kconfig 'MWL8K'
+clean_mk CONFIG_MWL8K drivers/net/wireless/Makefile
+
+announce ATH6K_LEGACY - "Atheros AR6003 support (non mac80211)"
+reject_firmware drivers/staging/ath6kl/os/linux/ar6000_android.c
+reject_firmware drivers/staging/ath6kl/os/linux/include/osapi_linux.h
+clean_sed '
+/\*firmware_p = firmware = kzalloc/ i\
+ return -1;
+' drivers/staging/ath6kl/os/linux/ar6000_android.c \
+ 'disabled non-Free firmware loading machinery'
+clean_blob drivers/staging/ath6kl/os/linux/include/ar6000_drv.h
+clean_kconfig drivers/staging/ath6kl/Kconfig 'ATH6K_LEGACY'
+clean_mk CONFIG_ATH6K_LEGACY drivers/staging/ath6kl/Makefile
+
+announce ATH9K_HTC - "Atheros HTC based wireless cards support"
+reject_firmware drivers/net/wireless/ath/ath9k/hif_usb.c
+clean_blob drivers/net/wireless/ath/ath9k/hif_usb.c
+clean_kconfig drivers/net/wireless/ath/ath9k/Kconfig 'ATH9K_HTC'
+clean_mk CONFIG_ATH9K_HTC drivers/net/wireless/ath/ath9k/Makefile
+
+announce PRISM2_USB - "Prism2.5/3 USB driver"
+reject_firmware drivers/staging/wlan-ng/prism2fw.c
+clean_blob drivers/staging/wlan-ng/prism2fw.c
+clean_kconfig drivers/staging/wlan-ng/Kconfig PRISM2_USB
+clean_mk CONFIG_PRISM2_USB drivers/staging/wlan-ng/Makefile
+
+announce P54_PCI - "Prism54 PCI support"
+reject_firmware drivers/net/wireless/p54/p54pci.c
+clean_blob drivers/net/wireless/p54/p54pci.c
+clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_PCI'
+clean_mk CONFIG_P54_PCI drivers/net/wireless/p54/Makefile
+
+announce P54_SPI - "Prism54 SPI (stlc45xx) support"
+# There's support for loading custom 3826.eeprom here, with a default
+# eeprom that is clearly pure data. Without Free 3826.arm, there's
+# little point in trying to retain the ability to load 3826.eeprom, so
+# we drop it altogether.
+reject_firmware drivers/net/wireless/p54/p54spi.c
+clean_blob drivers/net/wireless/p54/p54spi.c
+clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_SPI'
+clean_mk CONFIG_P54_SPI drivers/net/wireless/p54/Makefile
+
+announce P54_USB - "Prism54 USB support"
+reject_firmware drivers/net/wireless/p54/p54usb.c
+clean_blob drivers/net/wireless/p54/p54usb.c
+clean_blob drivers/net/wireless/p54/p54usb.h
+clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_USB'
+clean_mk CONFIG_P54_USB drivers/net/wireless/p54/Makefile
+
+announce PRISM54 - 'Intersil Prism GT/Duette/Indigo PCI/Cardbus'
+reject_firmware drivers/net/wireless/prism54/islpci_dev.c
+clean_blob drivers/net/wireless/prism54/islpci_dev.c
+clean_kconfig drivers/net/wireless/Kconfig 'PRISM54'
+clean_mk CONFIG_PRISM54 drivers/net/wireless/prism54/Makefile
+
+announce RT2X00_LIB_FIRMWARE - "Ralink driver firmware support"
+reject_firmware drivers/net/wireless/rt2x00/rt2x00firmware.c
+clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT2X00_LIB_FIRMWARE'
+clean_mk CONFIG_RT2X00_LIB_FIRMWARE drivers/net/wireless/rt2x00/Makefile
+
+announce RT61PCI - "Ralink rt2501/rt61 (PCI/PCMCIA) support"
+clean_blob drivers/net/wireless/rt2x00/rt61pci.h
+clean_blob drivers/net/wireless/rt2x00/rt61pci.c
+clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT61PCI'
+clean_mk CONFIG_RT61PCI drivers/net/wireless/rt2x00/Makefile
+
+announce RT73USB - "Ralink rt2501/rt73 (USB) support"
+clean_blob drivers/net/wireless/rt2x00/rt73usb.h
+clean_blob drivers/net/wireless/rt2x00/rt73usb.c
+clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT73USB'
+clean_mk CONFIG_RT73USB drivers/net/wireless/rt2x00/Makefile
+
+announce RT2800PCI - "Ralink rt2800 (PCI/PCMCIA) support"
+clean_blob drivers/net/wireless/rt2x00/rt2800pci.h
+clean_blob drivers/net/wireless/rt2x00/rt2800pci.c
+clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800PCI
+clean_mk CONFIG_RT2800PCI drivers/net/wireless/rt2x00/Makefile
+
+announce RT2800USB - "Ralink rt2800 (USB) support"
+clean_blob drivers/net/wireless/rt2x00/rt2800usb.h
+clean_blob drivers/net/wireless/rt2x00/rt2800usb.c
+clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800USB
+clean_mk CONFIG_RT2800USB drivers/net/wireless/rt2x00/Makefile
+
+announce RT2860 - "Ralink 2860/3090 wireless support"
+reject_firmware drivers/staging/rt2860/common/rtmp_mcu.c
+clean_blob drivers/staging/rt2860/common/rtmp_mcu.c
+clean_blob drivers/staging/rt2860/rtmp_def.h
+clean_blob drivers/staging/rt2860/common/ee_efuse.c
+clean_kconfig drivers/staging/rt2860/Kconfig RT2860
+clean_mk CONFIG_RT2860 drivers/staging/rt2860/Makefile
+
+announce RT2870 - "Ralink 2870/3070 wireless support"
+clean_kconfig drivers/staging/rt2870/Kconfig RT2870
+clean_mk CONFIG_RT2870 drivers/staging/rt2870/Makefile
+
+announce RTL8192C_COMMON - "Realtek RTL8192C[EU]/RTL8188C[EU] Wireless Network Adapters"
+reject_firmware drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
+clean_kconfig drivers/net/wireless/rtlwifi RTL8192C_COMMON
+clean_mk CONFIG_RTL8192C_COMMON drivers/net/wireless/rtlwifi/rtl8192c/Makefile
+
+announce RTL8192CE - "Realtek RTL8192CE/RTL8188CE Wireless Network Adapter"
+clean_blob drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
+clean_kconfig drivers/net/wireless/rtlwifi RTL8192CE
+clean_mk CONFIG_RTL8192CE drivers/net/wireless/rtlwifi/rtl8192ce/Makefile
+
+announce RTL8192CU - "Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter"
+clean_blob drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+clean_kconfig drivers/net/wireless/rtlwifi RTL8192CU
+clean_mk CONFIG_RTL8192CU drivers/net/wireless/rtlwifi/rtl8192cu/Makefile
+
+announce RTL8192E - "RealTek RTL8192E Wireless LAN NIC driver"
+reject_firmware drivers/staging/rtl8192e/r819xE_firmware.c
+clean_blob drivers/staging/rtl8192e/r819xE_firmware.c
+clean_kconfig drivers/staging/rtl8192e/Kconfig RTL8192E
+clean_mk CONFIG_RTL8192E drivers/staging/rtl8192e/Makefile
+
+announce RTL8192U - "RealTek RTL8192U Wireless LAN NIC driver"
+reject_firmware drivers/staging/rtl8192u/r819xU_firmware.c
+clean_blob drivers/staging/rtl8192u/r819xU_firmware.c
+clean_kconfig drivers/staging/rtl8192u/Kconfig 'RTL8192U'
+clean_mk CONFIG_RTL8192U drivers/staging/rtl8192u/Makefile
+
+announce R8712U - "RealTek RTL8712U (RTL8192SU) Wireless LAN NIC driver"
+reject_firmware drivers/staging/rtl8712/hal_init.c
+clean_blob drivers/staging/rtl8712/hal_init.c
+clean_kconfig drivers/staging/rtl8712/Kconfig 'R8712U'
+clean_mk CONFIG_R8712U drivers/staging/rtl8712/Makefile
+
+announce VT6656 - "VIA Technologies VT6656 support"
+clean_sed '
+/^FIRMWAREbDownload($/,/^}$/ {
+ /PBYTE.*pBuffer/ i\
+ PBYTE abyFirmware[1] = { 0 };
+ /-->Download firmware/ i\
+ printk("vt6656: missing Free firmware\\n");\
+ return (FALSE);
+}' drivers/staging/vt6656/firmware.c 'report missing Free firmware'
+clean_blob drivers/staging/vt6656/firmware.c
+clean_kconfig drivers/staging/vt6656/Kconfig 'VT6656'
+clean_mk CONFIG_VT6656 drivers/staging/vt6656/Makefile
+
+announce WL1251 - "TI wl1251 support"
+reject_firmware drivers/net/wireless/wl1251/main.c
+clean_blob drivers/net/wireless/wl1251/main.c
+clean_blob drivers/net/wireless/wl1251/wl1251.h
+clean_kconfig drivers/net/wireless/wl1251/Kconfig 'WL1251'
+clean_mk CONFIG_WL1251 drivers/net/wireless/wl1251/Makefile
+
+announce WL12XX - "TI wl12xx support"
+reject_firmware drivers/net/wireless/wl12xx/main.c
+clean_blob drivers/net/wireless/wl12xx/wl12xx.h
+clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX'
+clean_mk CONFIG_WL12XX drivers/net/wireless/wl12xx/Makefile
+
+announce WL12XX_SDIO - "TI wl12xx SDIO support"
+clean_blob drivers/net/wireless/wl12xx/sdio.c
+clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX_SDIO'
+clean_mk CONFIG_WL12XX_SDIO drivers/net/wireless/wl12xx/Makefile
+
+announce WL12XX_SDIO_TEST - "TI wl12xx SDIO testing support"
+reject_firmware drivers/net/wireless/wl12xx/sdio_test.c
+clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX_SDIO_TEST'
+clean_mk CONFIG_WL12XX_SDIO_TEST drivers/net/wireless/wl12xx/Makefile
+
+announce WL12XX_SPI - "TI wl12xx SPI support"
+clean_blob drivers/net/wireless/wl12xx/spi.c
+clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX_SPI'
+clean_mk CONFIG_WL12XX_SPI drivers/net/wireless/wl12xx/Makefile
+
+announce USB_ZD1201 - "USB ZD1201 based Wireless device support"
+reject_firmware drivers/net/wireless/zd1201.c
+clean_blob drivers/net/wireless/zd1201.c
+clean_kconfig drivers/net/wireless/Kconfig 'USB_ZD1201'
+clean_mk CONFIG_USB_ZD1201 drivers/net/wireless/Makefile
+
+announce ZD1211RW - "ZyDAS ZD1211/ZD1211B USB-wireless support"
+reject_firmware drivers/net/wireless/zd1211rw/zd_usb.c
+clean_blob drivers/net/wireless/zd1211rw/zd_usb.c
+clean_kconfig drivers/net/wireless/zd1211rw/Kconfig 'ZD1211RW'
+clean_mk CONFIG_ZD1211RW drivers/net/wireless/zd1211rw/Makefile
+
+# bluetooth
+
+announce BT_ATH3K - "Atheros firmware download driver"
+reject_firmware drivers/bluetooth/ath3k.c
+clean_blob drivers/bluetooth/ath3k.c
+clean_kconfig drivers/bluetooth/Kconfig 'BT_ATH3K'
+clean_mk CONFIG_BT_ATH3K drivers/bluetooth/Makefile
+
+announce BT_HCIBCM203X - "HCI BCM203x USB driver"
+reject_firmware drivers/bluetooth/bcm203x.c
+clean_blob drivers/bluetooth/bcm203x.c
+clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBCM203X'
+clean_mk CONFIG_BT_HCIBCM203X drivers/bluetooth/Makefile
+
+announce BT_HCIBFUSB - "HCI BlueFRITZ! USB driver"
+reject_firmware drivers/bluetooth/bfusb.c
+clean_blob drivers/bluetooth/bfusb.c
+clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBFUSB'
+clean_mk CONFIG_BT_HCIBFUSB drivers/bluetooth/Makefile
+
+announce BT_HCIBT3C - "HCI BT3C (PC Card) driver"
+reject_firmware drivers/bluetooth/bt3c_cs.c
+clean_blob drivers/bluetooth/bt3c_cs.c
+clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBT3C'
+clean_mk CONFIG_BT_HCIBT3C drivers/bluetooth/Makefile
+
+announce BT_MRVL_SDIO - "Marvell BT-over-SDIO driver"
+reject_firmware drivers/bluetooth/btmrvl_sdio.c
+clean_blob drivers/bluetooth/btmrvl_sdio.c
+clean_blob Documentation/btmrvl.txt
+clean_kconfig drivers/bluetooth/Kconfig 'BT_MRVL_SDIO'
+clean_mk CONFIG_BT_MRVL_SDIO drivers/bluetooth/Makefile
+
+announce TI_ST - "Texas Instruments shared transport line discipline"
+reject_firmware drivers/misc/ti-st/st_kim.c
+clean_blob drivers/misc/ti-st/st_kim.c
+clean_kconfig drivers/misc/ti-st/Kconfig 'TI_ST'
+clean_mk CONFIG_TI_ST drivers/misc/ti-st/Makefile
+
+# wimax
+
+announce WIMAX_I2400M - "Intel Wireless WiMAX Connection 2400"
+reject_firmware drivers/net/wimax/i2400m/fw.c
+clean_blob drivers/net/wimax/i2400m/sdio.c
+clean_blob drivers/net/wimax/i2400m/usb.c
+clean_blob Documentation/wimax/README.i2400m
+clean_kconfig drivers/net/wimax/i2400m/Kconfig 'WIMAX_I2400M'
+clean_mk CONFIG_WIMAX_I2400M drivers/net/wimax/i2400m/Makefile
+
+announce BCM_WIMAX - "Beceem BCS200/BCS220-3 and BCSM250 wimax support"
+clean_blob drivers/staging/bcm/Macros.h
+# This disables loading of the .cfg file as well, but it's useless without
+# the firmware proper.
+clean_sed '
+/^static \(inline \)\?struct file \*open_firmware_file/,/^}$/ {
+ /oldfs=get_fs();/i\
+ return /*(DEBLOBBED)*/ NULL;
+}' drivers/staging/bcm/Misc.c 'disabled non-Free firmware loading machinery'
+clean_kconfig drivers/staging/bcm/Kconfig 'BCM_WIMAX'
+clean_mk CONFIG_BCM_WIMAX drivers/staging/bcm/Makefile
+
+# infiniband
+
+announce INFINIBAND_QIB - "QLogic PCIe HCA support"
+drop_fw_file firmware/qlogic/sd7220.fw.ihex firmware/qlogic/sd7220.fw
+reject_firmware drivers/infiniband/hw/qib/qib_sd7220.c
+clean_blob drivers/infiniband/hw/qib/qib_sd7220.c
+clean_kconfig drivers/infiniband/hw/qib/Kconfig 'INFINIBAND_QIB'
+clean_mk CONFIG_INFINIBAND_QIB drivers/infiniband/hw/qib/Makefile
+
+# CAN
+
+announce CAN_SOFTING - "Softing Gmbh CAN generic support"
+reject_firmware drivers/net/can/softing/softing_fw.c
+clean_kconfig drivers/net/can/softing/Kconfig 'CAN_SOFTING'
+clean_mk CONFIG_CAN_SOFTING drivers/net/can/softing/Makefile
+
+announce CAN_SOFTING_CS - "Softing Gmbh CAN pcmcia cards"
+clean_blob drivers/net/can/softing/softing_cs.c
+clean_blob drivers/net/can/softing/softing_platform.h
+clean_sed '
+/^config CAN_SOFTING_CS$/,${
+ /You need firmware/i\
+ /*(DEBLOBBED)*/
+ /You need firmware/,/softing-fw.*tar\.gz/d
+}' drivers/net/can/softing/Kconfig 'removed firmware notes'
+clean_kconfig drivers/net/can/softing/Kconfig 'CAN_SOFTING_CS'
+clean_mk CONFIG_CAN_SOFTING_CS drivers/net/can/softing/Makefile
+
+########
+# ISDN #
+########
+
+announce ISDN_DIVAS - "Support Eicon DIVA Server cards"
+clean_blob drivers/isdn/hardware/eicon/cardtype.h
+clean_blob drivers/isdn/hardware/eicon/dsp_defs.h
+clean_kconfig drivers/isdn/hardware/eicon/Kconfig 'ISDN_DIVAS'
+clean_mk CONFIG_ISDN_DIVAS drivers/isdn/hardware/eicon/Makefile
+
+announce MISDN_SPEEDFAX - "Support for Sedlbauer Speedfax+"
+reject_firmware drivers/isdn/hardware/mISDN/speedfax.c
+clean_blob drivers/isdn/hardware/mISDN/speedfax.c
+clean_kconfig drivers/isdn/hardware/mISDN/Kconfig 'MISDN_SPEEDFAX'
+clean_mk CONFIG_MISDN_SPEEDFAX drivers/isdn/hardware/mISDN/Makefile
+
+##########
+# Serial #
+##########
+
+announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
+# These are not software; they're Free, but GPLed without in-tree sources.
+drop_fw_file firmware/cis/MT5634ZLX.cis.ihex firmware/cis/MT5634ZLX.cis
+drop_fw_file firmware/cis/RS-COM-2P.cis.ihex firmware/cis/RS-COM-2P.cis
+drop_fw_file firmware/cis/COMpad2.cis.ihex firmware/cis/COMpad2.cis
+drop_fw_file firmware/cis/COMpad4.cis.ihex firmware/cis/COMpad4.cis
+# These are not software; they're Free, but GPLed without textual sources.
+# It could be assumed that these binaries *are* sources, since they
+# can be trivially converted back to a textual form, without loss,
+# but we're better off safe than sorry, so remove them from our tree.
+drop_fw_file firmware/cis/SW_555_SER.cis.ihex firmware/cis/SW_555_SER.cis
+drop_fw_file firmware/cis/SW_7xx_SER.cis.ihex firmware/cis/SW_7xx_SER.cis
+drop_fw_file firmware/cis/SW_8xx_SER.cis.ihex firmware/cis/SW_8xx_SER.cis
+# clean_blob drivers/tty/serial/serial_cs.c
+# clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_8250_CS'
+# clean_mk CONFIG_SERIAL_8250_CS drivers/tty/serial/Makefile
+
+announce SERIAL_ICOM - "IBM Multiport Serial Adapter"
+reject_firmware drivers/tty/serial/icom.c
+clean_blob drivers/tty/serial/icom.c
+clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_ICOM'
+clean_mk CONFIG_SERIAL_ICOM drivers/tty/serial/Makefile
+
+announce SERIAL_QE - "Freescale QUICC Engine serial port support"
+reject_firmware drivers/tty/serial/ucc_uart.c
+clean_blob drivers/tty/serial/ucc_uart.c
+clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_QE'
+clean_mk CONFIG_SERIAL_QE drivers/tty/serial/Makefile
+
+#########
+# input #
+#########
+
+announce TOUCHSCREEN_ATMEL_MXT - "Atmel mXT I2C Touchscreen"
+reject_firmware drivers/input/touchscreen/atmel_mxt_ts.c
+clean_blob drivers/input/touchscreen/atmel_mxt_ts.c
+clean_kconfig drivers/input/touchscreen/Kconfig 'TOUCHSCREEN_ATMEL_MXT'
+clean_mk CONFIG_TOUCHSCREEN_ATMEL_MXT drivers/input/touchscreen/Makefile
+
+announce LIRC_ZILOG - "Zilog/Hauppauge IR Transmitter"
+reject_firmware drivers/staging/lirc/lirc_zilog.c
+clean_blob drivers/staging/lirc/lirc_zilog.c
+clean_kconfig drivers/staging/lirc/Kconfig 'LIRC_ZILOG'
+clean_mk CONFIG_LIRC_ZILOG drivers/staging/lirc/Makefile
+
+####################
+# Data acquisition #
+####################
+
+announce COMEDI_PCI_DRIVERS - "Data acquisition support Comedi PCI drivers"
+reject_firmware drivers/staging/comedi/drivers/jr3_pci.c
+clean_blob drivers/staging/comedi/drivers/jr3_pci.c
+clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_PCI_DRIVERS'
+clean_mk CONFIG_COMEDI_PCI_DRIVERS drivers/staging/comedi/drivers/Makefile
+
+announce COMEDI_USBDUX - "ITL USBDUX support"
+reject_firmware drivers/staging/comedi/drivers/usbdux.c
+clean_blob drivers/staging/comedi/drivers/usbdux.c
+clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USBDUX'
+clean_mk CONFIG_COMEDI_USBDUX drivers/staging/comedi/drivers/Makefile
+
+announce COMEDI_USBDUXFAST - "ITL USB-DUXfast support"
+reject_firmware drivers/staging/comedi/drivers/usbduxfast.c
+clean_blob drivers/staging/comedi/drivers/usbduxfast.c
+clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USBDUXFAST'
+clean_mk CONFIG_COMEDI_USBDUXFAST drivers/staging/comedi/drivers/Makefile
+
+
+########
+# SCSI #
+########
+
+announce SCSI_QLOGICPTI - "PTI Qlogic, ISP Driver"
+drop_fw_file firmware/qlogic/isp1000.bin.ihex firmware/qlogic/isp1000.bin
+reject_firmware drivers/scsi/qlogicpti.c
+clean_blob drivers/scsi/qlogicpti.c
+clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGICPTI'
+clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile
+
+announce SCSI_ADVANSYS - "AdvanSys SCSI"
+drop_fw_file firmware/advansys/mcode.bin.ihex firmware/advansys/mcode.bin
+drop_fw_file firmware/advansys/3550.bin.ihex firmware/advansys/3550.bin
+drop_fw_file firmware/advansys/38C0800.bin.ihex firmware/advansys/38C0800.bin
+drop_fw_file firmware/advansys/38C1600.bin.ihex firmware/advansys/38C1600.bin
+reject_firmware drivers/scsi/advansys.c
+clean_blob drivers/scsi/advansys.c
+clean_kconfig drivers/scsi/Kconfig 'SCSI_ADVANSYS'
+clean_mk CONFIG_SCSI_ADVANSYS drivers/scsi/Makefile
+
+announce SCSI_QLOGIC_1280 - "Qlogic QLA 1240/1x80/1x160 SCSI"
+drop_fw_file firmware/qlogic/1040.bin.ihex firmware/qlogic/1040.bin
+drop_fw_file firmware/qlogic/1280.bin.ihex firmware/qlogic/1280.bin
+drop_fw_file firmware/qlogic/12160.bin.ihex firmware/qlogic/12160.bin
+reject_firmware drivers/scsi/qla1280.c
+clean_blob drivers/scsi/qla1280.c
+clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGIC_1280'
+clean_mk CONFIG_SCSI_QLOGIC_1280 drivers/scsi/Makefile
+
+announce SCSI_AIC94XX - "Adaptec AIC94xx SAS/SATA support"
+reject_firmware drivers/scsi/aic94xx/aic94xx_seq.c
+clean_blob drivers/scsi/aic94xx/aic94xx_seq.c
+clean_blob drivers/scsi/aic94xx/aic94xx_seq.h
+clean_kconfig drivers/scsi/aic94xx/Kconfig 'SCSI_AIC94XX'
+clean_mk CONFIG_SCSI_AIC94XX drivers/scsi/aic94xx/Makefile
+
+announce SCSI_BFA_FC - "Brocade BFA Fibre Channel Support"
+clean_blob drivers/scsi/bfa/bfad_im.h
+reject_firmware drivers/scsi/bfa/bfad.c
+clean_blob drivers/scsi/bfa/bfad.c
+clean_kconfig drivers/scsi/Kconfig 'SCSI_BFA_FC'
+clean_mk CONFIG_SCSI_BFA_FC drivers/scsi/bfa/Makefile
+
+announce SCSI_QLA_FC - "QLogic QLA2XXX Fibre Channel Support"
+reject_firmware drivers/scsi/qla2xxx/qla_gbl.h
+reject_firmware drivers/scsi/qla2xxx/qla_init.c
+reject_firmware drivers/scsi/qla2xxx/qla_os.c
+reject_firmware drivers/scsi/qla2xxx/qla_nx.c
+clean_sed '
+/^config SCSI_QLA_FC$/,/^config /{
+ /^ By default, firmware/i\
+ /*(DEBLOBBED)*/
+ /^ By default, firmware/,/ftp:[/][/].*firmware[/]/d
+}' drivers/scsi/qla2xxx/Kconfig 'removed firmware notes'
+clean_blob drivers/scsi/qla2xxx/qla_os.c
+clean_kconfig drivers/scsi/qla2xxx/Kconfig 'SCSI_QLA_FC'
+clean_mk CONFIG_SCSI_QLA_FC drivers/scsi/qla2xxx/Makefile
+
+
+#######
+# USB #
+#######
+
+# atm
+
+announce USB_CXACRU - "Conexant AccessRunner USB support"
+reject_firmware drivers/usb/atm/cxacru.c
+clean_blob drivers/usb/atm/cxacru.c
+clean_kconfig drivers/usb/atm/Kconfig 'USB_CXACRU'
+clean_mk CONFIG_USB_CXACRU drivers/usb/atm/Makefile
+
+announce USB_SPEEDTOUCH - "Speedtouch USB support"
+reject_firmware drivers/usb/atm/speedtch.c
+clean_blob drivers/usb/atm/speedtch.c
+clean_kconfig drivers/usb/atm/Kconfig 'USB_SPEEDTOUCH'
+clean_mk CONFIG_USB_SPEEDTOUCH drivers/usb/atm/Makefile
+
+announce USB_UEAGLEATM - "ADI 930 and eagle USB DSL modem"
+reject_firmware drivers/usb/atm/ueagle-atm.c
+clean_blob drivers/usb/atm/ueagle-atm.c
+clean_kconfig drivers/usb/atm/Kconfig 'USB_UEAGLEATM'
+clean_mk CONFIG_USB_UEAGLEATM drivers/usb/atm/Makefile
+
+# misc
+
+announce USB_EMI26 - "EMI 2|6 USB Audio interface"
+# These files are not under the GPL, better remove them all.
+drop_fw_file firmware/emi26/bitstream.HEX firmware/emi26/bitstream.fw
+drop_fw_file firmware/emi26/firmware.HEX firmware/emi26/firmware.fw
+drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw
+reject_firmware drivers/usb/misc/emi26.c
+clean_blob drivers/usb/misc/emi26.c
+clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI26'
+clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile
+
+announce USB_EMI62 - "EMI 6|2m USB Audio interface"
+# These files are probably not under the GPL, better remove them all.
+drop_fw_file firmware/emi62/bitstream.HEX firmware/emi62/bitstream.fw
+drop_fw_file firmware/emi62/loader.HEX firmware/emi62/loader.fw
+drop_fw_file firmware/emi62/midi.HEX firmware/emi62/midi.fw
+drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw
+reject_firmware drivers/usb/misc/emi62.c
+clean_blob drivers/usb/misc/emi62.c
+clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI62'
+clean_mk CONFIG_USB_EMI62 drivers/usb/misc/Makefile
+
+announce USB_ISIGHTFW - "iSight firmware loading support"
+reject_firmware drivers/usb/misc/isight_firmware.c
+clean_blob drivers/usb/misc/isight_firmware.c
+clean_kconfig drivers/usb/misc/Kconfig 'USB_ISIGHTFW'
+clean_mk CONFIG_USB_ISIGHTFW drivers/usb/misc/Makefile
+
+# storage
+
+announce USB_STORAGE_ENE_UB6250 - "USB ENE card reader support"
+reject_firmware drivers/usb/storage/ene_ub6250.c
+clean_blob drivers/usb/storage/ene_ub6250.c
+clean_kconfig drivers/usb/storage/Kconfig 'USB_STORAGE_ENE_UB6250'
+clean_mk 'CONFIG_USB_STORAGE_ENE_UB6250' drivers/usb/storage/Makefile
+
+announce USB_ENESTORAGE - "USB ENE card reader support"
+clean_blob drivers/staging/keucr/init.h
+clean_sed '
+/^int ENE_LoadBinCode(/,/^}$/ {
+ /kmalloc/i\
+ return /*(DEBLOBBED)*/ USB_STOR_TRANSPORT_ERROR;
+}
+' drivers/staging/keucr/init.c 'disable non-Free firmware loading machinery'
+clean_kconfig drivers/staging/keucr/Kconfig 'USB_ENESTORAGE'
+clean_mk 'CONFIG_USB_ENESTORAGE' drivers/staging/keucr/Makefile
+
+# serial
+
+announce USB_SERIAL_KEYSPAN - "USB Keyspan USA-xxx Serial Driver"
+drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_MPR'
+drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA18X'
+drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19'
+drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QI'
+drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QW'
+drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19W'
+drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28'
+drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XA'
+drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XB'
+drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28X'
+drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49W'
+drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49WLC'
+reject_firmware drivers/usb/serial/keyspan.c
+clean_blob drivers/usb/serial/keyspan.c
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN'
+clean_mk CONFIG_USB_SERIAL_KEYSPAN drivers/usb/serial/Makefile
+
+announce USB_SERIAL_KEYSPAN_PDA - "USB Keyspan PDA Single Port Serial Driver"
+clean_sed '
+s,request_ihex_firmware,/*KEYSPAN_PDA*/&,
+' drivers/usb/serial/keyspan_pda.c 'accept Free firmware'
+
+announce USB_SERIAL_EDGEPORT - "USB Inside Out Edgeport Serial Driver"
+clean_fw firmware/edgeport/boot.H16 firmware/edgeport/boot.fw
+clean_fw firmware/edgeport/boot2.H16 firmware/edgeport/boot2.fw
+clean_fw firmware/edgeport/down.H16 firmware/edgeport/down.fw
+clean_fw firmware/edgeport/down2.H16 firmware/edgeport/down2.fw
+reject_firmware drivers/usb/serial/io_edgeport.c
+clean_blob drivers/usb/serial/io_edgeport.c
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT'
+clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile
+
+announce USB_SERIAL_EDGEPORT_TI - "USB Inside Out Edgeport Serial Driver (TI devices)"
+clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin
+reject_firmware drivers/usb/serial/io_ti.c
+clean_blob drivers/usb/serial/io_ti.c
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT_TI'
+clean_mk CONFIG_USB_SERIAL_EDGEPORT_TI drivers/usb/serial/Makefile
+
+announce USB_SERIAL_TI - "USB TI 3410/5052 Serial Driver"
+drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw
+drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw
+drop_fw_file firmware/mts_cdma.fw.ihex firmware/mts_cdma.fw
+drop_fw_file firmware/mts_gsm.fw.ihex firmware/mts_gsm.fw
+drop_fw_file firmware/mts_edge.fw.ihex firmware/mts_edge.fw
+reject_firmware drivers/usb/serial/ti_usb_3410_5052.c
+clean_blob drivers/usb/serial/ti_usb_3410_5052.c
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_TI'
+clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile
+
+announce USB_SERIAL_WHITEHEAT - "USB ConnectTech WhiteHEAT Serial Driver"
+clean_fw firmware/whiteheat.HEX firmware/whiteheat.fw
+clean_fw firmware/whiteheat_loader.HEX firmware/whiteheat_loader.fw
+clean_fw firmware/whiteheat_loader_debug.HEX firmware/whiteheat_loader_debug.fw
+reject_firmware drivers/usb/serial/whiteheat.c
+clean_blob drivers/usb/serial/whiteheat.c
+clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_WHITEHEAT'
+clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile
+
+# uwb
+
+announce UWB_I1480U - Support for Intel Wireless UWB Link 1480 HWA
+reject_firmware drivers/uwb/i1480/dfu/i1480-dfu.h
+reject_firmware drivers/uwb/i1480/dfu/mac.c
+reject_firmware drivers/uwb/i1480/dfu/phy.c
+clean_blob drivers/uwb/i1480/dfu/usb.c
+clean_kconfig drivers/uwb/Kconfig 'UWB_I1480U'
+clean_mk CONFIG_UWB_I1480U drivers/uwb/i1480/dfu/Makefile
+
+
+
+#########
+# Sound #
+#########
+
+announce SND_ASIHPI - "AudioScience ASIxxxx"
+reject_firmware sound/pci/asihpi/hpidspcd.c
+clean_blob sound/pci/asihpi/hpidspcd.c
+clean_blob sound/pci/asihpi/hpioctl.c
+clean_kconfig sound/pci/Kconfig 'SND_ASIHPI'
+clean_mk CONFIG_SND_ASIHPI sound/pci/asihpi/Makefile
+
+announce SND_CS46XX - "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x"
+# This appears to have been extracted from some non-Free driver
+clean_file sound/pci/cs46xx/cs46xx_image.h
+# The following blobs are definitely extracted from non-Free drivers.
+clean_file sound/pci/cs46xx/imgs/cwc4630.h
+clean_file sound/pci/cs46xx/imgs/cwcasync.h
+clean_file sound/pci/cs46xx/imgs/cwcsnoop.h
+clean_sed '
+/^\(int \)\?snd_cs46xx_download_image([^;]*$/,/^}$/{
+ /for.*BA1_MEMORY_COUNT/i\
+#if 0
+ /^}$/{
+ i\
+#else\
+ snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n");\
+ return -EINVAL;\
+#endif
+ }
+}
+s/cs46xx_dsp_load_module(chip, [&]cwc\(4630\|async\|snoop\)_module)/(snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n"),-EINVAL)/
+' sound/pci/cs46xx/cs46xx_lib.c 'report missing Free firmware'
+clean_blob sound/pci/cs46xx/cs46xx_lib.c
+clean_kconfig sound/pci/Kconfig 'SND_CS46XX'
+clean_mk 'CONFIG_SND_CS46XX' sound/pci/cs46xx/Makefile
+
+announce SND_INTEL_SST - "Intel SST (LPE) Driver"
+reject_firmware drivers/staging/intel_sst/intel_sst_drv_interface.c
+clean_blob drivers/staging/intel_sst/intel_sst_drv_interface.c
+reject_firmware drivers/staging/intel_sst/intel_sst_dsp.c
+clean_kconfig drivers/staging/intel_sst/Kconfig 'SND_INTEL_SST'
+clean_mk 'CONFIG_SND_INTEL_SST' drivers/staging/intel_sst/Makefile
+
+announce SND_KORG1212 - "Korg 1212 IO"
+drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp
+reject_firmware sound/pci/korg1212/korg1212.c
+clean_blob sound/pci/korg1212/korg1212.c
+clean_kconfig sound/pci/Kconfig 'SND_KORG1212'
+clean_mk 'CONFIG_SND_KORG1212' sound/pci/korg1212/Makefile
+
+announce SND_MAESTRO3 - "ESS Allegro/Maestro3"
+drop_fw_file firmware/ess/maestro3_assp_kernel.fw.ihex firmware/ess/maestro3_assp_kernel.fw
+drop_fw_file firmware/ess/maestro3_assp_minisrc.fw.ihex firmware/ess/maestro3_assp_minisrc.fw
+reject_firmware sound/pci/maestro3.c
+clean_blob sound/pci/maestro3.c
+clean_kconfig sound/pci/Kconfig 'SND_MAESTRO3'
+clean_mk 'CONFIG_SND_MAESTRO3' sound/pci/Makefile
+
+announce SND_YMFPCI - "Yamaha YMF724/740/744/754"
+drop_fw_file firmware/yamaha/ds1_ctrl.fw.ihex firmware/yamaha/ds1_ctrl.fw
+drop_fw_file firmware/yamaha/ds1_dsp.fw.ihex firmware/yamaha/ds1_dsp.fw
+drop_fw_file firmware/yamaha/ds1e_ctrl.fw.ihex firmware/yamaha/ds1e_ctrl.fw
+reject_firmware sound/pci/ymfpci/ymfpci_main.c
+clean_blob sound/pci/ymfpci/ymfpci_main.c
+clean_kconfig sound/pci/Kconfig 'SND_YMFPCI'
+clean_mk 'CONFIG_SND_YMFPCI' sound/pci/ymfpci/Makefile
+
+announce SND_SB16_CSP - "SB16 Advanced Signal Processor"
+drop_fw_file firmware/sb16/alaw_main.csp.ihex firmware/sb16/alaw_main.csp
+drop_fw_file firmware/sb16/mulaw_main.csp.ihex firmware/sb16/mulaw_main.csp
+drop_fw_file firmware/sb16/ima_adpcm_init.csp.ihex firmware/sb16/ima_adpcm_init.csp
+drop_fw_file firmware/sb16/ima_adpcm_capture.csp.ihex firmware/sb16/ima_adpcm_capture.csp
+drop_fw_file firmware/sb16/ima_adpcm_playback.csp.ihex firmware/sb16/ima_adpcm_playback.csp
+reject_firmware sound/isa/sb/sb16_csp.c
+clean_blob sound/isa/sb/sb16_csp.c
+clean_kconfig sound/isa/Kconfig 'SND_SB16_CSP'
+clean_mk 'CONFIG_SND_SB16_CSP' sound/isa/sb/Makefile
+
+announce SND_WAVEFRONT - "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
+drop_fw_file firmware/yamaha/yss225_registers.bin.ihex firmware/yamaha/yss225_registers.bin
+reject_firmware sound/isa/wavefront/wavefront_fx.c
+clean_blob sound/isa/wavefront/wavefront_fx.c
+reject_firmware sound/isa/wavefront/wavefront_synth.c
+clean_blob sound/isa/wavefront/wavefront_synth.c
+clean_kconfig sound/isa/Kconfig 'SND_WAVEFRONT'
+clean_mk 'CONFIG_SND_WAVEFRONT' sound/isa/wavefront/Makefile
+
+announce SND_VX_LIB - Digigram VX soundcards
+reject_firmware sound/drivers/vx/vx_hwdep.c
+clean_blob sound/drivers/vx/vx_hwdep.c
+clean_kconfig sound/drivers/Kconfig 'SND_VX_LIB'
+clean_mk CONFIG_SND_VX_LIB sound/drivers/vx/Makefile
+
+announce SND_DARLA20 - "(Echoaudio) Darla20"
+clean_blob sound/pci/echoaudio/darla20.c
+clean_kconfig sound/pci/Kconfig 'SND_DARLA20'
+clean_mk CONFIG_SND_DARLA20 sound/pci/echoaudio/Makefile
+
+announce SND_DARLA24 - "(Echoaudio) Darla24"
+clean_blob sound/pci/echoaudio/darla24.c
+clean_kconfig sound/pci/Kconfig 'SND_DARLA24'
+clean_mk CONFIG_SND_DARLA24 sound/pci/echoaudio/Makefile
+
+announce SND_ECHO3G - "(Echoaudio) 3G cards"
+clean_blob sound/pci/echoaudio/echo3g.c
+clean_kconfig sound/pci/Kconfig 'SND_ECHO3G'
+clean_mk CONFIG_SND_ECHO3G sound/pci/echoaudio/Makefile
+
+announce SND_GINA20 - "(Echoaudio) Gina20"
+clean_blob sound/pci/echoaudio/gina20.c
+clean_kconfig sound/pci/Kconfig 'SND_GINA20'
+clean_mk CONFIG_SND_GINA20 sound/pci/echoaudio/Makefile
+
+announce SND_GINA24 - "(Echoaudio) Gina24"
+clean_blob sound/pci/echoaudio/gina24.c
+clean_kconfig sound/pci/Kconfig 'SND_GINA24'
+clean_mk CONFIG_SND_GINA24 sound/pci/echoaudio/Makefile
+
+announce SND_INDIGO - "(Echoaudio) Indigo"
+clean_blob sound/pci/echoaudio/indigo.c
+clean_kconfig sound/pci/Kconfig 'SND_INDIGO'
+clean_mk CONFIG_SND_INDIGO sound/pci/echoaudio/Makefile
+
+announce SND_INDIGODJ - "(Echoaudio) Indigo DJ"
+clean_blob sound/pci/echoaudio/indigodj.c
+clean_kconfig sound/pci/Kconfig 'SND_INDIGODJ'
+clean_mk CONFIG_SND_INDIGODJ sound/pci/echoaudio/Makefile
+
+announce SND_INDIGODJX - "(Echoaudio) Indigo DJx"
+clean_blob sound/pci/echoaudio/indigodjx.c
+clean_kconfig sound/pci/Kconfig 'SND_INDIGODJX'
+clean_mk CONFIG_SND_INDIGODJX sound/pci/echoaudio/Makefile
+
+announce SND_INDIGOIO - "(Echoaudio) Indigo IO"
+clean_blob sound/pci/echoaudio/indigoio.c
+clean_kconfig sound/pci/Kconfig 'SND_INDIGOIO'
+clean_mk CONFIG_SND_INDIGOIO sound/pci/echoaudio/Makefile
+
+announce SND_INDIGOIOX - "(Echoaudio) Indigo IOx"
+clean_blob sound/pci/echoaudio/indigoiox.c
+clean_kconfig sound/pci/Kconfig 'SND_INDIGOIOX'
+clean_mk CONFIG_SND_INDIGOIOX sound/pci/echoaudio/Makefile
+
+announce SND_LAYLA20 - "(Echoaudio) Layla20"
+clean_blob sound/pci/echoaudio/layla20.c
+clean_kconfig sound/pci/Kconfig 'SND_LAYLA20'
+clean_mk CONFIG_SND_LAYLA20 sound/pci/echoaudio/Makefile
+
+announce SND_LAYLA24 - "(Echoaudio) Layla24"
+clean_blob sound/pci/echoaudio/layla24.c
+clean_kconfig sound/pci/Kconfig 'SND_LAYLA24'
+clean_mk CONFIG_SND_LAYLA24 sound/pci/echoaudio/Makefile
+
+announce SND_MIA - "(Echoaudio) Mia"
+clean_blob sound/pci/echoaudio/mia.c
+clean_kconfig sound/pci/Kconfig 'SND_MIA'
+clean_mk CONFIG_SND_MIA sound/pci/echoaudio/Makefile
+
+announce SND_MONA - "(Echoaudio) Mona"
+clean_blob sound/pci/echoaudio/mona.c
+clean_kconfig sound/pci/Kconfig 'SND_MONA'
+clean_mk CONFIG_SND_MONA sound/pci/echoaudio/Makefile
+
+announce SND_'<(Echoaudio)>' - "(Echoaudio) all of the above "
+reject_firmware sound/pci/echoaudio/echoaudio.c
+clean_blob sound/pci/echoaudio/echoaudio.c
+
+announce SND_EMU10K1 - "Emu10k1 (SB Live!, Audigy, E-mu APS)"
+reject_firmware sound/pci/emu10k1/emu10k1_main.c
+clean_blob sound/pci/emu10k1/emu10k1_main.c
+clean_kconfig sound/pci/Kconfig 'SND_EMU10K1'
+clean_mk CONFIG_SND_EMU10K1 sound/pci/emu10k1/Makefile
+
+announce SND_MIXART - "Digigram miXart"
+reject_firmware sound/pci/mixart/mixart_hwdep.c
+clean_blob sound/pci/mixart/mixart_hwdep.c
+clean_kconfig sound/pci/Kconfig 'SND_MIXART'
+clean_mk CONFIG_SND_MIXART sound/pci/mixart/Makefile
+
+announce SND_PCXHR - "Digigram PCXHR"
+reject_firmware sound/pci/pcxhr/pcxhr_hwdep.c
+clean_blob sound/pci/pcxhr/pcxhr_hwdep.c
+clean_kconfig sound/pci/Kconfig 'SND_PCXHR'
+clean_mk CONFIG_SND_PCXHR sound/pci/pcxhr/Makefile
+
+announce SND_RIPTIDE - "Conexant Riptide"
+reject_firmware sound/pci/riptide/riptide.c
+clean_blob sound/pci/riptide/riptide.c
+clean_kconfig sound/pci/Kconfig 'SND_RIPTIDE'
+clean_mk CONFIG_SND_RIPTIDE sound/pci/riptide/Makefile
+
+# This is ok, patch filenames are supplied as module parameters, and
+# they are text files with patch instructions.
+#announce SND_HDA_PATCH_LOADER - "Support initialization patch loading for HD-audio"
+#reject_firmware sound/pci/hda/hda_hwdep.c
+#clean_kconfig sound/pci/hda/Kconfig 'SND_HDA_PATCH_LOADER'
+
+announce SND_HDSP - "RME Hammerfall DSP Audio"
+reject_firmware sound/pci/rme9652/hdsp.c
+clean_blob sound/pci/rme9652/hdsp.c
+clean_kconfig sound/pci/Kconfig 'SND_HDSP'
+clean_mk CONFIG_SND_HDSP sound/pci/rme9652/Makefile
+
+announce SND_AICA - "Dreamcast Yamaha AICA sound"
+reject_firmware sound/sh/aica.c
+clean_blob sound/sh/aica.c
+clean_kconfig sound/sh/Kconfig 'SND_AICA'
+clean_mk CONFIG_SND_AICA sound/sh/Makefile
+
+announce SND_MSND_PINNACLE - "Support for Turtle Beach MultiSound Pinnacle"
+clean_blob sound/isa/msnd/msnd_pinnacle.h
+reject_firmware sound/isa/msnd/msnd_pinnacle.c
+clean_blob sound/isa/msnd/msnd_pinnacle.c
+clean_kconfig sound/isa/Kconfig 'SND_MSND_PINNACLE'
+clean_mk CONFIG_SND_MSND_PINNACLE sound/isa/msnd/Makefile
+
+announce SND_MSND_CLASSIC - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey"
+clean_blob sound/isa/msnd/msnd_classic.h
+clean_kconfig sound/isa/Kconfig 'SND_MSND_CLASSIC'
+clean_mk CONFIG_SND_MSND_CLASSIC sound/isa/msnd/Makefile
+
+announce SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (oss)"
+clean_blob sound/oss/msnd_classic.h
+clean_kconfig sound/oss/Kconfig 'SOUND_MSNDCLAS'
+clean_sed '
+/^config MSNDCLAS_INIT_FILE$/, /^config / {
+ /^ default.*msndinit\.bin/ s,".*","/*(DEBLOBBED)*/",;
+}
+/^config MSNDCLAS_PERM_FILE$/, /^config / {
+ /^ default.*msndperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
+}' sound/oss/Kconfig 'removed default firmware'
+clean_mk CONFIG_SOUND_MSNDCLAS sound/oss/Makefile
+
+announce SOUND_MSNDPIN - "Support for Turtle Beach MultiSound Pinnacle (oss)"
+clean_blob sound/oss/msnd_pinnacle.h
+clean_kconfig sound/oss/Kconfig 'SOUND_MSNDPIN'
+clean_sed '
+/^config MSNDPIN_INIT_FILE$/, /^config / {
+ /^ default.*pndspini\.bin/ s,".*","/*(DEBLOBBED)*/",;
+}
+/^config MSNDPIN_PERM_FILE$/, /^config / {
+ /^ default.*pndsperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
+}' sound/oss/Kconfig 'removed default firmware'
+clean_mk CONFIG_SOUND_MSNDPIN sound/oss/Makefile
+
+announce SND_SSCAPE - "Ensoniq SoundScape driver"
+reject_firmware sound/isa/sscape.c
+clean_blob sound/isa/sscape.c
+clean_sed '
+/^config SND_SSCAPE$/, /^config / {
+ s,"\(scope\|sndscape\)\.co[d?]","/*(DEBLOBBED)*/",g;
+}' sound/isa/Kconfig 'removed firmware names'
+clean_kconfig sound/isa/Kconfig 'SND_SSCAPE'
+clean_mk CONFIG_SND_SSCAPE sound/isa/Makefile
+
+# It's not clear that wm2000_anc.bin is pure data.
+# Check with developer, clean up for now.
+announce SND_SOC_WM2000 - "WM2000 ALSA Soc Audio driver"
+reject_firmware sound/soc/codecs/wm2000.c
+clean_blob sound/soc/codecs/wm2000.c
+clean_kconfig sound/soc/codecs/Kconfig 'SND_SOC_WM2000'
+clean_mk CONFIG_SND_SOC_WM2000 sound/soc/codecs/Makefile
+
+announce SND_SOC_SH4_SIU - "ALSA SoC driver for Renesas SH7343, SH7722 SIU peripheral"
+reject_firmware sound/soc/sh/siu_dai.c
+clean_blob sound/soc/sh/siu_dai.c
+clean_kconfig sound/soc/sh/Kconfig 'SND_SOC_SH4_SIU'
+clean_mk CONFIG_SND_SOC_SH4_SIU sound/soc/sh/Makefile
+
+announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
+clean_blob sound/oss/trix.c
+clean_kconfig sound/oss/Kconfig 'SOUND_TRIX'
+clean_sed '
+/^config TRIX_BOOT_FILE$/, /^config / {
+ /^ default.*trxpro\.hex/ s,".*","/*(DEBLOBBED)*/",;
+}' sound/oss/Kconfig 'removed default firmware'
+clean_mk CONFIG_SOUND_TRIX sound/oss/Makefile
+
+announce SOUND_TRIX - "See above,"
+announce SOUND_PAS - "ProAudioSpectrum 16 support,"
+announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
+clean_blob sound/oss/sb_common.c
+clean_kconfig sound/oss/Kconfig 'SOUND_PAS'
+clean_kconfig sound/oss/Kconfig 'SOUND_SB'
+clean_mk CONFIG_SOUND_PAS sound/oss/Makefile
+clean_mk CONFIG_SOUND_SB sound/oss/Makefile
+
+announce SOUND_PSS - "PSS (AD1848, ADSP-2115, ESC614) support"
+clean_sed 's,^\( [*] .*synth"\)\.$,\1/*.,' sound/oss/pss.c 'avoid nested comments'
+clean_blob sound/oss/pss.c
+clean_kconfig sound/oss/Kconfig 'SOUND_PSS'
+clean_sed '
+/^config PSS_BOOT_FILE$/, /^config / {
+ /^ default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
+}' sound/oss/Kconfig 'removed default firmware'
+clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
+
+announce SND_USB_6FIRE - "TerraTec DMX 6Fire USB"
+reject_firmware sound/usb/6fire/firmware.c
+clean_blob sound/usb/6fire/firmware.c
+clean_kconfig sound/usb/Kconfig 'SND_USB_6FIRE'
+clean_mk 'CONFIG_SND_USB_6FIRE' sound/usb/6fire/Makefile
+
+#################
+# Documentation #
+#################
+
+announce Documentation - "non-Free firmware scripts and documentation"
+clean_blob Documentation/dvb/avermedia.txt
+clean_blob Documentation/dvb/opera-firmware.txt
+clean_blob Documentation/dvb/ttusb-dec.txt
+clean_blob Documentation/sound/alsa/ALSA-Configuration.txt
+clean_blob Documentation/sound/oss/MultiSound
+clean_blob Documentation/sound/oss/PSS
+clean_blob Documentation/sound/oss/PSS-updates
+clean_blob Documentation/sound/oss/README.OSS
+clean_file Documentation/dvb/get_dvb_firmware
+clean_file Documentation/video4linux/extract_xc3028.pl
+clean_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
+clean_blob firmware/README.AddingFirmware
+clean_blob firmware/WHENCE
+
+if $errors; then
+ echo errors above were ignored because of --force >&2
+fi
+
+exit 0
diff --git a/freed-ora/current/master/deblob-check b/freed-ora/current/master/deblob-check
index 0d44ffa2e..62d066508 100755
--- a/freed-ora/current/master/deblob-check
+++ b/freed-ora/current/master/deblob-check
@@ -1,6 +1,6 @@
#! /bin/sh
-# deblob-check version 2011-03-15
+# deblob-check version 2011-05-05a
# Inspired in gNewSense's find-firmware script.
# Written by Alexandre Oliva <lxoliva@fsfla.org>
@@ -1033,7 +1033,6 @@ set_except () {
defsnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112\[\][ ]=' drivers/net/wireless/ath/ath5k/rfbuffer.h
defsnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112a\[\][ ]=' drivers/net/wireless/ath/ath5k/rfbuffer.h
defsnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5413\[\][ ]=' drivers/net/wireless/ath/ath5k/rfbuffer.h
- defsnc '\(static[ ]\)\?const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\[\][ ]=' drivers/net/wireless/b43/tables_nphy.c
# new in 2.6.26
initnc 'static[ ]u64[ ]vec2off\[68\][ ]=' arch/ia64/kvm/process.c
@@ -1621,7 +1620,6 @@ set_except () {
accept '[ ]*["]request_firmware[ ]\(fatal[ ]error\|unable[ ]to[ ]locate\|:[ ]Failed[ ]to[ ]find\)' drivers/media/video/pvrusb2/pvrusb2-hdw.c
accept '[ ][*][ ]NOTE[ ]:[ ]the[ ]pointer[ ]to[ ]the[ ]firmware[ ]data[ ]given[ ]by[ ]request_firmware[(][)]' drivers/media/video/pvrusb2-hdw.c
- accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dw\(210[24]\|3101\)\|s6[3x]0\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dw2102.c
blobname 'dvb-usb-\(dw\(210[124]\|3101\)\|s630\)\.fw' drivers/media/dvb/dvb-usb/dw2102.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]gp8psk_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/gp8psk.c
@@ -1860,7 +1858,7 @@ set_except () {
initnc 'static[ ]struct[ ][{][ ]int[ ]xres,[ ]yres,[ ]left,[ ]right,[ ]upper,[ ]lower,[ ]hslen,[ ]vslen,[ ]vfreq[;][ ][}][ ]timmings\[\][ ]__initdata[ ]=[ ][{]'
initnc 'static[ ]struct[ ]platinum_regvals[ ]platinum_reg_init_[0-9]*[ ]=[ ][{]'
initnc '[}][ ]sisfb_ddc[sf]modes\[\][ ]__devinitdata[ ]='
- initnc 'static[ ]struct[ ]dvb_pll_desc[ ][^\n]*[ ]=[ ][{]'
+ defsnc 'static[ ]struct[ ]dvb_pll_desc[ ][^\n]*[ ]=[ ][{]' drivers/media/dvb/frontends/dvb-pll.c
initnc 'static[ ]u32[ ]LABELPATCHES\[\][ ]__attribute[(][(]unused[)][)][ ]='
initnc 'static[ ]dbdev_tab_t[ ]dbdev_tab\[\][ ]='
@@ -1896,7 +1894,6 @@ set_except () {
initnc '[ ]static[ ]u16[ ]tables\[\][ ]='
initnc '[ ]static[ ]u32[ ]logMagTable\[128\][ ]='
initnc '[ ]static[ ]u8[ ]init_bufs\[13\]\[5\][ ]='
- initnc '[ ]static[ ]u8[ ]sine[ ]\[\][ ]='
initnc '[ ]static[ ]u_short[ ]geometry_table\[\]\[[45]\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]CRCTable1\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]CRCTable2\[\][ ]='
@@ -1941,7 +1938,7 @@ set_except () {
initnc 'int[ ]snd_sf_vol_table\[128\][ ]='
initnc 'static[ ]u_char[ ]irq_to_siubit\[\][ ]='
initnc 'static[ ]u_char[ ]irq_to_siureg\[\][ ]='
- initnc 'static[ ]Byte_t[ ]RData\[RDATASIZE\][ ]='
+ defsnc 'static[ ]Byte_t[ ]RData\[RDATASIZE\][ ]=' drivers/tty/rocket.c
initnc 'static[ ]__const__[ ]__u16[ ]gx_coeff\[256\][ ]='
initnc 'static[ ]__u8[ ]init7121ntsc\[\][ ]='
initnc 'static[ ]__u8[ ]init7121pal\[\][ ]='
@@ -2060,7 +2057,7 @@ set_except () {
defsnc 'static[ ]short[ ]beep_wform\[256\][ ]=' 'sound/ppc/beep.c|sound/oss/dmasound/dmasound_awacs.c|arch/ppc/8xx_io/cs4218_tdm.c'
initnc 'static[ ]short[ ]decay_time_tbl\[128\][ ]='
initnc 'static[ ]short[ ]isdn_audio_[ua]law_to_s16\[\][ ]='
- initnc 'static[ ]struct[ ]iwl\(3945\)\?_tx_power[ ]power_gain_table\[2\]\[IWL_MAX_GAIN_ENTRIES\][ ]='
+ defsnc 'static[ ]struct[ ]iwl\(3945\)\?_tx_power[ ]power_gain_table\[2\]\[IWL_MAX_GAIN_ENTRIES\][ ]=' drivers/net/wireless/iwlegacy/iwl-3945.c
initnc 'static[ ]struct[ ]ovcamchip_regvals[ ]regvals_init_\(76be\|7[16]20\|7x10\)\[\][ ]='
initnc 'static[ ]struct[ ]regval_list[ ]ov7670_default_regs\[\][ ]='
initnc 'static[ ]struct[ ]s_c2[ ]SetRate48000\[\][ ]='
@@ -2116,11 +2113,11 @@ set_except () {
initnc 'static[ ]\(const[ ]\)\?uint8_t[ ]seqprog\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]V110_OffMatrix_9600\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]V110_OnMatrix_9600\[\][ ]='
- initnc 'static[ ]unsigned[ ]char[ ]a2232_65EC02code\[\][ ]='
+ defsnc 'static[ ]unsigned[ ]char[ ]a2232_65EC02code\[\][ ]=' drivers/staging/generic_serial/ser_a2232fw.h
initnc 'static[ ]unsigned[ ]char[ ]atkbd_set3_keycode\[512\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]atkbd_unxlate_table\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]banner_table\[\][ ]=' arch/sh/boards/superh/microdev/led.c
- initnc 'static[ ]unsigned[ ]char[ ]bootlogo_bits\[\][ ]='
+ defsnc 'static[ ]unsigned[ ]char[ ]bootlogo_bits\[\][ ]=' arch/m68k/platform/68328/bootlogo.h
initnc 'static[ ]unsigned[ ]char[ ]bus2core_8260\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]bus2core_8280\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]caseorder\[256\][ ]='
@@ -2137,7 +2134,7 @@ set_except () {
initnc 'static[ ]unsigned[ ]char[ ]rwa_unlock\[\][ ]__initdata[ ]='
initnc 'static[ ]unsigned[ ]char[ ]seqprog\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]snd_opl4_volume_table\[128\][ ]='
- initnc 'static[ ]unsigned[ ]char[ ]splash_bits\[\][ ]='
+ defsnc 'static[ ]unsigned[ ]char[ ]splash_bits\[\][ ]=' arch/m68k/platform/68EZ328/bootlogo.h
initnc 'static[ ]unsigned[ ]char[ ]sunkbd_keycode\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]ufs_fragtable_8fpb\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]ufs_fragtable_other\[\][ ]='
@@ -2164,7 +2161,7 @@ set_except () {
initnc 'static[ ]unsigned[ ]short[ ]fcstab\[256\][ ]='
initnc 'static[ ]unsigned[ ]short[ ]init[1234]\[128\][ ][/][*]__devinitdata[*][/][ ]='
initnc 'static[ ]unsigned[ ]short[ ]log_table\[LOG_TABLE_SIZE[*]2\][ ]='
- initnc 'static[ ]unsigned[ ]short[ ]rc_ioport\[\][ ]='
+ defsnc 'static[ ]unsigned[ ]short[ ]rc_ioport\[\][ ]=' drivers/staging/tty/riscom8.c
defsnc 'static[ ]unsigned[ ]short[ ]translations\[\]\[256\][ ]=' drivers/tty/vt/consolemap.c
initnc 'static[ ]unsigned[ ]short[ ]treble_parm\[12\]\[9\][ ]='
initnc 'struct[ ]RGBColors[ ]TextCLUT\[256\][ ]='
@@ -2316,7 +2313,6 @@ set_except () {
# New in or modified for 2.6.32
blobname '\(cxgb3[/]\)\?ael20\(05_\(opt\|twx\)\|20_twx\)_edc\.bin' drivers/net/cxgb3/cxgb3_main.c
- blobname 'wl1271-\(fw\|nvs\)\.bin' drivers/net/wireless/wl12xx/wl1271.h
defsnc 'static[ ]const[ ]struct[ ]aper_size_info_32[ ]u3_sizes\[8\?\][ ]=' drivers/char/agp/uninorth-agp.c
defsnc 'static[ ]const[ ]unsigned[ ]short[ ]atkbd_set[23]_keycode\[\(512\|ATKBD_KEYMAP_SIZE\)\][ ]=' drivers/input/keyboard/atkbd.c
defsnc '[ ][}][ ]common_modes\[17\][ ]=' drivers/gpu/drm/radeon/radeon_connectors.c
@@ -2392,7 +2388,6 @@ set_except () {
accept '[ ]\.download_firmware[ ]=[ ]ec168_download_firmware,[\n][ ]\.firmware[ ]=[ ]' drivers/media/dvb/dvb-usb/ec168.c
blobname 'dvb-usb-ec168\.fw' drivers/media/dvb/dvb-usb/ec168.c
defsnc 'static[ ]const[ ]u16[ ]dib0090_defaults\[\][ ]=' drivers/media/dvb/frontends/dib0090.c
- defsnc 'static[ ]const[ ]struct[ ]dib0090_pll[ ]dib0090_pll_table\[\][ ]=' drivers/media/dvb/frontends/dib0090.c
blobname 'dvb-fe-ds3000\.fw' drivers/media/dvb/frontends/ds3000.c
blob '[/][*][ ]\(as[ ]of[ ][^\n]*[ ]current[ ]DS3000[ ]firmware\|DS3000[ ]FW\)[^/]*[*][/]\([\n][/][*]\([ ]\(as[ ]of[ ][^\n]*[ ]current[ ]DS3000[ ]firmware\|DS3000[ ]FW\)[^/]*\|[(]DEBLOBBED[)]\)[*][/]\)*' drivers/media/dvb/frontends/ds3000.c
defsnc 'static[ ]u8[ ]ds3000_dvbs2\?_init_tab\[\][ ]=' drivers/media/dvb/frontends/ds3000.c
@@ -2402,7 +2397,6 @@ set_except () {
defsnc 'static[ ]const[ ]struct[ ]ov9640_reg[ ]ov9640_regs_dflt\[\][ ]=' drivers/media/video/ov9640.c
defsnc '\(const[ ]static\|static[ ]const\)[ ]struct[ ]rj54n1_reg_val[ ]bank_[4578]\[\][ ]=' drivers/media/video/rj54n1cb0c.c
blob '#define[ ]_FW_NAME[(]api[)][ ]DRV_NAME[ ]["][.]["][ ]#api[ ]["]\.fw["]' drivers/media/video/iwmc3200top.h
- defsnc 'static[ ]struct[ ]nand_ecclayout[ ]nandv2_hw_eccoob_largepage[ ]=' drivers/mtd/nand/mxc_nand.c
blob '#define[ ]FW_FILE_VERSION\([ ]*[\\][\n][ ]__stringify[(]BCM_5710_FW_\(MAJOR\|MINOR\|REVISION\|ENGINEERING\)_VERSION[)]\([ ]["][.]["]\)\?\)\+' 'drivers/net/\(bnx2x/\)\?bnx2x_main\.c'
blobname '\(bnx2x[/]\)\?bnx2x-e[12]h\?-["][ ]FW_FILE_VERSION[ ]["]\.fw' 'drivers/net/\(bnx2x/\)\?bnx2x_main\.c'
blobname '\(bnx2x[/]\)\?bnx2x-e[12]h\?-\([0-9.%d]*\.fw\)\?' 'drivers/net/\(bnx2x/\)\?bnx2x_main\.c'
@@ -2446,7 +2440,7 @@ set_except () {
accept '[ ]p7500->firmware[ ]=' drivers/media/dvb/dvb-usb/dw2102.c
blobname 'dvb-usb-p7500\.fw' drivers/media/dvb/dvb-usb/dw2102.c
defsnc 'static[ ]u8[ ]ITUDecoderSetup\[4\]\[16\][ ]=' drivers/media/dvb/ngene/ngene-core.c
- blobname 'ngene_1[567]\.fw' drivers/media/dvb/ngene/ngene-core.c
+ blobname 'ngene_1[5678]\.fw' drivers/media/dvb/ngene/ngene-core.c
blobname 'sms1xxx-hcw-55xxx-i\?sdbt-02\.fw' drivers/media/dvb/siano/sms-cards.c
defsnc 'static[ ]\(const[ ]\)\?u8[ ]samsung_smt_7020_inittab\[\][ ]=' drivers/media/video/cx88/cx88-dvb.c
defsnc 'static[ ]const[ ]u8[ ]\(bridge\|sensor\)_init\(_2\)\?\[\]\[2\][ ]=' drivers/media/video/gspca/ov534_9.c
@@ -2549,7 +2543,6 @@ set_except () {
blobna '[/][*][^*]*\([*]\+[^/*][^*]*\)*[*]*[(]f2255usb\.bin[)][^*]*\([*]\+[^/*][^*]*\)*[*]\+[/]' drivers/media/video/s2255drv.c
# New in 2.6.36:
- defsnc 'static[ ]struct[ ]clk_pll_table[ ]tegra_pll_[apxm]_table\[\][ ]=' arch/arm/mach-tegra/tegra2_clocks.c
defsnc 'static[ ]struct[ ]nand_ecclayout[ ]qi_lb60_ecclayout_[12]gb[ ]=' arch/mips/jz4740/board-qi_lb60.c
blobname 'qt602240\.fw' drivers/input/touchscreen/qt602240_ts.c
blobname 'lgs8g75\.fw' drivers/media/dvb/frontends/lgs8gxx.c
@@ -2560,7 +2553,6 @@ set_except () {
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]pwm_lookup_table\[256\][ ]=' drivers/platform/x86/compal-laptop.c
defsnc 'static[ ]int[ ]tps6586x_\(ldo4\|sm2\|dvm\)_voltages\[\][ ]=' drivers/regulator/tps6586x-regulator.c
defsnc 'static[ ]const[ ]unsigned[ ]int[ ]muxonechan\[\][ ]=' drivers/staging/comedi/drivers/adv_pci1710.c
- defsnc 'const[ ]struct[ ]\(stk1160\|saa7113\)config[ ][{][^}]*[}][ ]\(stk1160\|saa7113\)config\[256\][ ]=' drivers/staging/easycap/easycap_low.c
defsnc 'int[ ]tones\[2048\][ ]=' drivers/staging/easycap/easycap_testcard.c
defsnc 'const[ ]unsigned[ ]char[ ]map_table\[\][ ]=' drivers/staging/lirc/lirc_ttusbir.c
defsnc 'static[ ]unsigned[ ]char[ ]jpeg_header\[\][ ]=' drivers/staging/solo6x10/solo6010-jpeg.h
@@ -2607,7 +2599,6 @@ set_except () {
accept '\([ ][*][ ]\(format\|information\)[^\n]*\|[#]define[ ]REG_DATA_FILE_A\?G[ ]*\)["]\([.][/]\)\?regulatoryData_A\?G\.bin["]' drivers/staging/ath6kl/include/common/regulatory/reg_dbschema.h
blobname 'ath6k[/]AR6003[/]hw[12]\.0[/]\(otp\|athwlan\)\.bin\.z77' drivers/staging/ath6kl/os/linux/include/ar6000_drv.h
blobname 'ath6k[/]AR6003[/]hw[12]\.0[/]\(athtcmd_ram\|device\|data\.patch\|endpointping\|bdata\.\(SD3[12]\|WB31\|CUSTOM\)\)\.bin' drivers/staging/ath6kl/os/linux/include/ar6000_drv.h
- defsnc 'static[ ]const[ ]A_INT32[ ]wmi_rateTable\[\]\[2\][ ]=' drivers/staging/ath6kl/wmi/wmi.c
defsnc 'static[ ]DDR_SET_NODE[ ]asT3\(LP\)\?B\?_DDRSetting\(80\|100\|133\|160\)MHz\[\][ ]\?=' drivers/staging/bcm/DDRInit.c
blobname '\([/]lib[/]firmware[/]\)\?macxvi200\.bin' drivers/staging/bcm/Macros.h
accept '-[ ]On-chip[ ]firmware[ ]loaded[ ]using[ ]standard[ ]request_firmware[(][)]' 'drivers/staging/brcm80211\(/brcmfmac\)\?/README'
@@ -2698,7 +2689,6 @@ set_except () {
blobname '%s%04x%s["][,][ ]["]fw_sst_["][,][ \n]*sst_drv_ctx->pci_id[,][ ]["]\.bin' drivers/staging/intel_sst/intel_sst_common.h
accept '[*][ ]*0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1' arch/x86/crypto/aesni-intel_asm.S
defsnc 'static[ ]struct[ ]aead_testvec[ ]\(aes_gcm_rfc4106\)_\(enc\|dec\)_tv_template\[\][ ]=' 'crypto/testmgr.h'
- defsnc 'const[ ]struct[ ]\(stk1160\|saa7113\)config[ ]\([{][^}]*[}][ ]\)\?\(stk1160\|saa7113\)config\(PAL\|NTSC\)\[256\][ ]=' drivers/staging/easycap/easycap_low.c
blobname '\(sep[/]\)\?\extapp\.image\.bin' drivers/staging/sep/sep_driver.c
blobname 'radeon[/]\(BARTS\|BTC\|TURKS\|CAICOS\|%s\)_\(pfp\|rlc\|m[ec]\)\.bin' drivers/gpu/drm/radeon/ni.c
defsnc 'static[ ]const[ ]u32[ ]\(barts\|turks\|caicos\)_io_mc_regs\[BTC_IO_MC_REGS_SIZE\]\[2\][ ]=' drivers/gpu/drm/radeon/ni.c
@@ -2720,9 +2710,6 @@ set_except () {
defsnc 'static[ ]u8[ ]reserved_page_packet\[TOTAL_RESERVED_PKT_LEN\][ ]=' drivers/net/wireless/rtlwifi/rtl8192ce/fw.c
defsnc 'u32[ ]RTL8192CE\(PHY_REG\|_\?RADIO[AB]\|MAC\|AGCTAB\)_\([21]T_\?ARRAY\|ARRAY_PG\)\[\(PHY_REG\|RADIO[AB]\|MAC\|AGCTAB\)_\([21]T_\?ARRAY_\?\|ARRAY_PG\)LENGTH\][ ]=' drivers/net/wireless/rtlwifi/rtl8192ce/table.c
defsc 'static[ ]const[ ]struct[ ]ar9300_eeprom[ ]ar9300_[hx]11[236][ ]=' drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
- defsnc 'static[ ]const[ ]u32[ ]ar9485_1_0_\(mac\|baseband\)_postamble\[\]\[5\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
- defsnc 'static[ ]const[ ]u32[ ]ar9485\(Common_\(wo_xlna_\)\?rx_gain\)\?_1_0\(_\(radio\|baseband\|mac\)_core\)\?\[\]\[2\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
- defsnc 'static[ ]const[ ]u32[ ]ar9485Modes_\(high\|low\)\(est\)\?_\(power\|ob_db\)_tx_gain_1_0\[\]\[5\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
defsnc 'static[ ]const[ ]struct[ ]b43_nphy_channeltab_entry_rev3[ ]b43_nphy_channeltab_rev\([34568]\|7_9\)\[\][ ]=' drivers/net/wireless/b43/radio_2056.c
blobname '["]softing-4[.]6[/]["]' drivers/net/can/softing/softing_platform.h
blobname '\(softing-4[.]6[/]\)\?\(\(b\|ld\)card2\?\|can\(card\|sja\|crd2\)\)\.bin' drivers/net/can/softing/softing_cs.c
@@ -2742,12 +2729,232 @@ set_except () {
blobname 'rpm_firmware\(_rev11\)\?\.bin' sound/pci/rme9652/hdsp.c
blobname 'mwl8k[/]fmimage_8366_ap-["][ ][#]api[ ]["]\.fw' drivers/net/wireless/mwl8k.c
blobname 'rtl_nic[/]rtl8168d-[12]\.fw' drivers/net/r8169.c
- ;;
+ # New in 2.6.38.4
+ defsnc '[ ]static[ ]DEFINE_TEST_\(OK\|FAIL\)[(][^)]*[)][ ]=' lib/test-kstrtox.c
+
+ # New in 2.6.39
+ blobna 'printk[(]KERN_ERR[ ]["]r8712u:[ ]Install[^\n"]*firmware[\\]n["][)][;]' drivers/staging/rtl8712/hal_init.c
+ defsnc 'static[ ]const[ ]struct[ ]phy_reg[ ]exynos4_sataphy_\(cmu\|\(com\)\?lane\)\[\][ ]=' arch/arm/mach-exynos4/dev-ahci.c
+ defsnc 'static[ ]struct[ ]clk_pll_\(freq_\)\?table[ ]tegra_pll_[adpxm]_\(freq_\)\?table\[\][ ]=' arch/arm/mach-tegra/tegra2_clocks.c
+ initnc '\.irp[ ]idx' arch/x86/include/asm/entry_arch.h
+ initnc '\.irp[ ]idx' arch/x86/kernel/entry_64.S
+ defsnc 'static[ ]const[ ]u8[ ]types\[256\][ ]=' drivers/gpu/drm/nouveau/nvc0_vram.c
+ defsnc 'static[ ]__u8[ ]keytouch_fixed_rdesc\[\][ ]=' drivers/hid/hid-keytouch.c
+ blobname 'dib9090\.fw' drivers/media/dvb/dvb-usb/dib0700_devices.c
+ accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dw\(210[24]\|3101\)\|s6[3x]0\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\|size_of_priv\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dw2102.c
+ accept '[ ]\(p1100\|s660\)->firmware[ ]=' drivers/media/dvb/dvb-usb/dw2102.c
+ blobname 'dvb-usb-\(p1100\|s660\)\.fw' drivers/media/dvb/dvb-usb/dw2102.c
+ blobname 'dvb-usb-lme2510c\?-s0194\.fw' drivers/media/dvb/dvb-usb/lmedm04.c
+ accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]technisat_usb2_devices[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\|identify_state\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/technisat-usb2.c
+ blobname 'dvb-usb-SkyStar_USB_HD_FW_v17_63\.HEX\.fw' drivers/media/dvb/dvb-usb/technisat-usb2.c
+ defsnc 'static[ ]const[ ]struct[ ]dib0090_pll[ ]dib0090_\(p1g_\)\?pll_table\[\][ ]=' drivers/media/dvb/frontends/dib0090.c
+ defsnc '[ ]static[ ]u8[ ]sine[ ]\?\[\][ ]=' drivers/media/dvb/frontends/dib7000p.c
+ defsnc 'u32[ ]fe_info\[44\][ ]=' drivers/media/dvb/frontends/dib9000.c
+ blobname 'dvb-netup-altera-01\.fw' drivers/media/video/cx23885/cx23885-cards.c
+ # These are suspicious, but the regularity suggests data.
+ defsnc 'static[ ]const[ ]u8[ ]\(nw80[012]\|spacecam2\?\|cvideopro\|dlink\|ds3303\|kr651\|kritter\|mustek\|proscope\|twinkle\|dvcv6\)_start\(_\([12]\|q\?vga\)\)\?\[\][ ]=' drivers/media/video/gspca/nw80x.c
+ defsnc 'static[ ]const[ ]u8[ ]\(bridge\|sensor\)_init_7\(67\|72\)x\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
+ defsnc '[ ]static[ ]u8[ ]color_tb\[\]\[6\][ ]=' drivers/media/video/gspca/ov534.c
+ defsnc 'static[ ]const[ ]struct[ ]isprsz_coef[ ]filter_coefs[ ]=' drivers/media/video/omap3isp/ispresizer.c
+ defsnc 'static[ ]const[ ]struct[ ]ov9740_reg[ ]ov9740_defaults\[\][ ]=' drivers/media/video/ov9740.c
+ defsnc 'static[ ]int[ ]therm_tbl\[\][ ]=' drivers/mfd/twl4030-madc.c
+ defsnc 'static[ ]struct[ ]nand_ecclayout[ ]nandv2_hw_eccoob_\(largepage\|4k\)[ ]=' drivers/mtd/nand/mxc_nand.c
+ defsnc 'static[ ]const[ ]u32[ ]ar9485\(\(C\|_c\)ommon_\(wo_xlna_\)\?rx_gain\)\?_1_[01]\(_\(radio\|baseband\|mac\)_core\)\?\[\]\[2\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+ defsnc 'static[ ]const[ ]u32[ ]ar9485_1_[01]_\(mac\|baseband\)_postamble\[\]\[5\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+ defsnc 'static[ ]const[ ]u32[ ]ar9485\(M\|_m\)odes_\(high\|low\|green\)\(est\)\?_\(power\|ob_db\)_tx_gain_1_[01]\[\]\[5\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+ defsnc '\(static[ ]\)\?const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\?\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\(_r3\)\?\[\][ ]=' drivers/net/wireless/b43/tables_nphy.c
+ defsnc 'struct[ ]nphy_gain_ctl_workaround_entry[ ]nphy_gain_ctl_workaround\[2\]\[3\][ ]=' drivers/net/wireless/b43/tables_nphy.c
+ blobname '\(ti-connectivity[/]\)\?wl1271-\(fw\(-2\|-ap\)\?\|nvs\)\.bin' drivers/net/wireless/wl12xx/wl1271.h
+ accept '#define\([ ]_\?IWL\(4965\|[156]000\(G2[AB]\)\?\|1[03]0\|5150\|6050\|20[03]\?0\)_MODULE_FIRMWARE[(]api[)]\)\+' 'drivers/net/iwlwifi/iwl-\([1256]000\|4965\)\.c'
+ blobname 'rtlwifi[/]rtl8192cufw\.bin' drivers/net/wireless/rtlwifi/rtl8192cu.sw
+ blobname 'rtlwifi[/]rtl8712u\.bin' drivers/staging/rtl8712/hal_init.c
+ defsnc 'u32[ ]\(RTL\|Rtl\)8192CU\(PHY_REG\|_\?\(RADIO\|Radio\)[AB]\|MAC\|AGCTAB\)_\([21]T\(_HP\)\?_\?\(ARRAY\|Array\)\|\(ARRAY\|Array\)_PG\)\(_HP\)\?\[RTL8192CU\(PHY_REG\|\(RADIO\|Radio\)[AB]\|MAC\|AGCTAB\)_\([21]T\(_HP\)\?_\?\(ARRAY\|Array\)_\?\|\(ARRAY\|Array\)_PG\)\(_HP\)\?\(LENGTH\|Length\)\][ ]=' drivers/net/wireless/rtlwifi/rtl8192cu/table.c
+ blobname 'rtl_nic[/]rtl8105e-1\.fw' drivers/net/r8169.c
+ defsnc 'static[ ]const[ ]\(A_INT32\|s32\)[ ]wmi_rateTable\[\]\[2\][ ]=' drivers/staging/ath6kl/wmi/wmi.c
+ defsnc '\(static[ ]\)\?const[ ]struct[ ]\(stk1160\|saa7113\)config[ ]\([{][^}]*[}][ ]\)\?\(stk1160\|saa7113\)config\(PAL\|NTSC\)\[256\][ ]=' drivers/staging/easycap/easycap_low.c
+ defsnc 'static[ ]const[ ]ccktxbbgain_struct[ ]rtl8192_cck_txbbgain_\(ch14_\)\?table\[\][ ]=' drivers/staging/rtl8192e/r8192E_dm.c
+ defsnc '[ ]unsigned[ ]char[ ]data_ptr\[36\][ ]=' drivers/usb/storage/ene_ub6250.c
+ blobname 'ene-ub6250[/]sd_\(init[12]\|rdwr\)\.bin' drivers/usb/storage/ene_ub6250.c
+ defsnc 'static[ ]const[ ]struct[ ]hdmi_timings[ ]cea_vesa_timings\[OMAP_HDMI_TIMINGS_NB\][ ]=' drivers/video/omap2/dss/hdmi.c
+ defsnc 'static[ ]struct[ ]pll_config[ ]\(cle266\|k800\|cx700\|vx855\)_pll_config\[\][ ]=' drivers/video/via/hw.c
+ defsnc 'static[ ]char[ ]channel_map_unity_ss\[HDSPM_MAX_CHANNELS\][ ]=' sound/pci/rme9652/hdspm.c
+ defsnc 'static[ ]const[ ]u8[ ]log_volume_table\[128\][ ]=' sound/usb/6fire/control.c
+ defsnc 'static[ ]const[ ]struct[ ][{][^}]*[}][\n]init_data\[\][ ]=' drivers/usb/6fire/control.c
+ blobname '6fire[/]dmx6fire\(l2\|ap\|cf\)\.\(ihx\|bin\)' sound/usb/6fire/firmware.c
+ defsnc 'static[ ]const[ ]u8[ ]BIT_REVERSE_TABLE\[256\][ ]=' sound/usb/6fire/firmware.c
+ initnc '[/][*][\n][ ][*][ ]\(cfa_coef\|gamma\|luma_enhance\|noise_filter\)_table\.h[\n][ ][*]\([^\n]*[\n][ ][*]\)*[/]' 'drivers/media/video/omap3isp/\(cfa_coef\|gamma\|luma_enhance\|noise_filter\)_table\.h'
+ blobna 'rocess_sigma_firmwar'
+ defsnc 'int[ ]process_sigma_firmware[(][^)]*[)][\n][{]\([\n]\+[^\n}][^\n]*\)*[^\n]*request_firmware' drivers/firmware/sigma.c
+ accept 'EXPORT_SYMBOL[(]process_sigma_firmware[)]' drivers/firmware/sigma.c
+ accept 'extern[ ]int[ ]process_sigma_firmware[(][^)]*[)][;]' include/linux/sigma.h
+ blobname 'maxtouch\.fw' drivers/input/touchscreen/atmel_mxt_ts.c
+ blobname 'fm\(c\|_[rt]x\)_ch8\(_[0-9a-f]*\.[0-9]*\.bts\)\?' drivers/media/radio/wl128x/fmdrv_common.h
+ blobname '%s_%x\.%d\.bts' drivers/media/radio/wl128x/fmdrv_common.c
+ ;;
*/*freedo*.patch | */*logo*.patch)
accept 'P[13]\([\n]#[^\n]*\)*[\n]*\([\n][0-9 ]*\)\+' drivers/video/logo/logo_libre_clut224.ppm
;;
+ */patch*-2.6.39-rc*)
+ accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]lme2510c\?_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*\([ ]\.download_firmware[ ]=[ ]lme2510_download_firmware,[\n]\)\?[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/lmedm04.c
+ defsnc '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]\(u8\|struct[ ]i2c_reg_u8\)[ ]\(soi968\|ov\(76[67]0\|965[05]\)\|hv7131r\)_init\[\]\(\[2\]\)\?[ ]=\([ ][{][*][/][;]\)\?' drivers/media/video/gspca/sn9c20x.c
+ defsnc '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]\(const[ ]\)\?\(__\)\?u8[ ]\(mt9v111\|sp80708\|hv7131[rd]\|mi0360b\?\|mo4000\|ov76\([36]0\|48\)\|om6802\)_sensor_\(init\|param1\)\[\]\[8\][ ]=\([ ][{][*][/][;]\)\?' drivers/media/video/gspca/sonixj.c
+ defsnc 'int[ ]tones\[2048\][ ]=' drivers/staging/easycap/easycap_testcard.c
+ defsnc '[ ]BYTE[ ]data_ptr\[36\][ ]=' 'drivers/staging/keucr/\(ms\|s[dm]\)scsi\.c'
+ defsnc '\(static[ ]\)\?u32[ ]Rtl8190PciE\?\(AGCTAB_\|PHY_REG\(_1T2R\)\?\|Radio[ABCD]_\)Array\[\(AGCTAB_\|PHY_REG\(_1T2R\)\?\|Radio[ABCD]_\)ArrayLength\][ ]=' 'drivers/staging/\(rtl8192e/r819xE_phy\.c\|rtl8192u/r819xU_firmware_img.c\)'
+ defsnc 'u32[ ]Rtl8192Usb\(PHY_REG\(_1T2R\)\?\|\(Radio[ABCD]\|MACPHY\|AGCTAB\)_\)Array\(_PG\)\?\[\][ ]=' drivers/staging/rtl8192su/rtl819xU_firmware_img.c
+ defsnc 'static[ ]unsigned[ ]char[ ]vid_vop_header\[\][ ]=' drivers/staging/solo6x10/solo6010-v4l2-enc.c
+ defsnc '\(static[ ]\)\?\(USHORT\|unsigned[ ]short\)[ ]XGINew_DRAMType\[17\]\[5\][ ]*=' 'drivers/staging/xgifb/\(vb_table\.h\|vb_init\.c\)'
+ defsnc '\(static[ ]\)\?\(USHORT\|unsigned[ ]short\)[ ]XGINew_SDRDRAM_TYPE\[13\]\[5\][ ]*=' 'drivers/staging/xgifb/\(vb_table\.h\|vb_init\.c\)'
+ defsnc '\(static[ ]\)\?\(USHORT\|unsigned[ ]short\)[ ]XGINew_DDRDRAM_TYPE20\[12\]\[5\][ ]*=' 'drivers/staging/xgifb/\(vb_table\.h\|vb_init\.c\)'
+ defsnc '\(static[ ]\)\?\(struct[ ]\)\?XGI_[ME]CLKDataStruct[ ]XGI\(3[34]0\|27\)\(New\)\?_[ME]CLKData\[\][ ]*=' drivers/staging/xgifb/vb_table.h
+ defsnc 'static[ ]struct[ ]pll_map[ ]pll_value\[\][ ]=' drivers/video/via/hw.c
+ defsnc 'static[ ]char[ ]channel_map_madi_[sdq]s\[HDSPM_MAX_CHANNELS\][ ]=' sound/pci/rme9652/hdspm.c
+ # The above match the reversed patch
+ defsnc 'static[ ]unsigned[ ]char[ ]bootlogo_bits\[\][ ]=' arch/m68k/platform/68328/bootlogo.h
+ defsnc 'static[ ]unsigned[ ]char[ ]splash_bits\[\][ ]=' arch/m68k/platform/68EZ328/bootlogo.h
+ defsnc 'static[ ]struct[ ]nand_ecclayout[ ]qi_lb60_ecclayout_[12]gb[ ]=' arch/mips/jz4740/board-qi_lb60.c
+ accept '[ ][*][ ]page[ ]tables[ ]as[ ]follows:[\n][ ][*][\n][ ][*][ ][ ][ ]3[ ]3[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[\n][ ][*][ ][ ][ ]1[ ]0[ ]9[ ]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1[ ]0[ ]9[ ]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1[ ]0[ ]9[ ]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1[ ]0' arch/arm/include/asm/pgtable.h
+ accept '[ ]\.incbin[ ]["]arch[/]x86[/]kernel[/]acpi[/]realmode[/]wakeup\.bin["]' arch/x86/kernel/acpi/wakeup_rm.S
+ accept '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?\(static[ ]inline[ ]\)\?\(int[ ]\)\?request_firmware[(]const[ ]struct[ ]firmware[ ][*][*]\(firmware_p\|fw\),' 'drivers/base/firmware_class\.c\|include/linux/firmware\.h'
+ accept '[ ]*return[ ]_request_firmware[(]firmware_p,' drivers/base/firmware_class.c
+ accept '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]int[\n ]request_firmware_work_func[(]' drivers/base/firmware_class.c
+ accept '\(static[ ]inline[ ]\)\?\(int[ ]\)\?request_firmware_nowait[(]' 'drivers/base/firmware_class\.c\|include/linux/firmware\.h'
+ accept '[ ]p7500->firmware[ ]=' drivers/media/dvb/dvb-usb/dw2102.c
+ accept '[ ]\+request_firmware[(][)][ ]will[ ]hit[ ]an[ ]OOPS' drivers/media/dvb/frontends/dib7000p.c
+ defsnc 'static[ ]struct[ ]dvb_pll_desc[ ][^\n]*[ ]=[ ][{]' drivers/media/dvb/frontends/dvb-pll.c
+ defsnc 'static[ ]struct[ ]iwl\(3945\)\?_tx_power[ ]power_gain_table\[2\]\[IWL_MAX_GAIN_ENTRIES\][ ]=' drivers/net/wireless/iwlegacy/iwl-3945.c
+ defsnc 'static[ ]const[ ]struct[ ]gain_entry[ ]gain_table\[2\]\[108\][ ]=' drivers/net/wireless/iwl-4965.c
+ defsnc 'static[ ]const[ ]u32[ ]ofdmswing_table\[OFDM_TABLE_SIZE\][ ]=' drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
+ defsnc 'static[ ]const[ ]u8[ ]cckswing_table_ch\(1ch13\|14\)\[CCK_TABLE_SIZE\]\[8\][ ]=' drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
+ defsnc 'static[ ]u8[ ]reserved_page_packet\[TOTAL_RESERVED_PKT_LEN\][ ]=' drivers/net/wireless/rtlwifi/rtl8192ce/fw.c
+ defsnc 'static[ ]chan_info_basic_t[ ]chan_info_all\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_cmn.c
+ defsnc 'u16[ ]ltrn_list\[PHY_LTRN_LIST_LEN\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_cmn.c
+ defsnc 's8[ ]lcnphy_gain_index_offset_for_pkt_rssi\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_cmn.c
+ defsnc 'lcnphy_rx_iqcomp_t[ ]lcnphy_rx_iqcomp_table_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcn.c
+ defsnc 'static[ ]const[ ]u32[ ]lcnphy_23bitgaincode_table\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcn.c
+ defsnc 'static[ ]const[ ]s8[ ]lcnphy_gain_table\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcn.c
+ defsnc 'static[ ]const[ ]s8[ ]lcnphy_gain_index_offset_for_rssi\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcn.c
+ defsnc 'static[ ]chan_info_2064_lcnphy_t[ ]chan_info_2064_lcnphy\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcn.c
+ defsnc 'lcnphy_radio_regs_t[ ]lcnphy_radio_regs_2064\[\][ ]=' defsnc 's8[ ]lcnphy_gain_index_offset_for_pkt_rssi\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcm.c
+ defsnc 'u16[ \n]*LCNPHY_txdigfiltcoeffs_\(cck\|ofdm\)\[LCNPHY_NUM_TX_DIG_FILTERS_\(CCK\|OFDM\)\][ \n]*\[LCNPHY_NUM_DIG_FILT_COEFFS[ ][+][ ]1\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_lcn.c
+ defsnc 'nphy_ipa_txrxgain_t[ ]nphy_ipa_rxcal_gaintbl_2GHz\(_rev7\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'static[ ]chan_info_nphy_\(radio\)\?205[5x7]\(_rev5\)\?_t[ ]chan_info_nphy\(rev[3-9]\(n6\)\?\)\?_205[5-7]\(_A1\|v\([5-8]\|11\)\|_rev[4-8]\(v1\)\?\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'radio_\(20xx_\)\?regs_t[ ]regs_\(SYN_\|[RT]X_\)\?205[5-7]\(_A1\|_rev\([4-8]\|11\)\(v1\)\?\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'static[ ]const[ ]u16[ ]tbl_iqcal_gainparams_nphy\[2\]\[NPHY_IQCAL_NUMGAINS\]\[8\][ ]=' drivers/staging/mrcm80211/phy/wlc_phy_n.c
+ defsnc 'static[ ]\(const[ ]\)\?u32[ ]nphy_tpc_\(5GHz_\)\?txgain\(_[ei]pa\)\?\(\(_[25]g\)\?\(_\(2057\)\?\(rev\([3-7]\|4n6\)\?\)\?\)\?\|_HiPwrEPA\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'static[ ]const[ ]u16[ ]nphy_tpc_loscale\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'static[ ]u8[ ]pad_all_gain_codes_2057\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'static[ ]u32[ ]nphy_papd_scaltbl\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc '[ ]s32[ ]poll_results\[8\]\[4\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc '[ ]nphy_txiqcal_ladder_t[ ]ladder_\(lo\|iq\)\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_n.c
+ defsnc 'const[ ]u32[ ]dot11lcn_gain_\(idx_\|val_\)\?tbl_\(rev[01]\|\(extlna_\)\?2G\|5G\)\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u16[ ]dot11lcn_aux_gain_idx_tbl_\(rev0\|\(extlna_\)\?2G\)\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u32[ ]dot11lcn_aux_gain_idx_tbl_5G\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u8[ ]dot11lcn_gain_val_tbl_\(rev0\|\(extlna_\)\?2G\)\[\][ ]=' drivers/stagingg/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u16[ ]dot11lcn_\(min_sig_sq\|noise_scale\)_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u16[ ]dot11lcn_sw_ctrl_tbl_\(4313_\)\?\(bt_\)\?\(epa_\)\?\(p250_\)\?rev0\(_combo\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u8[ ]dot11lcn_spur_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u16[ ]dot11lcn_\(unsup_mcs\|iq_local\)_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]lcnphy_tx_gain_tbl_entry[ ]dot11lcnphy_[25]GHz_\(extPA_\)\?gaintable_rev0\[128\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u32[ ]dot11lcn_papd_compdelta_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u32[ ]frame_struct_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u8[ ]frame_lut_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u32[ ]\(tmap\|tdtrn\)_tbl_rev[037]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u16[ ]pilot_tbl_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u32[ ]tdi_tbl[24]0_ant[01]_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u32[ ]chanest_tbl_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u8[ ]mcs_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u32[ ]noise_var_tbl[01]\?_rev[037]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u8[ ]\(est\|adj\)_pwr_lut_core[01]_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u32[ ]\(gainctrl\|iq\)_lut_core[01]_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u16[ ]loft_lut_core[01]_rev[03]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u16[ ]ant_swctrl_tbl_rev3\(_[1-3]\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u16[ ]mcs_tbl_rev3\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u16[ ]papd_comp_rfpwr_tbl_core[01]_rev3\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ defsnc 'const[ ]u32[ ]papd_\(comp_epsilon\|cal_scalars\)_tbl_core[01]_rev[37]\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_n.c
+ blobname 'brcm[/]bcm43xx' drivers/staging/brcm80211/sys/wl_mac80211.c
+ blobname '%s\(_hdr\)\?-%d\.fw' drivers/staging/brcm80211/sys/wl_mac80211.c
+ defsnc 'static[ ]const[ ]u8[ ]crc8_table\[256\][ ]=' drivers/staging/brcm80211/util/bcmutils.c
+ defsnc 'static[ ]const[ ]u16[ ]crc16_table\[256\][ ]=' drivers/staging/brcm80211/util/bcmutils.c
+ defsnc 'static[ ]const[ ]u32[ ]crc32_table\[256\][ ]=' drivers/staging/brcm80211/util/bcmutils.c
+ defsnc 'static[ ]const[ ]pmu0_xtaltab0_t[ ]pmu0_xtaltab0\[\][ ]=' drivers/staging/brcm80211/util/hndpmu.c
+ defsnc 'static[ ]const[ ]pmu1_xtaltab0_t[ ]pmu1_xtaltab0\(_880\(_4329\)\?\|_1760\|_1440\|_960\)\[\][ ]=' drivers/staging/brcm80211/util/hndpmu.c
+ defsnc 'static[ ]const[ ]s16[ ]log_table\[\][ ]=' drivers/staging/brcm80211/util/qmath.c
+ accept '[;]set[ ]executable[ ]["]2232\.bin["]' drivers/char/ser_a2232fw.ax
+ defsnc 'static[ ]unsigned[ ]char[ ]a2232_65EC02code\[\][ ]=' drivers/staging/generic_serial/ser_a2232fw.h
+ defsnc 'static[ ]unsigned[ ]char[ ]jpeg_header\[\][ ]=' drivers/staging/solo6x10/solo6010-jpeg.h
+ defsc 'static[ ]const[ ]unsigned[ ]int[ ]solo_osd_font\[\][ ]=' drivers/staging/solo6x10/solo6010-osd-font.h
+ defsnc '[ ]unsigned[ ]char[ ]regs\[128\][ ]=' drivers/staging/solo6x10/solo6010-tw28.c
+ defsnc 'static[ ]unsigned[ ]short[ ]rc_ioport\[\][ ]=' drivers/staging/tty/riscom8.c
+ defsnc 'static[ ]Byte_t[ ]RData\[RDATASIZE\][ ]=' drivers/tty/rocket.c
+ defsnc '[ ]static[ ]DEFINE_TEST_\(OK\|FAIL\)[(][^)]*[)][ ]=' lib/test-kstrtox.c
+ accept '[ * ]*0[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]1[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]2[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]3[\n][ * ]*0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1' 'net/\(netfilter\|ipv4\)/ipvs/ip_vs_sync\.c\|net/sctp/sm_make_chunk\.c\|include/linux/scpt\.h\|drivers/staging/rt3090/common/igmp_snoop\.c'
+ accept '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]int[ ]do_mod_firmware_load[(]' sound/sound_firmware.c
+ defsnc 'static[ ]yyconst[ ]\(flex_int\(16\|32\)_t\|\(\(short[ ]\)\?int\)\)[ ]yy_[^[]*\[[][0-9]*\][ ]='
+ defsnc 'static[ ]const[ ]\(yytype_u\?int\(8\|16\)\|\(unsigned[ ]\)\?\(short\([ ]int\)\?\|char\)\)[ ]yy[^[]*\[\][ ]='
+ initnc '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]\(yy\)\?const[ ]\(yytype\|flex\)_u\?int\(8\|16\|32\)\(_t\)\?[ ]yy[^\n []*\[[0-9]*\][ ]=\([*][/][;]\)\?' '.*\.tab\.c_shipped'
+ # New in 2.6.39 below, present in earlier versions above
+ blobna 'printk[(]KERN_ERR[ ]["]r8712u:[ ]Install[^\n"]*firmware[\\]n["][)][;]' drivers/staging/rtl8712/hal_init.c
+ defsnc 'static[ ]const[ ]struct[ ]phy_reg[ ]exynos4_sataphy_\(cmu\|\(com\)\?lane\)\[\][ ]=' arch/arm/mach-exynos4/dev-ahci.c
+ defsnc 'static[ ]struct[ ]clk_pll_\(freq_\)\?table[ ]tegra_pll_[adpxm]_\(freq_\)\?table\[\][ ]=' arch/arm/mach-tegra/tegra2_clocks.c
+ initnc '\.irp[ ]idx' arch/x86/include/asm/entry_arch.h
+ initnc '\.irp[ ]idx' arch/x86/kernel/entry_64.S
+ defsnc 'static[ ]const[ ]u8[ ]types\[256\][ ]=' drivers/gpu/drm/nouveau/nvc0_vram.c
+ defsnc 'static[ ]__u8[ ]keytouch_fixed_rdesc\[\][ ]=' drivers/hid/hid-keytouch.c
+ blobname 'dib9090\.fw' drivers/media/dvb/dvb-usb/dib0700_devices.c
+ accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dw\(210[24]\|3101\)\|s6[3x]0\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\|size_of_priv\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dw2102.c
+ accept '[ ]\(p1100\|s660\)->firmware[ ]=' drivers/media/dvb/dvb-usb/dw2102.c
+ blobname 'dvb-usb-\(p1100\|s660\)\.fw' drivers/media/dvb/dvb-usb/dw2102.c
+ blobname 'dvb-usb-lme2510c\?-s0194\.fw' drivers/media/dvb/dvb-usb/lmedm04.c
+ accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]technisat_usb2_devices[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\|identify_state\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/technisat-usb2.c
+ blobname 'dvb-usb-SkyStar_USB_HD_FW_v17_63\.HEX\.fw' drivers/media/dvb/dvb-usb/technisat-usb2.c
+ defsnc 'static[ ]const[ ]struct[ ]dib0090_pll[ ]dib0090_\(p1g_\)\?pll_table\[\][ ]=' drivers/media/dvb/frontends/dib0090.c
+ defsnc '[ ]static[ ]u8[ ]sine[ ]\?\[\][ ]=' drivers/media/dvb/frontends/dib7000p.c
+ defsnc 'u32[ ]fe_info\[44\][ ]=' drivers/media/dvb/frontends/dib9000.c
+ blobname 'dvb-netup-altera-01\.fw' drivers/media/video/cx23885/cx23885-cards.c
+ # These are suspicious, but the regularity suggests data.
+ defsnc 'static[ ]const[ ]u8[ ]\(nw80[012]\|spacecam2\?\|cvideopro\|dlink\|ds3303\|kr651\|kritter\|mustek\|proscope\|twinkle\|dvcv6\)_start\(_\([12]\|q\?vga\)\)\?\[\][ ]=' drivers/media/video/gspca/nw80x.c
+ defsnc 'static[ ]const[ ]u8[ ]\(bridge\|sensor\)_init_7\(67\|72\)x\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
+ defsnc '[ ]static[ ]u8[ ]color_tb\[\]\[6\][ ]=' drivers/media/video/gspca/ov534.c
+ defsnc 'static[ ]const[ ]struct[ ]isprsz_coef[ ]filter_coefs[ ]=' drivers/media/video/omap3isp/ispresizer.c
+ defsnc 'static[ ]const[ ]struct[ ]ov9740_reg[ ]ov9740_defaults\[\][ ]=' drivers/media/video/ov9740.c
+ defsnc 'static[ ]int[ ]therm_tbl\[\][ ]=' drivers/mfd/twl4030-madc.c
+ defsnc 'static[ ]struct[ ]nand_ecclayout[ ]nandv2_hw_eccoob_\(largepage\|4k\)[ ]=' drivers/mtd/nand/mxc_nand.c
+ defsnc 'static[ ]const[ ]u32[ ]ar9485\(\(C\|_c\)ommon_\(wo_xlna_\)\?rx_gain\)\?_1_[01]\(_\(radio\|baseband\|mac\)_core\)\?\[\]\[2\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+ defsnc 'static[ ]const[ ]u32[ ]ar9485_1_[01]_\(mac\|baseband\)_postamble\[\]\[5\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+ defsnc 'static[ ]const[ ]u32[ ]ar9485\(M\|_m\)odes_\(high\|low\|green\)\(est\)\?_\(power\|ob_db\)_tx_gain_1_[01]\[\]\[5\][ ]=' drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+ defsnc '\(static[ ]\)\?const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\?\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\(_r3\)\?\[\][ ]=' drivers/net/wireless/b43/tables_nphy.c
+ defsnc 'struct[ ]nphy_gain_ctl_workaround_entry[ ]nphy_gain_ctl_workaround\[2\]\[3\][ ]=' drivers/net/wireless/b43/tables_nphy.c
+ blobname '\(ti-connectivity[/]\)\?wl1271-\(fw\(-2\|-ap\)\?\|nvs\)\.bin' drivers/net/wireless/wl12xx/wl1271.h
+ accept '#define\([ ]_\?IWL\(4965\|[156]000\(G2[AB]\)\?\|1[03]0\|5150\|6050\|20[03]\?0\)_MODULE_FIRMWARE[(]api[)]\)\+' 'drivers/net/iwlwifi/iwl-\([1256]000\|4965\)\.c'
+ blobname 'rtlwifi[/]rtl8192cufw\.bin' drivers/net/wireless/rtlwifi/rtl8192cu.sw
+ blobname 'rtlwifi[/]rtl8712u\.bin' drivers/staging/rtl8712/hal_init.c
+ defsnc 'u32[ ]\(RTL\|Rtl\)8192CU\(PHY_REG\|_\?\(RADIO\|Radio\)[AB]\|MAC\|AGCTAB\)_\([21]T\(_HP\)\?_\?\(ARRAY\|Array\)\|\(ARRAY\|Array\)_PG\)\(_HP\)\?\[RTL8192CU\(PHY_REG\|\(RADIO\|Radio\)[AB]\|MAC\|AGCTAB\)_\([21]T\(_HP\)\?_\?\(ARRAY\|Array\)_\?\|\(ARRAY\|Array\)_PG\)\(_HP\)\?\(LENGTH\|Length\)\][ ]=' drivers/net/wireless/rtlwifi/rtl8192cu/table.c
+ blobname 'rtl_nic[/]rtl8105e-1\.fw' drivers/net/r8169.c
+ defsnc 'static[ ]const[ ]\(A_INT32\|s32\)[ ]wmi_rateTable\[\]\[2\][ ]=' drivers/staging/ath6kl/wmi/wmi.c
+ defsnc '\(static[ ]\)\?const[ ]struct[ ]\(stk1160\|saa7113\)config[ ]\([{][^}]*[}][ ]\)\?\(stk1160\|saa7113\)config\(PAL\|NTSC\)\[256\][ ]=' drivers/staging/easycap/easycap_low.c
+ defsnc 'static[ ]const[ ]ccktxbbgain_struct[ ]rtl8192_cck_txbbgain_\(ch14_\)\?table\[\][ ]=' drivers/staging/rtl8192e/r8192E_dm.c
+ defsnc '[ ]unsigned[ ]char[ ]data_ptr\[36\][ ]=' drivers/usb/storage/ene_ub6250.c
+ blobname 'ene-ub6250[/]sd_\(init[12]\|rdwr\)\.bin' drivers/usb/storage/ene_ub6250.c
+ defsnc 'static[ ]const[ ]struct[ ]hdmi_timings[ ]cea_vesa_timings\[OMAP_HDMI_TIMINGS_NB\][ ]=' drivers/video/omap2/dss/hdmi.c
+ defsnc 'static[ ]struct[ ]pll_config[ ]\(cle266\|k800\|cx700\|vx855\)_pll_config\[\][ ]=' drivers/video/via/hw.c
+ defsnc 'static[ ]char[ ]channel_map_unity_ss\[HDSPM_MAX_CHANNELS\][ ]=' sound/pci/rme9652/hdspm.c
+ defsnc 'static[ ]const[ ]u8[ ]log_volume_table\[128\][ ]=' sound/usb/6fire/control.c
+ defsnc 'static[ ]const[ ]struct[ ][{][^}]*[}][\n]init_data\[\][ ]=' drivers/usb/6fire/control.c
+ blobname '6fire[/]dmx6fire\(l2\|ap\|cf\)\.\(ihx\|bin\)' sound/usb/6fire/firmware.c
+ defsnc 'static[ ]const[ ]u8[ ]BIT_REVERSE_TABLE\[256\][ ]=' sound/usb/6fire/firmware.c
+ initnc '[/][*][\n][ ][*][ ]\(cfa_coef\|gamma\|luma_enhance\|noise_filter\)_table\.h[\n][ ][*]\([^\n]*[\n][ ][*]\)*[/]' 'drivers/media/video/omap3isp/\(cfa_coef\|gamma\|luma_enhance\|noise_filter\)_table\.h'
+ blobna 'rocess_sigma_firmwar'
+ defsnc 'int[ ]process_sigma_firmware[(][^)]*[)][\n][{]\([\n]\+[^\n}][^\n]*\)*[^\n]*request_firmware' drivers/firmware/sigma.c
+ accept 'EXPORT_SYMBOL[(]process_sigma_firmware[)]' drivers/firmware/sigma.c
+ accept 'extern[ ]int[ ]process_sigma_firmware[(][^)]*[)][;]' include/linux/sigma.h
+ blobname 'maxtouch\.fw' drivers/input/touchscreen/atmel_mxt_ts.c
+ blobname 'fm\(c\|_[rt]x\)_ch8\(_[0-9a-f]*\.[0-9]*\.bts\)\?' drivers/media/radio/wl128x/fmdrv_common.h
+ blobname '%s_%x\.%d\.bts' drivers/media/radio/wl128x/fmdrv_common.c
+ ;;
+
*/rtl8180*.patch)
defsnc 'static[ ]u8[ ]sa2400_rf_rssi_map\[\][ ]=' drivers/net/wireless/rtl818x/rtl8180_sa2400.c
;;
@@ -2838,6 +3045,11 @@ set_except () {
defsnc 'static[ ]u32[ ]\(h_prescale\|v_gain\)\[64\][ ]=' drivers/staging/stradis/stradis.c
;;
+ */patch*-2.6.38*)
+ # New in 2.6.38.4
+ defsnc '[ ]static[ ]DEFINE_TEST_\(OK\|FAIL\)[(][^)]*[)][ ]=' lib/test-kstrtox.c
+ ;;
+
*/patch*-2.6.37-rc*) # up to -rc8-git3
defsnc 'static[ ]u32[ ]epll_div\[\]\[6\][ ]=' arch/arm/mach-s5pv210/clock.c
defsnc 'static[ ]struct[ ]titan_gpio_cfg[ ]titan_gpio_table\[\][ ]=' arch/mips/ar7/gpio.c
@@ -2903,7 +3115,7 @@ set_except () {
defsnc 'const[ ]u8[ ]dot11lcn_gain_val_tbl_\(rev0\|\(extlna_\)\?2G\)\[\][ ]=' drivers/stagingg/brcm80211/phy/wlc_phytbl_lcn.c
defsnc 'const[ ]u16[ ]dot11lcn_\(min_sig_sq\|noise_scale\)_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
defsnc 'const[ ]u16[ ]dot11lcn_sw_ctrl_tbl_\(4313_\)\?\(bt_\)\?\(epa_\)\?\(p250_\)\?rev0\(_combo\)\?\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
- defsnc 'const[ ]u8[ ]dot11lcn_spur_tbl_rev0\[\][ ]=' drivers/stagingg/brcm80211/phy/wlc_phytbl_lcn.c
+ defsnc 'const[ ]u8[ ]dot11lcn_spur_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
defsnc 'const[ ]u16[ ]dot11lcn_\(unsup_mcs\|iq_local\)_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
defsnc 'const[ ]lcnphy_tx_gain_tbl_entry[ ]dot11lcnphy_[25]GHz_\(extPA_\)\?gaintable_rev0\[128\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
defsnc 'const[ ]u32[ ]dot11lcn_papd_compdelta_tbl_rev0\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phytbl_lcn.c
@@ -3261,7 +3473,7 @@ set_except () {
defsnc '\([ ][ ][ ][ ]\|[ ]\)u_int32_t[ ]ralinkrate\[256\][ ]=' 'drivers/staging/rt\(28[67]0\|3070\)/rt_linux\.c'
defsnc '\(static[ ]uint32_t\|[}]\)[ ]nv04_graph_ctx_regs[ ]\?\[\][ ]=' drivers/char/drm/nv04_graph.c
defsnc 'static[ ]int[ ]nv10_graph_ctx_regs[ ]\?\[\][ ]=' drivers/char/drm/nv10_graph.c
- accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dw\(210[24]\|3101\)\|s6[3x]0\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dw2102.c
+ accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dw\(210[24]\|3101\)\|s6[3x]0\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\|size_of_priv\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dw2102.c
defsnc 'static[ ]int[ ]zoom2_batt_table\[\][ ]=' arch/arm/mach-omap2/board-zoom2.c
defsnc 'static[ ]u8[ ]af9015_ir_table_\(leadtek\|twinhan\|a_link\|msi\|mygictv\|kworld\)\[\][ ]=' drivers/media/dvb/dvb-usb/af9015.h
defsnc '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]const[ ]struct[ ]usb_action[ ]\(cs2102\|hdcs2020xx\|icm105axx\|ov7630c\|pb0330[3x]x\)_Initial\(Scale\)\?\[\][ ]=[ ][{]\([*][/][;]\)\?[\n]' drivers/media/video/gspca/zc3xx.c
@@ -3573,6 +3785,7 @@ set_except () {
initnc 'const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\[\][ ]='
;;
*/*drm*.patch)
+ defsnc 'static[ ]const[ ]u32[ ]cayman_io_mc_regs\[BTC_IO_MC_REGS_SIZE\]\[2\][ ]=' drivers/gpu/drm/radeon/ni.c
defsnc 'static[ ]struct[ ]v_table[ ]v_table\[\][ ]=' drivers/gpu/drm/i915/i915_dma.c
defsnc '[}][ ]est3_modes\[\][ ]=' drivers/gpu/drm/drm_edid.c
defsnc 'const[ ]u32[ ]r[67]xx_default_state\[\][ ]=' drivers/gpu/drm/radeon/r600_blit_shaders.c
@@ -3589,6 +3802,7 @@ set_except () {
defsnc '\(static[ ]uint32_t\|[}]\)[ ]nv04_graph_ctx_regs[ ]\?\[\][ ]=' drivers/char/drm/nv04_graph.c
defsnc 'static[ ]int[ ]nv1[07]_graph_ctx_regs[ ]\?\[\][ ]=' drivers/char/drm/nv10_graph.c
defsnc '[ ][}][ ]common_modes\[17\][ ]=' drivers/gpu/drm/radeon/radeon_connectors.c
+ defsnc 'static[ ]const[ ]u8[ ]types\[256\][ ]=' drivers/gpu/drm/nouveau/nvc0_vram.c
# drm-upgrayedd.patch
defsnc 'static[ ]const[ ]u16[ ]\(y\|uv\)_static_hcoeffs\[N_HORIZ_\(Y\|UV\)_TAPS[ ][*][ ]N_PHASES\][ ]=' drivers/gpu/drm/i915/intel_overlay.c
@@ -3613,6 +3827,7 @@ set_except () {
accept '[(]at[ ]which[ ]point[ ]it[ ]should[ ]use[ ]request_firmware'
;;
*/linux-2.6-v4l-dvb*.patch)
+ initnc '\([;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]\)\?static[ ]const[ ]unsigned[ ]char[ ]hid_keyboard\[256\][ ]=\([ ][{][*][/][;]\)\?' drivers/hid/hid-input.c
# post 2.6.37 fixes start here
defsnc 'static[ ]const[ ]struct[ ]dib0090_pll[ ]dib0090_p1g_pll_table\[\][ ]=' drivers/media/dvb/frontends/dib0090.c
defsnc '[ ]static[ ]u8[ ]sine\[\][ ]=' drivers/media/dvb/frontends/dib7000p.c
diff --git a/freed-ora/current/master/drm-intel-big-hammer.patch b/freed-ora/current/master/drm-intel-big-hammer.patch
deleted file mode 100644
index bf152af3b..000000000
--- a/freed-ora/current/master/drm-intel-big-hammer.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-omgwtfbbqchainsaw?
----
- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index e698343..21e601d1 100644
---- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -1090,6 +1090,11 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- if (ret)
- goto pre_mutex_err;
-
-+ /* We don't get the flushing right for these chipsets, use the
-+ * big hammer for now to avoid random crashiness. */
-+ if (IS_I85X(dev) || IS_I865G(dev))
-+ wbinvd();
-+
- if (dev_priv->mm.suspended) {
- mutex_unlock(&dev->struct_mutex);
- ret = -EBUSY;
diff --git a/freed-ora/current/master/drm-intel-eeebox-eb1007-quirk.patch b/freed-ora/current/master/drm-intel-eeebox-eb1007-quirk.patch
new file mode 100644
index 000000000..9ae3604e7
--- /dev/null
+++ b/freed-ora/current/master/drm-intel-eeebox-eb1007-quirk.patch
@@ -0,0 +1,36 @@
+From ab737b006568d01204cc51368c7e2067eecb2cff Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 7 Apr 2011 13:31:57 +0200
+Subject: [PATCH] drm/i915: Add a no lvds quirk for the Asus EeeBox PC EB1007
+
+I found this while figuring out why gnome-shell would not run on my
+Asus EeeBox PC EB1007. As a standalone "pc" this device cleary does not have
+an internal panel, yet it claims it does. Add a quirk to fix this.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/gpu/drm/i915/intel_lvds.c | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
+index a562bd2..954822a 100644
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -724,6 +724,14 @@ static const struct dmi_system_id intel_no_lvds[] = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "U800"),
+ },
+ },
++ {
++ .callback = intel_no_lvds_dmi_callback,
++ .ident = "Asus EeeBox PC EB1007",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "EB1007"),
++ },
++ },
+
+ { } /* terminating entry */
+ };
+--
+1.7.4.2
+
diff --git a/freed-ora/current/master/drm-nouveau-updates.patch b/freed-ora/current/master/drm-nouveau-updates.patch
index 3bd652fa6..607602cfc 100644
--- a/freed-ora/current/master/drm-nouveau-updates.patch
+++ b/freed-ora/current/master/drm-nouveau-updates.patch
@@ -1,1875 +1 @@
- drivers/gpu/drm/nouveau/nouveau_bios.c | 25 +--
- drivers/gpu/drm/nouveau/nouveau_bo.c | 6 +-
- drivers/gpu/drm/nouveau/nouveau_channel.c | 2 +-
- drivers/gpu/drm/nouveau/nouveau_display.c | 2 +-
- drivers/gpu/drm/nouveau/nouveau_dp.c | 2 -
- drivers/gpu/drm/nouveau/nouveau_drv.h | 15 +-
- drivers/gpu/drm/nouveau/nouveau_fence.c | 190 ++++++++++------
- drivers/gpu/drm/nouveau/nouveau_mem.c | 50 +++-
- drivers/gpu/drm/nouveau/nouveau_object.c | 22 ++-
- drivers/gpu/drm/nouveau/nouveau_sgdma.c | 341 +++++++++++++++++++++++++----
- drivers/gpu/drm/nouveau/nouveau_state.c | 10 +-
- drivers/gpu/drm/nouveau/nouveau_temp.c | 4 +-
- drivers/gpu/drm/nouveau/nouveau_util.c | 23 ++-
- drivers/gpu/drm/nouveau/nouveau_util.h | 4 +
- drivers/gpu/drm/nouveau/nouveau_vm.c | 13 +-
- drivers/gpu/drm/nouveau/nv04_fifo.c | 19 ++-
- drivers/gpu/drm/nouveau/nv40_fb.c | 59 +++++-
- drivers/gpu/drm/nouveau/nv50_display.c | 7 +-
- drivers/gpu/drm/nouveau/nv50_fb.c | 150 ++++++++++++-
- drivers/gpu/drm/nouveau/nv50_fifo.c | 3 +-
- drivers/gpu/drm/nouveau/nv50_gpio.c | 13 +-
- drivers/gpu/drm/nouveau/nv50_graph.c | 142 +++++++-----
- drivers/gpu/drm/nouveau/nv50_vm.c | 1 -
- drivers/gpu/drm/nouveau/nv84_crypt.c | 2 +-
- drivers/gpu/drm/nouveau/nvc0_fifo.c | 15 +-
- drivers/gpu/drm/nouveau/nvc0_graph.c | 2 -
- 26 files changed, 841 insertions(+), 281 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
-index 6bdab89..b8ff1e7 100644
---- a/drivers/gpu/drm/nouveau/nouveau_bios.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
-@@ -5950,6 +5950,11 @@ apply_dcb_connector_quirks(struct nvbios *bios, int idx)
- }
- }
-
-+static const u8 hpd_gpio[16] = {
-+ 0xff, 0x07, 0x08, 0xff, 0xff, 0x51, 0x52, 0xff,
-+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x5e, 0x5f, 0x60,
-+};
-+
- static void
- parse_dcb_connector_table(struct nvbios *bios)
- {
-@@ -5986,23 +5991,9 @@ parse_dcb_connector_table(struct nvbios *bios)
-
- cte->type = (cte->entry & 0x000000ff) >> 0;
- cte->index2 = (cte->entry & 0x00000f00) >> 8;
-- switch (cte->entry & 0x00033000) {
-- case 0x00001000:
-- cte->gpio_tag = 0x07;
-- break;
-- case 0x00002000:
-- cte->gpio_tag = 0x08;
-- break;
-- case 0x00010000:
-- cte->gpio_tag = 0x51;
-- break;
-- case 0x00020000:
-- cte->gpio_tag = 0x52;
-- break;
-- default:
-- cte->gpio_tag = 0xff;
-- break;
-- }
-+
-+ cte->gpio_tag = ffs((cte->entry & 0x07033000) >> 12);
-+ cte->gpio_tag = hpd_gpio[cte->gpio_tag];
-
- if (cte->type == 0xff)
- continue;
-diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
-index a521840..53a8000 100644
---- a/drivers/gpu/drm/nouveau/nouveau_bo.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
-@@ -385,7 +385,8 @@ nouveau_bo_create_ttm_backend_entry(struct ttm_bo_device *bdev)
- case NOUVEAU_GART_AGP:
- return ttm_agp_backend_init(bdev, dev->agp->bridge);
- #endif
-- case NOUVEAU_GART_SGDMA:
-+ case NOUVEAU_GART_PDMA:
-+ case NOUVEAU_GART_HW:
- return nouveau_sgdma_init_ttm(dev);
- default:
- NV_ERROR(dev, "Unknown GART type %d\n",
-@@ -439,7 +440,8 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
- TTM_PL_FLAG_WC;
- man->default_caching = TTM_PL_FLAG_WC;
- break;
-- case NOUVEAU_GART_SGDMA:
-+ case NOUVEAU_GART_PDMA:
-+ case NOUVEAU_GART_HW:
- man->flags = TTM_MEMTYPE_FLAG_MAPPABLE |
- TTM_MEMTYPE_FLAG_CMA;
- man->available_caching = TTM_PL_MASK_CACHING;
-diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c
-index 3960d66..3d7b316 100644
---- a/drivers/gpu/drm/nouveau/nouveau_channel.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_channel.c
-@@ -35,7 +35,7 @@ nouveau_channel_pushbuf_ctxdma_init(struct nouveau_channel *chan)
- struct drm_nouveau_private *dev_priv = dev->dev_private;
- struct nouveau_bo *pb = chan->pushbuf_bo;
- struct nouveau_gpuobj *pushbuf = NULL;
-- int ret;
-+ int ret = 0;
-
- if (dev_priv->card_type >= NV_50) {
- if (dev_priv->card_type < NV_C0) {
-diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
-index 505c6bf..566466b 100644
---- a/drivers/gpu/drm/nouveau/nouveau_display.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
-@@ -244,7 +244,7 @@ nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb,
-
- /* Initialize a page flip struct */
- *s = (struct nouveau_page_flip_state)
-- { { }, s->event, nouveau_crtc(crtc)->index,
-+ { { }, event, nouveau_crtc(crtc)->index,
- fb->bits_per_pixel, fb->pitch, crtc->x, crtc->y,
- new_bo->bo.offset };
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
-index 38d5995..7beb82a 100644
---- a/drivers/gpu/drm/nouveau/nouveau_dp.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
-@@ -175,7 +175,6 @@ nouveau_dp_link_train_adjust(struct drm_encoder *encoder, uint8_t *config)
- {
- struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
- struct drm_device *dev = encoder->dev;
-- struct bit_displayport_encoder_table_entry *dpse;
- struct bit_displayport_encoder_table *dpe;
- int ret, i, dpe_headerlen, vs = 0, pre = 0;
- uint8_t request[2];
-@@ -183,7 +182,6 @@ nouveau_dp_link_train_adjust(struct drm_encoder *encoder, uint8_t *config)
- dpe = nouveau_bios_dp_table(dev, nv_encoder->dcb, &dpe_headerlen);
- if (!dpe)
- return false;
-- dpse = (void *)((char *)dpe + dpe_headerlen);
-
- ret = auxch_rd(encoder, DP_ADJUST_REQUEST_LANE0_1, request, 2);
- if (ret)
-diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
-index 982d70b..2cae8e7 100644
---- a/drivers/gpu/drm/nouveau/nouveau_drv.h
-+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
-@@ -652,7 +652,6 @@ struct drm_nouveau_private {
- /* interrupt handling */
- void (*irq_handler[32])(struct drm_device *);
- bool msi_enabled;
-- struct workqueue_struct *wq;
- struct work_struct irq_work;
-
- struct list_head vbl_waiting;
-@@ -691,13 +690,21 @@ struct drm_nouveau_private {
- struct {
- enum {
- NOUVEAU_GART_NONE = 0,
-- NOUVEAU_GART_AGP,
-- NOUVEAU_GART_SGDMA
-+ NOUVEAU_GART_AGP, /* AGP */
-+ NOUVEAU_GART_PDMA, /* paged dma object */
-+ NOUVEAU_GART_HW /* on-chip gart/vm */
- } type;
- uint64_t aper_base;
- uint64_t aper_size;
- uint64_t aper_free;
-
-+ struct ttm_backend_func *func;
-+
-+ struct {
-+ struct page *page;
-+ dma_addr_t addr;
-+ } dummy;
-+
- struct nouveau_gpuobj *sg_ctxdma;
- struct nouveau_vma vma;
- } gart_info;
-@@ -1076,7 +1083,7 @@ extern void nv40_fb_set_tile_region(struct drm_device *dev, int i);
- /* nv50_fb.c */
- extern int nv50_fb_init(struct drm_device *);
- extern void nv50_fb_takedown(struct drm_device *);
--extern void nv50_fb_vm_trap(struct drm_device *, int display, const char *);
-+extern void nv50_fb_vm_trap(struct drm_device *, int display);
-
- /* nvc0_fb.c */
- extern int nvc0_fb_init(struct drm_device *);
-diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
-index 221b846..8b46392 100644
---- a/drivers/gpu/drm/nouveau/nouveau_fence.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_fence.c
-@@ -32,8 +32,7 @@
- #include "nouveau_dma.h"
-
- #define USE_REFCNT(dev) (nouveau_private(dev)->chipset >= 0x10)
--#define USE_SEMA(dev) (nouveau_private(dev)->chipset >= 0x17 && \
-- nouveau_private(dev)->card_type < NV_C0)
-+#define USE_SEMA(dev) (nouveau_private(dev)->chipset >= 0x17)
-
- struct nouveau_fence {
- struct nouveau_channel *channel;
-@@ -259,11 +258,12 @@ __nouveau_fence_wait(void *sync_obj, void *sync_arg, bool lazy, bool intr)
- }
-
- static struct nouveau_semaphore *
--alloc_semaphore(struct drm_device *dev)
-+semaphore_alloc(struct drm_device *dev)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
- struct nouveau_semaphore *sema;
-- int ret;
-+ int size = (dev_priv->chipset < 0x84) ? 4 : 16;
-+ int ret, i;
-
- if (!USE_SEMA(dev))
- return NULL;
-@@ -277,9 +277,9 @@ alloc_semaphore(struct drm_device *dev)
- goto fail;
-
- spin_lock(&dev_priv->fence.lock);
-- sema->mem = drm_mm_search_free(&dev_priv->fence.heap, 4, 0, 0);
-+ sema->mem = drm_mm_search_free(&dev_priv->fence.heap, size, 0, 0);
- if (sema->mem)
-- sema->mem = drm_mm_get_block_atomic(sema->mem, 4, 0);
-+ sema->mem = drm_mm_get_block_atomic(sema->mem, size, 0);
- spin_unlock(&dev_priv->fence.lock);
-
- if (!sema->mem)
-@@ -287,7 +287,8 @@ alloc_semaphore(struct drm_device *dev)
-
- kref_init(&sema->ref);
- sema->dev = dev;
-- nouveau_bo_wr32(dev_priv->fence.bo, sema->mem->start / 4, 0);
-+ for (i = sema->mem->start; i < sema->mem->start + size; i += 4)
-+ nouveau_bo_wr32(dev_priv->fence.bo, i / 4, 0);
-
- return sema;
- fail:
-@@ -296,7 +297,7 @@ fail:
- }
-
- static void
--free_semaphore(struct kref *ref)
-+semaphore_free(struct kref *ref)
- {
- struct nouveau_semaphore *sema =
- container_of(ref, struct nouveau_semaphore, ref);
-@@ -318,61 +319,107 @@ semaphore_work(void *priv, bool signalled)
- if (unlikely(!signalled))
- nouveau_bo_wr32(dev_priv->fence.bo, sema->mem->start / 4, 1);
-
-- kref_put(&sema->ref, free_semaphore);
-+ kref_put(&sema->ref, semaphore_free);
- }
-
- static int
--emit_semaphore(struct nouveau_channel *chan, int method,
-- struct nouveau_semaphore *sema)
-+semaphore_acquire(struct nouveau_channel *chan, struct nouveau_semaphore *sema)
- {
-- struct drm_nouveau_private *dev_priv = sema->dev->dev_private;
-- struct nouveau_fence *fence;
-- bool smart = (dev_priv->card_type >= NV_50);
-+ struct drm_nouveau_private *dev_priv = chan->dev->dev_private;
-+ struct nouveau_fence *fence = NULL;
- int ret;
-
-- ret = RING_SPACE(chan, smart ? 8 : 4);
-+ if (dev_priv->chipset < 0x84) {
-+ ret = RING_SPACE(chan, 3);
-+ if (ret)
-+ return ret;
-+
-+ BEGIN_RING(chan, NvSubSw, NV_SW_SEMAPHORE_OFFSET, 2);
-+ OUT_RING (chan, sema->mem->start);
-+ OUT_RING (chan, 1);
-+ } else
-+ if (dev_priv->chipset < 0xc0) {
-+ struct nouveau_vma *vma = &dev_priv->fence.bo->vma;
-+ u64 offset = vma->offset + sema->mem->start;
-+
-+ ret = RING_SPACE(chan, 5);
-+ if (ret)
-+ return ret;
-+
-+ BEGIN_RING(chan, NvSubSw, 0x0010, 4);
-+ OUT_RING (chan, upper_32_bits(offset));
-+ OUT_RING (chan, lower_32_bits(offset));
-+ OUT_RING (chan, 1);
-+ OUT_RING (chan, 1); /* ACQUIRE_EQ */
-+ } else {
-+ struct nouveau_vma *vma = &dev_priv->fence.bo->vma;
-+ u64 offset = vma->offset + sema->mem->start;
-+
-+ ret = RING_SPACE(chan, 5);
-+ if (ret)
-+ return ret;
-+
-+ BEGIN_NVC0(chan, 2, NvSubM2MF, 0x0010, 4);
-+ OUT_RING (chan, upper_32_bits(offset));
-+ OUT_RING (chan, lower_32_bits(offset));
-+ OUT_RING (chan, 1);
-+ OUT_RING (chan, 0x1001); /* ACQUIRE_EQ */
-+ }
-+
-+ /* Delay semaphore destruction until its work is done */
-+ ret = nouveau_fence_new(chan, &fence, true);
- if (ret)
- return ret;
-
-- if (smart) {
-- BEGIN_RING(chan, NvSubSw, NV_SW_DMA_SEMAPHORE, 1);
-- OUT_RING(chan, NvSema);
-- }
-- BEGIN_RING(chan, NvSubSw, NV_SW_SEMAPHORE_OFFSET, 1);
-- OUT_RING(chan, sema->mem->start);
--
-- if (smart && method == NV_SW_SEMAPHORE_ACQUIRE) {
-- /*
-- * NV50 tries to be too smart and context-switch
-- * between semaphores instead of doing a "first come,
-- * first served" strategy like previous cards
-- * do.
-- *
-- * That's bad because the ACQUIRE latency can get as
-- * large as the PFIFO context time slice in the
-- * typical DRI2 case where you have several
-- * outstanding semaphores at the same moment.
-- *
-- * If we're going to ACQUIRE, force the card to
-- * context switch before, just in case the matching
-- * RELEASE is already scheduled to be executed in
-- * another channel.
-- */
-- BEGIN_RING(chan, NvSubSw, NV_SW_YIELD, 1);
-- OUT_RING(chan, 0);
-- }
-+ kref_get(&sema->ref);
-+ nouveau_fence_work(fence, semaphore_work, sema);
-+ nouveau_fence_unref(&fence);
-+ return 0;
-+}
-+
-+static int
-+semaphore_release(struct nouveau_channel *chan, struct nouveau_semaphore *sema)
-+{
-+ struct drm_nouveau_private *dev_priv = chan->dev->dev_private;
-+ struct nouveau_fence *fence = NULL;
-+ int ret;
-+
-+ if (dev_priv->chipset < 0x84) {
-+ ret = RING_SPACE(chan, 4);
-+ if (ret)
-+ return ret;
-+
-+ BEGIN_RING(chan, NvSubSw, NV_SW_SEMAPHORE_OFFSET, 1);
-+ OUT_RING (chan, sema->mem->start);
-+ BEGIN_RING(chan, NvSubSw, NV_SW_SEMAPHORE_RELEASE, 1);
-+ OUT_RING (chan, 1);
-+ } else
-+ if (dev_priv->chipset < 0xc0) {
-+ struct nouveau_vma *vma = &dev_priv->fence.bo->vma;
-+ u64 offset = vma->offset + sema->mem->start;
-
-- BEGIN_RING(chan, NvSubSw, method, 1);
-- OUT_RING(chan, 1);
--
-- if (smart && method == NV_SW_SEMAPHORE_RELEASE) {
-- /*
-- * Force the card to context switch, there may be
-- * another channel waiting for the semaphore we just
-- * released.
-- */
-- BEGIN_RING(chan, NvSubSw, NV_SW_YIELD, 1);
-- OUT_RING(chan, 0);
-+ ret = RING_SPACE(chan, 5);
-+ if (ret)
-+ return ret;
-+
-+ BEGIN_RING(chan, NvSubSw, 0x0010, 4);
-+ OUT_RING (chan, upper_32_bits(offset));
-+ OUT_RING (chan, lower_32_bits(offset));
-+ OUT_RING (chan, 1);
-+ OUT_RING (chan, 2); /* RELEASE */
-+ } else {
-+ struct nouveau_vma *vma = &dev_priv->fence.bo->vma;
-+ u64 offset = vma->offset + sema->mem->start;
-+
-+ ret = RING_SPACE(chan, 5);
-+ if (ret)
-+ return ret;
-+
-+ BEGIN_NVC0(chan, 2, NvSubM2MF, 0x0010, 4);
-+ OUT_RING (chan, upper_32_bits(offset));
-+ OUT_RING (chan, lower_32_bits(offset));
-+ OUT_RING (chan, 1);
-+ OUT_RING (chan, 0x1002); /* RELEASE */
- }
-
- /* Delay semaphore destruction until its work is done */
-@@ -383,7 +430,6 @@ emit_semaphore(struct nouveau_channel *chan, int method,
- kref_get(&sema->ref);
- nouveau_fence_work(fence, semaphore_work, sema);
- nouveau_fence_unref(&fence);
--
- return 0;
- }
-
-@@ -400,7 +446,7 @@ nouveau_fence_sync(struct nouveau_fence *fence,
- nouveau_fence_signalled(fence)))
- goto out;
-
-- sema = alloc_semaphore(dev);
-+ sema = semaphore_alloc(dev);
- if (!sema) {
- /* Early card or broken userspace, fall back to
- * software sync. */
-@@ -418,17 +464,17 @@ nouveau_fence_sync(struct nouveau_fence *fence,
- }
-
- /* Make wchan wait until it gets signalled */
-- ret = emit_semaphore(wchan, NV_SW_SEMAPHORE_ACQUIRE, sema);
-+ ret = semaphore_acquire(wchan, sema);
- if (ret)
- goto out_unlock;
-
- /* Signal the semaphore from chan */
-- ret = emit_semaphore(chan, NV_SW_SEMAPHORE_RELEASE, sema);
-+ ret = semaphore_release(chan, sema);
-
- out_unlock:
- mutex_unlock(&chan->mutex);
- out_unref:
-- kref_put(&sema->ref, free_semaphore);
-+ kref_put(&sema->ref, semaphore_free);
- out:
- if (chan)
- nouveau_channel_put_unlocked(&chan);
-@@ -449,22 +495,23 @@ nouveau_fence_channel_init(struct nouveau_channel *chan)
- struct nouveau_gpuobj *obj = NULL;
- int ret;
-
-+ if (dev_priv->card_type >= NV_C0)
-+ goto out_initialised;
-+
- /* Create an NV_SW object for various sync purposes */
- ret = nouveau_gpuobj_gr_new(chan, NvSw, NV_SW);
- if (ret)
- return ret;
-
- /* we leave subchannel empty for nvc0 */
-- if (dev_priv->card_type < NV_C0) {
-- ret = RING_SPACE(chan, 2);
-- if (ret)
-- return ret;
-- BEGIN_RING(chan, NvSubSw, 0, 1);
-- OUT_RING(chan, NvSw);
-- }
-+ ret = RING_SPACE(chan, 2);
-+ if (ret)
-+ return ret;
-+ BEGIN_RING(chan, NvSubSw, 0, 1);
-+ OUT_RING(chan, NvSw);
-
- /* Create a DMA object for the shared cross-channel sync area. */
-- if (USE_SEMA(dev)) {
-+ if (USE_SEMA(dev) && dev_priv->chipset < 0x84) {
- struct ttm_mem_reg *mem = &dev_priv->fence.bo->bo.mem;
-
- ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_IN_MEMORY,
-@@ -484,14 +531,20 @@ nouveau_fence_channel_init(struct nouveau_channel *chan)
- return ret;
- BEGIN_RING(chan, NvSubSw, NV_SW_DMA_SEMAPHORE, 1);
- OUT_RING(chan, NvSema);
-+ } else {
-+ ret = RING_SPACE(chan, 2);
-+ if (ret)
-+ return ret;
-+ BEGIN_RING(chan, NvSubSw, NV_SW_DMA_SEMAPHORE, 1);
-+ OUT_RING (chan, chan->vram_handle); /* whole VM */
- }
-
- FIRE_RING(chan);
-
-+out_initialised:
- INIT_LIST_HEAD(&chan->fence.pending);
- spin_lock_init(&chan->fence.lock);
- atomic_set(&chan->fence.last_sequence_irq, 0);
--
- return 0;
- }
-
-@@ -519,11 +572,12 @@ int
- nouveau_fence_init(struct drm_device *dev)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ int size = (dev_priv->chipset < 0x84) ? 4096 : 16384;
- int ret;
-
- /* Create a shared VRAM heap for cross-channel sync. */
- if (USE_SEMA(dev)) {
-- ret = nouveau_bo_new(dev, NULL, 4096, 0, TTM_PL_FLAG_VRAM,
-+ ret = nouveau_bo_new(dev, NULL, size, 0, TTM_PL_FLAG_VRAM,
- 0, 0, false, true, &dev_priv->fence.bo);
- if (ret)
- return ret;
-diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
-index b0fb9bd..5b769eb 100644
---- a/drivers/gpu/drm/nouveau/nouveau_mem.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
-@@ -393,11 +393,17 @@ nouveau_mem_vram_init(struct drm_device *dev)
- struct ttm_bo_device *bdev = &dev_priv->ttm.bdev;
- int ret, dma_bits;
-
-- if (dev_priv->card_type >= NV_50 &&
-- pci_dma_supported(dev->pdev, DMA_BIT_MASK(40)))
-- dma_bits = 40;
-- else
-- dma_bits = 32;
-+ dma_bits = 32;
-+ if (dev_priv->card_type >= NV_50) {
-+ if (pci_dma_supported(dev->pdev, DMA_BIT_MASK(40)))
-+ dma_bits = 40;
-+ } else
-+ if (drm_device_is_pcie(dev) &&
-+ dev_priv->chipset != 0x40 &&
-+ dev_priv->chipset != 0x45) {
-+ if (pci_dma_supported(dev->pdev, DMA_BIT_MASK(39)))
-+ dma_bits = 39;
-+ }
-
- ret = pci_set_dma_mask(dev->pdev, DMA_BIT_MASK(dma_bits));
- if (ret)
-@@ -419,14 +425,32 @@ nouveau_mem_vram_init(struct drm_device *dev)
- }
-
- /* reserve space at end of VRAM for PRAMIN */
-- if (dev_priv->chipset == 0x40 || dev_priv->chipset == 0x47 ||
-- dev_priv->chipset == 0x49 || dev_priv->chipset == 0x4b)
-- dev_priv->ramin_rsvd_vram = (2 * 1024 * 1024);
-- else
-- if (dev_priv->card_type >= NV_40)
-- dev_priv->ramin_rsvd_vram = (1 * 1024 * 1024);
-- else
-- dev_priv->ramin_rsvd_vram = (512 * 1024);
-+ if (dev_priv->card_type >= NV_50) {
-+ dev_priv->ramin_rsvd_vram = 1 * 1024 * 1024;
-+ } else
-+ if (dev_priv->card_type >= NV_40) {
-+ u32 vs = hweight8((nv_rd32(dev, 0x001540) & 0x0000ff00) >> 8);
-+ u32 rsvd;
-+
-+ /* estimate grctx size, the magics come from nv40_grctx.c */
-+ if (dev_priv->chipset == 0x40) rsvd = 0x6aa0 * vs;
-+ else if (dev_priv->chipset < 0x43) rsvd = 0x4f00 * vs;
-+ else if (nv44_graph_class(dev)) rsvd = 0x4980 * vs;
-+ else rsvd = 0x4a40 * vs;
-+ rsvd += 16 * 1024;
-+ rsvd *= dev_priv->engine.fifo.channels;
-+
-+ /* pciegart table */
-+ if (drm_device_is_pcie(dev))
-+ rsvd += 512 * 1024;
-+
-+ /* object storage */
-+ rsvd += 512 * 1024;
-+
-+ dev_priv->ramin_rsvd_vram = round_up(rsvd, 4096);
-+ } else {
-+ dev_priv->ramin_rsvd_vram = 512 * 1024;
-+ }
-
- ret = dev_priv->engine.vram.init(dev);
- if (ret)
-diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c
-index 30b6544..3c12461 100644
---- a/drivers/gpu/drm/nouveau/nouveau_object.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_object.c
-@@ -490,16 +490,22 @@ nouveau_gpuobj_dma_new(struct nouveau_channel *chan, int class, u64 base,
- }
-
- if (target == NV_MEM_TARGET_GART) {
-- if (dev_priv->gart_info.type == NOUVEAU_GART_AGP) {
-- target = NV_MEM_TARGET_PCI_NOSNOOP;
-- base += dev_priv->gart_info.aper_base;
-- } else
-- if (base != 0) {
-- base = nouveau_sgdma_get_physical(dev, base);
-+ struct nouveau_gpuobj *gart = dev_priv->gart_info.sg_ctxdma;
-+
-+ if (dev_priv->gart_info.type == NOUVEAU_GART_PDMA) {
-+ if (base == 0) {
-+ nouveau_gpuobj_ref(gart, pobj);
-+ return 0;
-+ }
-+
-+ base = nouveau_sgdma_get_physical(dev, base);
- target = NV_MEM_TARGET_PCI;
- } else {
-- nouveau_gpuobj_ref(dev_priv->gart_info.sg_ctxdma, pobj);
-- return 0;
-+ base += dev_priv->gart_info.aper_base;
-+ if (dev_priv->gart_info.type == NOUVEAU_GART_AGP)
-+ target = NV_MEM_TARGET_PCI_NOSNOOP;
-+ else
-+ target = NV_MEM_TARGET_PCI;
- }
- }
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
-index 9a250eb..a26383b 100644
---- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
-@@ -74,8 +74,24 @@ nouveau_sgdma_clear(struct ttm_backend *be)
- }
- }
-
-+static void
-+nouveau_sgdma_destroy(struct ttm_backend *be)
-+{
-+ struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
-+
-+ if (be) {
-+ NV_DEBUG(nvbe->dev, "\n");
-+
-+ if (nvbe) {
-+ if (nvbe->pages)
-+ be->func->clear(be);
-+ kfree(nvbe);
-+ }
-+ }
-+}
-+
- static int
--nouveau_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem)
-+nv04_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem)
- {
- struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
- struct drm_device *dev = nvbe->dev;
-@@ -102,7 +118,7 @@ nouveau_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem)
- }
-
- static int
--nouveau_sgdma_unbind(struct ttm_backend *be)
-+nv04_sgdma_unbind(struct ttm_backend *be)
- {
- struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
- struct drm_device *dev = nvbe->dev;
-@@ -125,23 +141,222 @@ nouveau_sgdma_unbind(struct ttm_backend *be)
- return 0;
- }
-
-+static struct ttm_backend_func nv04_sgdma_backend = {
-+ .populate = nouveau_sgdma_populate,
-+ .clear = nouveau_sgdma_clear,
-+ .bind = nv04_sgdma_bind,
-+ .unbind = nv04_sgdma_unbind,
-+ .destroy = nouveau_sgdma_destroy
-+};
-+
- static void
--nouveau_sgdma_destroy(struct ttm_backend *be)
-+nv41_sgdma_flush(struct nouveau_sgdma_be *nvbe)
-+{
-+ struct drm_device *dev = nvbe->dev;
-+
-+ nv_wr32(dev, 0x100810, 0x00000022);
-+ if (!nv_wait(dev, 0x100810, 0x00000100, 0x00000100))
-+ NV_ERROR(dev, "vm flush timeout: 0x%08x\n",
-+ nv_rd32(dev, 0x100810));
-+ nv_wr32(dev, 0x100810, 0x00000000);
-+}
-+
-+static int
-+nv41_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem)
- {
- struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
-+ struct drm_nouveau_private *dev_priv = nvbe->dev->dev_private;
-+ struct nouveau_gpuobj *pgt = dev_priv->gart_info.sg_ctxdma;
-+ dma_addr_t *list = nvbe->pages;
-+ u32 pte = mem->start << 2;
-+ u32 cnt = nvbe->nr_pages;
-
-- if (be) {
-- NV_DEBUG(nvbe->dev, "\n");
-+ nvbe->offset = mem->start << PAGE_SHIFT;
-
-- if (nvbe) {
-- if (nvbe->pages)
-- be->func->clear(be);
-- kfree(nvbe);
-+ while (cnt--) {
-+ nv_wo32(pgt, pte, (*list++ >> 7) | 1);
-+ pte += 4;
-+ }
-+
-+ nv41_sgdma_flush(nvbe);
-+ nvbe->bound = true;
-+ return 0;
-+}
-+
-+static int
-+nv41_sgdma_unbind(struct ttm_backend *be)
-+{
-+ struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
-+ struct drm_nouveau_private *dev_priv = nvbe->dev->dev_private;
-+ struct nouveau_gpuobj *pgt = dev_priv->gart_info.sg_ctxdma;
-+ u32 pte = (nvbe->offset >> 12) << 2;
-+ u32 cnt = nvbe->nr_pages;
-+
-+ while (cnt--) {
-+ nv_wo32(pgt, pte, 0x00000000);
-+ pte += 4;
-+ }
-+
-+ nv41_sgdma_flush(nvbe);
-+ nvbe->bound = false;
-+ return 0;
-+}
-+
-+static struct ttm_backend_func nv41_sgdma_backend = {
-+ .populate = nouveau_sgdma_populate,
-+ .clear = nouveau_sgdma_clear,
-+ .bind = nv41_sgdma_bind,
-+ .unbind = nv41_sgdma_unbind,
-+ .destroy = nouveau_sgdma_destroy
-+};
-+
-+static void
-+nv44_sgdma_flush(struct nouveau_sgdma_be *nvbe)
-+{
-+ struct drm_device *dev = nvbe->dev;
-+
-+ nv_wr32(dev, 0x100814, (nvbe->nr_pages - 1) << 12);
-+ nv_wr32(dev, 0x100808, nvbe->offset | 0x20);
-+ if (!nv_wait(dev, 0x100808, 0x00000001, 0x00000001))
-+ NV_ERROR(dev, "gart flush timeout: 0x%08x\n",
-+ nv_rd32(dev, 0x100808));
-+ nv_wr32(dev, 0x100808, 0x00000000);
-+}
-+
-+static void
-+nv44_sgdma_fill(struct nouveau_gpuobj *pgt, dma_addr_t *list, u32 base, u32 cnt)
-+{
-+ struct drm_nouveau_private *dev_priv = pgt->dev->dev_private;
-+ dma_addr_t dummy = dev_priv->gart_info.dummy.addr;
-+ u32 pte, tmp[4];
-+
-+ pte = base >> 2;
-+ base &= ~0x0000000f;
-+
-+ tmp[0] = nv_ro32(pgt, base + 0x0);
-+ tmp[1] = nv_ro32(pgt, base + 0x4);
-+ tmp[2] = nv_ro32(pgt, base + 0x8);
-+ tmp[3] = nv_ro32(pgt, base + 0xc);
-+ while (cnt--) {
-+ u32 addr = list ? (*list++ >> 12) : (dummy >> 12);
-+ switch (pte++ & 0x3) {
-+ case 0:
-+ tmp[0] &= ~0x07ffffff;
-+ tmp[0] |= addr;
-+ break;
-+ case 1:
-+ tmp[0] &= ~0xf8000000;
-+ tmp[0] |= addr << 27;
-+ tmp[1] &= ~0x003fffff;
-+ tmp[1] |= addr >> 5;
-+ break;
-+ case 2:
-+ tmp[1] &= ~0xffc00000;
-+ tmp[1] |= addr << 22;
-+ tmp[2] &= ~0x0001ffff;
-+ tmp[2] |= addr >> 10;
-+ break;
-+ case 3:
-+ tmp[2] &= ~0xfffe0000;
-+ tmp[2] |= addr << 17;
-+ tmp[3] &= ~0x00000fff;
-+ tmp[3] |= addr >> 15;
-+ break;
- }
- }
-+
-+ tmp[3] |= 0x40000000;
-+
-+ nv_wo32(pgt, base + 0x0, tmp[0]);
-+ nv_wo32(pgt, base + 0x4, tmp[1]);
-+ nv_wo32(pgt, base + 0x8, tmp[2]);
-+ nv_wo32(pgt, base + 0xc, tmp[3]);
- }
-
- static int
-+nv44_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem)
-+{
-+ struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
-+ struct drm_nouveau_private *dev_priv = nvbe->dev->dev_private;
-+ struct nouveau_gpuobj *pgt = dev_priv->gart_info.sg_ctxdma;
-+ dma_addr_t *list = nvbe->pages;
-+ u32 pte = mem->start << 2, tmp[4];
-+ u32 cnt = nvbe->nr_pages;
-+ int i;
-+
-+ nvbe->offset = mem->start << PAGE_SHIFT;
-+
-+ if (pte & 0x0000000c) {
-+ u32 max = 4 - ((pte >> 2) & 0x3);
-+ u32 part = (cnt > max) ? max : cnt;
-+ nv44_sgdma_fill(pgt, list, pte, part);
-+ pte += (part << 2);
-+ list += part;
-+ cnt -= part;
-+ }
-+
-+ while (cnt >= 4) {
-+ for (i = 0; i < 4; i++)
-+ tmp[i] = *list++ >> 12;
-+ nv_wo32(pgt, pte + 0x0, tmp[0] >> 0 | tmp[1] << 27);
-+ nv_wo32(pgt, pte + 0x4, tmp[1] >> 5 | tmp[2] << 22);
-+ nv_wo32(pgt, pte + 0x8, tmp[2] >> 10 | tmp[3] << 17);
-+ nv_wo32(pgt, pte + 0xc, tmp[3] >> 15 | 0x40000000);
-+ pte += 0x10;
-+ cnt -= 4;
-+ }
-+
-+ if (cnt)
-+ nv44_sgdma_fill(pgt, list, pte, cnt);
-+
-+ nv44_sgdma_flush(nvbe);
-+ nvbe->bound = true;
-+ return 0;
-+}
-+
-+static int
-+nv44_sgdma_unbind(struct ttm_backend *be)
-+{
-+ struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
-+ struct drm_nouveau_private *dev_priv = nvbe->dev->dev_private;
-+ struct nouveau_gpuobj *pgt = dev_priv->gart_info.sg_ctxdma;
-+ u32 pte = (nvbe->offset >> 12) << 2;
-+ u32 cnt = nvbe->nr_pages;
-+
-+ if (pte & 0x0000000c) {
-+ u32 max = 4 - ((pte >> 2) & 0x3);
-+ u32 part = (cnt > max) ? max : cnt;
-+ nv44_sgdma_fill(pgt, NULL, pte, part);
-+ pte += (part << 2);
-+ cnt -= part;
-+ }
-+
-+ while (cnt >= 4) {
-+ nv_wo32(pgt, pte + 0x0, 0x00000000);
-+ nv_wo32(pgt, pte + 0x4, 0x00000000);
-+ nv_wo32(pgt, pte + 0x8, 0x00000000);
-+ nv_wo32(pgt, pte + 0xc, 0x00000000);
-+ pte += 0x10;
-+ cnt -= 4;
-+ }
-+
-+ if (cnt)
-+ nv44_sgdma_fill(pgt, NULL, pte, cnt);
-+
-+ nv44_sgdma_flush(nvbe);
-+ nvbe->bound = false;
-+ return 0;
-+}
-+
-+static struct ttm_backend_func nv44_sgdma_backend = {
-+ .populate = nouveau_sgdma_populate,
-+ .clear = nouveau_sgdma_clear,
-+ .bind = nv44_sgdma_bind,
-+ .unbind = nv44_sgdma_unbind,
-+ .destroy = nouveau_sgdma_destroy
-+};
-+
-+static int
- nv50_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem)
- {
- struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
-@@ -170,14 +385,6 @@ nv50_sgdma_unbind(struct ttm_backend *be)
- return 0;
- }
-
--static struct ttm_backend_func nouveau_sgdma_backend = {
-- .populate = nouveau_sgdma_populate,
-- .clear = nouveau_sgdma_clear,
-- .bind = nouveau_sgdma_bind,
-- .unbind = nouveau_sgdma_unbind,
-- .destroy = nouveau_sgdma_destroy
--};
--
- static struct ttm_backend_func nv50_sgdma_backend = {
- .populate = nouveau_sgdma_populate,
- .clear = nouveau_sgdma_clear,
-@@ -198,10 +405,7 @@ nouveau_sgdma_init_ttm(struct drm_device *dev)
-
- nvbe->dev = dev;
-
-- if (dev_priv->card_type < NV_50)
-- nvbe->backend.func = &nouveau_sgdma_backend;
-- else
-- nvbe->backend.func = &nv50_sgdma_backend;
-+ nvbe->backend.func = dev_priv->gart_info.func;
- return &nvbe->backend;
- }
-
-@@ -210,21 +414,70 @@ nouveau_sgdma_init(struct drm_device *dev)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
- struct nouveau_gpuobj *gpuobj = NULL;
-- uint32_t aper_size, obj_size;
-- int i, ret;
-+ u32 aper_size, align;
-+ int ret;
-+
-+ if (dev_priv->card_type >= NV_50 || drm_device_is_pcie(dev))
-+ aper_size = 512 * 1024 * 1024;
-+ else
-+ aper_size = 64 * 1024 * 1024;
-+
-+ /* Dear NVIDIA, NV44+ would like proper present bits in PTEs for
-+ * christmas. The cards before it have them, the cards after
-+ * it have them, why is NV44 so unloved?
-+ */
-+ dev_priv->gart_info.dummy.page = alloc_page(GFP_DMA32 | GFP_KERNEL);
-+ if (!dev_priv->gart_info.dummy.page)
-+ return -ENOMEM;
-+
-+ dev_priv->gart_info.dummy.addr =
-+ pci_map_page(dev->pdev, dev_priv->gart_info.dummy.page,
-+ 0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-+ if (pci_dma_mapping_error(dev->pdev, dev_priv->gart_info.dummy.addr)) {
-+ NV_ERROR(dev, "error mapping dummy page\n");
-+ __free_page(dev_priv->gart_info.dummy.page);
-+ dev_priv->gart_info.dummy.page = NULL;
-+ return -ENOMEM;
-+ }
-
-- if (dev_priv->card_type < NV_50) {
-- if(dev_priv->ramin_rsvd_vram < 2 * 1024 * 1024)
-- aper_size = 64 * 1024 * 1024;
-- else
-- aper_size = 512 * 1024 * 1024;
-+ if (dev_priv->card_type >= NV_50) {
-+ ret = nouveau_vm_get(dev_priv->chan_vm, aper_size,
-+ 12, NV_MEM_ACCESS_RW,
-+ &dev_priv->gart_info.vma);
-+ if (ret)
-+ return ret;
-+
-+ dev_priv->gart_info.aper_base = dev_priv->gart_info.vma.offset;
-+ dev_priv->gart_info.aper_size = aper_size;
-+ dev_priv->gart_info.type = NOUVEAU_GART_HW;
-+ dev_priv->gart_info.func = &nv50_sgdma_backend;
-+ } else
-+ if (0 && drm_device_is_pcie(dev) &&
-+ dev_priv->chipset != 0x40 && dev_priv->chipset != 0x45) {
-+ if (nv44_graph_class(dev)) {
-+ dev_priv->gart_info.func = &nv44_sgdma_backend;
-+ align = 512 * 1024;
-+ } else {
-+ dev_priv->gart_info.func = &nv41_sgdma_backend;
-+ align = 16;
-+ }
-
-- obj_size = (aper_size >> NV_CTXDMA_PAGE_SHIFT) * 4;
-- obj_size += 8; /* ctxdma header */
-+ ret = nouveau_gpuobj_new(dev, NULL, aper_size / 1024, align,
-+ NVOBJ_FLAG_ZERO_ALLOC |
-+ NVOBJ_FLAG_ZERO_FREE, &gpuobj);
-+ if (ret) {
-+ NV_ERROR(dev, "Error creating sgdma object: %d\n", ret);
-+ return ret;
-+ }
-
-- ret = nouveau_gpuobj_new(dev, NULL, obj_size, 16,
-- NVOBJ_FLAG_ZERO_ALLOC |
-- NVOBJ_FLAG_ZERO_FREE, &gpuobj);
-+ dev_priv->gart_info.sg_ctxdma = gpuobj;
-+ dev_priv->gart_info.aper_base = 0;
-+ dev_priv->gart_info.aper_size = aper_size;
-+ dev_priv->gart_info.type = NOUVEAU_GART_HW;
-+ } else {
-+ ret = nouveau_gpuobj_new(dev, NULL, (aper_size / 1024) + 8, 16,
-+ NVOBJ_FLAG_ZERO_ALLOC |
-+ NVOBJ_FLAG_ZERO_FREE, &gpuobj);
- if (ret) {
- NV_ERROR(dev, "Error creating sgdma object: %d\n", ret);
- return ret;
-@@ -236,25 +489,14 @@ nouveau_sgdma_init(struct drm_device *dev)
- (0 << 14) /* RW */ |
- (2 << 16) /* PCI */);
- nv_wo32(gpuobj, 4, aper_size - 1);
-- for (i = 2; i < 2 + (aper_size >> 12); i++)
-- nv_wo32(gpuobj, i * 4, 0x00000000);
-
- dev_priv->gart_info.sg_ctxdma = gpuobj;
- dev_priv->gart_info.aper_base = 0;
- dev_priv->gart_info.aper_size = aper_size;
-- } else
-- if (dev_priv->chan_vm) {
-- ret = nouveau_vm_get(dev_priv->chan_vm, 512 * 1024 * 1024,
-- 12, NV_MEM_ACCESS_RW,
-- &dev_priv->gart_info.vma);
-- if (ret)
-- return ret;
--
-- dev_priv->gart_info.aper_base = dev_priv->gart_info.vma.offset;
-- dev_priv->gart_info.aper_size = 512 * 1024 * 1024;
-+ dev_priv->gart_info.type = NOUVEAU_GART_PDMA;
-+ dev_priv->gart_info.func = &nv04_sgdma_backend;
- }
-
-- dev_priv->gart_info.type = NOUVEAU_GART_SGDMA;
- return 0;
- }
-
-@@ -265,6 +507,13 @@ nouveau_sgdma_takedown(struct drm_device *dev)
-
- nouveau_gpuobj_ref(NULL, &dev_priv->gart_info.sg_ctxdma);
- nouveau_vm_put(&dev_priv->gart_info.vma);
-+
-+ if (dev_priv->gart_info.dummy.page) {
-+ pci_unmap_page(dev->pdev, dev_priv->gart_info.dummy.addr,
-+ PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-+ __free_page(dev_priv->gart_info.dummy.page);
-+ dev_priv->gart_info.dummy.page = NULL;
-+ }
- }
-
- uint32_t
-diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
-index a54fc43..916505d 100644
---- a/drivers/gpu/drm/nouveau/nouveau_state.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
-@@ -929,12 +929,6 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
- NV_DEBUG(dev, "vendor: 0x%X device: 0x%X class: 0x%X\n",
- dev->pci_vendor, dev->pci_device, dev->pdev->class);
-
-- dev_priv->wq = create_workqueue("nouveau");
-- if (!dev_priv->wq) {
-- ret = -EINVAL;
-- goto err_priv;
-- }
--
- /* resource 0 is mmio regs */
- /* resource 1 is linear FB */
- /* resource 2 is RAMIN (mmio regs + 0x1000000) */
-@@ -947,7 +941,7 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
- NV_ERROR(dev, "Unable to initialize the mmio mapping. "
- "Please report your setup to " DRIVER_EMAIL "\n");
- ret = -EINVAL;
-- goto err_wq;
-+ goto err_priv;
- }
- NV_DEBUG(dev, "regs mapped ok at 0x%llx\n",
- (unsigned long long)mmio_start_offs);
-@@ -1054,8 +1048,6 @@ err_ramin:
- iounmap(dev_priv->ramin);
- err_mmio:
- iounmap(dev_priv->mmio);
--err_wq:
-- destroy_workqueue(dev_priv->wq);
- err_priv:
- kfree(dev_priv);
- dev->dev_private = NULL;
-diff --git a/drivers/gpu/drm/nouveau/nouveau_temp.c b/drivers/gpu/drm/nouveau/nouveau_temp.c
-index 8d9968e..649b041 100644
---- a/drivers/gpu/drm/nouveau/nouveau_temp.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_temp.c
-@@ -239,11 +239,9 @@ static bool
- probe_monitoring_device(struct nouveau_i2c_chan *i2c,
- struct i2c_board_info *info)
- {
-- char modalias[16] = "i2c:";
- struct i2c_client *client;
-
-- strlcat(modalias, info->type, sizeof(modalias));
-- request_module(modalias);
-+ request_module("%s%s", I2C_MODULE_PREFIX, info->type);
-
- client = i2c_new_device(&i2c->adapter, info);
- if (!client)
-diff --git a/drivers/gpu/drm/nouveau/nouveau_util.c b/drivers/gpu/drm/nouveau/nouveau_util.c
-index fbe0fb1..e51b515 100644
---- a/drivers/gpu/drm/nouveau/nouveau_util.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_util.c
-@@ -47,18 +47,27 @@ nouveau_bitfield_print(const struct nouveau_bitfield *bf, u32 value)
- printk(" (unknown bits 0x%08x)", value);
- }
-
--void
--nouveau_enum_print(const struct nouveau_enum *en, u32 value)
-+const struct nouveau_enum *
-+nouveau_enum_find(const struct nouveau_enum *en, u32 value)
- {
- while (en->name) {
-- if (value == en->value) {
-- printk("%s", en->name);
-- return;
-- }
--
-+ if (en->value == value)
-+ return en;
- en++;
- }
-
-+ return NULL;
-+}
-+
-+void
-+nouveau_enum_print(const struct nouveau_enum *en, u32 value)
-+{
-+ en = nouveau_enum_find(en, value);
-+ if (en) {
-+ printk("%s", en->name);
-+ return;
-+ }
-+
- printk("(unknown enum 0x%08x)", value);
- }
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_util.h b/drivers/gpu/drm/nouveau/nouveau_util.h
-index d9ceaea..b97719f 100644
---- a/drivers/gpu/drm/nouveau/nouveau_util.h
-+++ b/drivers/gpu/drm/nouveau/nouveau_util.h
-@@ -36,10 +36,14 @@ struct nouveau_bitfield {
- struct nouveau_enum {
- u32 value;
- const char *name;
-+ void *data;
- };
-
- void nouveau_bitfield_print(const struct nouveau_bitfield *, u32 value);
- void nouveau_enum_print(const struct nouveau_enum *, u32 value);
-+const struct nouveau_enum *
-+nouveau_enum_find(const struct nouveau_enum *, u32 value);
-+
- int nouveau_ratelimit(void);
-
- #endif
-diff --git a/drivers/gpu/drm/nouveau/nouveau_vm.c b/drivers/gpu/drm/nouveau/nouveau_vm.c
-index 97d82ae..b4658f7 100644
---- a/drivers/gpu/drm/nouveau/nouveau_vm.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_vm.c
-@@ -311,18 +311,7 @@ nouveau_vm_new(struct drm_device *dev, u64 offset, u64 length, u64 mm_offset,
- vm->spg_shift = 12;
- vm->lpg_shift = 17;
- pgt_bits = 27;
--
-- /* Should be 4096 everywhere, this is a hack that's
-- * currently necessary to avoid an elusive bug that
-- * causes corruption when mixing small/large pages
-- */
-- if (length < (1ULL << 40))
-- block = 4096;
-- else {
-- block = (1 << pgt_bits);
-- if (length < block)
-- block = length;
-- }
-+ block = 4096;
- } else {
- kfree(vm);
- return -ENOSYS;
-diff --git a/drivers/gpu/drm/nouveau/nv04_fifo.c b/drivers/gpu/drm/nouveau/nv04_fifo.c
-index f89d104..db465a3 100644
---- a/drivers/gpu/drm/nouveau/nv04_fifo.c
-+++ b/drivers/gpu/drm/nouveau/nv04_fifo.c
-@@ -379,6 +379,15 @@ out:
- return handled;
- }
-
-+static const char *nv_dma_state_err(u32 state)
-+{
-+ static const char * const desc[] = {
-+ "NONE", "CALL_SUBR_ACTIVE", "INVALID_MTHD", "RET_SUBR_INACTIVE",
-+ "INVALID_CMD", "IB_EMPTY"/* NV50+ */, "MEM_FAULT", "UNK"
-+ };
-+ return desc[(state >> 29) & 0x7];
-+}
-+
- void
- nv04_fifo_isr(struct drm_device *dev)
- {
-@@ -460,9 +469,10 @@ nv04_fifo_isr(struct drm_device *dev)
- if (nouveau_ratelimit())
- NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d Get 0x%02x%08x "
- "Put 0x%02x%08x IbGet 0x%08x IbPut 0x%08x "
-- "State 0x%08x Push 0x%08x\n",
-+ "State 0x%08x (err: %s) Push 0x%08x\n",
- chid, ho_get, dma_get, ho_put,
- dma_put, ib_get, ib_put, state,
-+ nv_dma_state_err(state),
- push);
-
- /* METHOD_COUNT, in DMA_STATE on earlier chipsets */
-@@ -476,8 +486,9 @@ nv04_fifo_isr(struct drm_device *dev)
- }
- } else {
- NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d Get 0x%08x "
-- "Put 0x%08x State 0x%08x Push 0x%08x\n",
-- chid, dma_get, dma_put, state, push);
-+ "Put 0x%08x State 0x%08x (err: %s) Push 0x%08x\n",
-+ chid, dma_get, dma_put, state,
-+ nv_dma_state_err(state), push);
-
- if (dma_get != dma_put)
- nv_wr32(dev, 0x003244, dma_put);
-@@ -505,7 +516,7 @@ nv04_fifo_isr(struct drm_device *dev)
-
- if (dev_priv->card_type == NV_50) {
- if (status & 0x00000010) {
-- nv50_fb_vm_trap(dev, 1, "PFIFO_BAR_FAULT");
-+ nv50_fb_vm_trap(dev, nouveau_ratelimit());
- status &= ~0x00000010;
- nv_wr32(dev, 0x002100, 0x00000010);
- }
-diff --git a/drivers/gpu/drm/nouveau/nv40_fb.c b/drivers/gpu/drm/nouveau/nv40_fb.c
-index f3d9c05..f0ac2a7 100644
---- a/drivers/gpu/drm/nouveau/nv40_fb.c
-+++ b/drivers/gpu/drm/nouveau/nv40_fb.c
-@@ -24,6 +24,53 @@ nv40_fb_set_tile_region(struct drm_device *dev, int i)
- }
- }
-
-+static void
-+nv40_fb_init_gart(struct drm_device *dev)
-+{
-+ struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ struct nouveau_gpuobj *gart = dev_priv->gart_info.sg_ctxdma;
-+
-+ if (dev_priv->gart_info.type != NOUVEAU_GART_HW) {
-+ nv_wr32(dev, 0x100800, 0x00000001);
-+ return;
-+ }
-+
-+ nv_wr32(dev, 0x100800, gart->pinst | 0x00000002);
-+ nv_mask(dev, 0x10008c, 0x00000100, 0x00000100);
-+ nv_wr32(dev, 0x100820, 0x00000000);
-+}
-+
-+static void
-+nv44_fb_init_gart(struct drm_device *dev)
-+{
-+ struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ struct nouveau_gpuobj *gart = dev_priv->gart_info.sg_ctxdma;
-+ u32 vinst;
-+
-+ if (dev_priv->gart_info.type != NOUVEAU_GART_HW) {
-+ nv_wr32(dev, 0x100850, 0x80000000);
-+ nv_wr32(dev, 0x100800, 0x00000001);
-+ return;
-+ }
-+
-+ /* calculate vram address of this PRAMIN block, object
-+ * must be allocated on 512KiB alignment, and not exceed
-+ * a total size of 512KiB for this to work correctly
-+ */
-+ vinst = nv_rd32(dev, 0x10020c);
-+ vinst -= ((gart->pinst >> 19) + 1) << 19;
-+
-+ nv_wr32(dev, 0x100850, 0x80000000);
-+ nv_wr32(dev, 0x100818, dev_priv->gart_info.dummy.addr);
-+
-+ nv_wr32(dev, 0x100804, dev_priv->gart_info.aper_size);
-+ nv_wr32(dev, 0x100850, 0x00008000);
-+ nv_mask(dev, 0x10008c, 0x00000200, 0x00000200);
-+ nv_wr32(dev, 0x100820, 0x00000000);
-+ nv_wr32(dev, 0x10082c, 0x00000001);
-+ nv_wr32(dev, 0x100800, vinst | 0x00000010);
-+}
-+
- int
- nv40_fb_init(struct drm_device *dev)
- {
-@@ -32,12 +79,12 @@ nv40_fb_init(struct drm_device *dev)
- uint32_t tmp;
- int i;
-
-- /* This is strictly a NV4x register (don't know about NV5x). */
-- /* The blob sets these to all kinds of values, and they mess up our setup. */
-- /* I got value 0x52802 instead. For some cards the blob even sets it back to 0x1. */
-- /* Note: the blob doesn't read this value, so i'm pretty sure this is safe for all cards. */
-- /* Any idea what this is? */
-- nv_wr32(dev, NV40_PFB_UNK_800, 0x1);
-+ if (dev_priv->chipset != 0x40 && dev_priv->chipset != 0x45) {
-+ if (nv44_graph_class(dev))
-+ nv44_fb_init_gart(dev);
-+ else
-+ nv40_fb_init_gart(dev);
-+ }
-
- switch (dev_priv->chipset) {
- case 0x40:
-diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
-index 7cc94ed..a804a35 100644
---- a/drivers/gpu/drm/nouveau/nv50_display.c
-+++ b/drivers/gpu/drm/nouveau/nv50_display.c
-@@ -345,12 +345,15 @@ int nv50_display_create(struct drm_device *dev)
- void
- nv50_display_destroy(struct drm_device *dev)
- {
-+ struct drm_nouveau_private *dev_priv = dev->dev_private;
-+
- NV_DEBUG_KMS(dev, "\n");
-
- drm_mode_config_cleanup(dev);
-
- nv50_display_disable(dev);
- nouveau_irq_unregister(dev, 26);
-+ flush_work_sync(&dev_priv->irq_work);
- }
-
- static u16
-@@ -587,7 +590,7 @@ static void
- nv50_display_unk20_handler(struct drm_device *dev)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
-- u32 unk30 = nv_rd32(dev, 0x610030), tmp, pclk, script, mc;
-+ u32 unk30 = nv_rd32(dev, 0x610030), tmp, pclk, script, mc = 0;
- struct dcb_entry *dcb;
- int i, crtc, or, type = OUTPUT_ANY;
-
-@@ -836,7 +839,7 @@ nv50_display_isr(struct drm_device *dev)
- if (clock) {
- nv_wr32(dev, NV03_PMC_INTR_EN_0, 0);
- if (!work_pending(&dev_priv->irq_work))
-- queue_work(dev_priv->wq, &dev_priv->irq_work);
-+ schedule_work(&dev_priv->irq_work);
- delayed |= clock;
- intr1 &= ~clock;
- }
-diff --git a/drivers/gpu/drm/nouveau/nv50_fb.c b/drivers/gpu/drm/nouveau/nv50_fb.c
-index 50290de..efc8cd4 100644
---- a/drivers/gpu/drm/nouveau/nv50_fb.c
-+++ b/drivers/gpu/drm/nouveau/nv50_fb.c
-@@ -95,12 +95,109 @@ nv50_fb_takedown(struct drm_device *dev)
- kfree(priv);
- }
-
-+static struct nouveau_enum vm_dispatch_subclients[] = {
-+ { 0x00000000, "GRCTX", NULL },
-+ { 0x00000001, "NOTIFY", NULL },
-+ { 0x00000002, "QUERY", NULL },
-+ { 0x00000003, "COND", NULL },
-+ { 0x00000004, "M2M_IN", NULL },
-+ { 0x00000005, "M2M_OUT", NULL },
-+ { 0x00000006, "M2M_NOTIFY", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_ccache_subclients[] = {
-+ { 0x00000000, "CB", NULL },
-+ { 0x00000001, "TIC", NULL },
-+ { 0x00000002, "TSC", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_prop_subclients[] = {
-+ { 0x00000000, "RT0", NULL },
-+ { 0x00000001, "RT1", NULL },
-+ { 0x00000002, "RT2", NULL },
-+ { 0x00000003, "RT3", NULL },
-+ { 0x00000004, "RT4", NULL },
-+ { 0x00000005, "RT5", NULL },
-+ { 0x00000006, "RT6", NULL },
-+ { 0x00000007, "RT7", NULL },
-+ { 0x00000008, "ZETA", NULL },
-+ { 0x00000009, "LOCAL", NULL },
-+ { 0x0000000a, "GLOBAL", NULL },
-+ { 0x0000000b, "STACK", NULL },
-+ { 0x0000000c, "DST2D", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_pfifo_subclients[] = {
-+ { 0x00000000, "PUSHBUF", NULL },
-+ { 0x00000001, "SEMAPHORE", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_bar_subclients[] = {
-+ { 0x00000000, "FB", NULL },
-+ { 0x00000001, "IN", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_client[] = {
-+ { 0x00000000, "STRMOUT", NULL },
-+ { 0x00000003, "DISPATCH", vm_dispatch_subclients },
-+ { 0x00000004, "PFIFO_WRITE", NULL },
-+ { 0x00000005, "CCACHE", vm_ccache_subclients },
-+ { 0x00000006, "PPPP", NULL },
-+ { 0x00000007, "CLIPID", NULL },
-+ { 0x00000008, "PFIFO_READ", NULL },
-+ { 0x00000009, "VFETCH", NULL },
-+ { 0x0000000a, "TEXTURE", NULL },
-+ { 0x0000000b, "PROP", vm_prop_subclients },
-+ { 0x0000000c, "PVP", NULL },
-+ { 0x0000000d, "PBSP", NULL },
-+ { 0x0000000e, "PCRYPT", NULL },
-+ { 0x0000000f, "PCOUNTER", NULL },
-+ { 0x00000011, "PDAEMON", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_engine[] = {
-+ { 0x00000000, "PGRAPH", NULL },
-+ { 0x00000001, "PVP", NULL },
-+ { 0x00000004, "PEEPHOLE", NULL },
-+ { 0x00000005, "PFIFO", vm_pfifo_subclients },
-+ { 0x00000006, "BAR", vm_bar_subclients },
-+ { 0x00000008, "PPPP", NULL },
-+ { 0x00000009, "PBSP", NULL },
-+ { 0x0000000a, "PCRYPT", NULL },
-+ { 0x0000000b, "PCOUNTER", NULL },
-+ { 0x0000000c, "SEMAPHORE_BG", NULL },
-+ { 0x0000000d, "PCOPY", NULL },
-+ { 0x0000000e, "PDAEMON", NULL },
-+ {}
-+};
-+
-+static struct nouveau_enum vm_fault[] = {
-+ { 0x00000000, "PT_NOT_PRESENT", NULL },
-+ { 0x00000001, "PT_TOO_SHORT", NULL },
-+ { 0x00000002, "PAGE_NOT_PRESENT", NULL },
-+ { 0x00000003, "PAGE_SYSTEM_ONLY", NULL },
-+ { 0x00000004, "PAGE_READ_ONLY", NULL },
-+ { 0x00000006, "NULL_DMAOBJ", NULL },
-+ { 0x00000007, "WRONG_MEMTYPE", NULL },
-+ { 0x0000000b, "VRAM_LIMIT", NULL },
-+ { 0x0000000f, "DMAOBJ_LIMIT", NULL },
-+ {}
-+};
-+
- void
--nv50_fb_vm_trap(struct drm_device *dev, int display, const char *name)
-+nv50_fb_vm_trap(struct drm_device *dev, int display)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ const struct nouveau_enum *en, *cl;
- unsigned long flags;
- u32 trap[6], idx, chinst;
-+ u8 st0, st1, st2, st3;
- int i, ch;
-
- idx = nv_rd32(dev, 0x100c90);
-@@ -117,8 +214,8 @@ nv50_fb_vm_trap(struct drm_device *dev, int display, const char *name)
- if (!display)
- return;
-
-+ /* lookup channel id */
- chinst = (trap[2] << 16) | trap[1];
--
- spin_lock_irqsave(&dev_priv->channels.lock, flags);
- for (ch = 0; ch < dev_priv->engine.fifo.channels; ch++) {
- struct nouveau_channel *chan = dev_priv->channels.ptr[ch];
-@@ -131,9 +228,48 @@ nv50_fb_vm_trap(struct drm_device *dev, int display, const char *name)
- }
- spin_unlock_irqrestore(&dev_priv->channels.lock, flags);
-
-- NV_INFO(dev, "%s - VM: Trapped %s at %02x%04x%04x status %08x "
-- "channel %d (0x%08x)\n",
-- name, (trap[5] & 0x100 ? "read" : "write"),
-- trap[5] & 0xff, trap[4] & 0xffff, trap[3] & 0xffff,
-- trap[0], ch, chinst);
-+ /* decode status bits into something more useful */
-+ if (dev_priv->chipset < 0xa3 ||
-+ dev_priv->chipset == 0xaa || dev_priv->chipset == 0xac) {
-+ st0 = (trap[0] & 0x0000000f) >> 0;
-+ st1 = (trap[0] & 0x000000f0) >> 4;
-+ st2 = (trap[0] & 0x00000f00) >> 8;
-+ st3 = (trap[0] & 0x0000f000) >> 12;
-+ } else {
-+ st0 = (trap[0] & 0x000000ff) >> 0;
-+ st1 = (trap[0] & 0x0000ff00) >> 8;
-+ st2 = (trap[0] & 0x00ff0000) >> 16;
-+ st3 = (trap[0] & 0xff000000) >> 24;
-+ }
-+
-+ NV_INFO(dev, "VM: trapped %s at 0x%02x%04x%04x on ch %d [0x%08x] ",
-+ (trap[5] & 0x00000100) ? "read" : "write",
-+ trap[5] & 0xff, trap[4] & 0xffff, trap[3] & 0xffff, ch, chinst);
-+
-+ en = nouveau_enum_find(vm_engine, st0);
-+ if (en)
-+ printk("%s/", en->name);
-+ else
-+ printk("%02x/", st0);
-+
-+ cl = nouveau_enum_find(vm_client, st2);
-+ if (cl)
-+ printk("%s/", cl->name);
-+ else
-+ printk("%02x/", st2);
-+
-+ if (cl && cl->data) cl = nouveau_enum_find(cl->data, st3);
-+ else if (en && en->data) cl = nouveau_enum_find(en->data, st3);
-+ else cl = NULL;
-+ if (cl)
-+ printk("%s", cl->name);
-+ else
-+ printk("%02x", st3);
-+
-+ printk(" reason: ");
-+ en = nouveau_enum_find(vm_fault, st1);
-+ if (en)
-+ printk("%s\n", en->name);
-+ else
-+ printk("0x%08x\n", st1);
- }
-diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c
-index 8dd04c5..c34a074 100644
---- a/drivers/gpu/drm/nouveau/nv50_fifo.c
-+++ b/drivers/gpu/drm/nouveau/nv50_fifo.c
-@@ -149,6 +149,7 @@ nv50_fifo_init_regs(struct drm_device *dev)
- nv_wr32(dev, 0x3204, 0);
- nv_wr32(dev, 0x3210, 0);
- nv_wr32(dev, 0x3270, 0);
-+ nv_wr32(dev, 0x2044, 0x01003fff);
-
- /* Enable dummy channels setup by nv50_instmem.c */
- nv50_fifo_channel_enable(dev, 0);
-@@ -273,7 +274,7 @@ nv50_fifo_create_context(struct nouveau_channel *chan)
- nv_wo32(ramfc, 0x80, ((chan->ramht->bits - 9) << 27) |
- (4 << 24) /* SEARCH_FULL */ |
- (chan->ramht->gpuobj->cinst >> 4));
-- nv_wo32(ramfc, 0x44, 0x2101ffff);
-+ nv_wo32(ramfc, 0x44, 0x01003fff);
- nv_wo32(ramfc, 0x60, 0x7fffffff);
- nv_wo32(ramfc, 0x40, 0x00000000);
- nv_wo32(ramfc, 0x7c, 0x30000001);
-diff --git a/drivers/gpu/drm/nouveau/nv50_gpio.c b/drivers/gpu/drm/nouveau/nv50_gpio.c
-index 6b149c0..d4f4206 100644
---- a/drivers/gpu/drm/nouveau/nv50_gpio.c
-+++ b/drivers/gpu/drm/nouveau/nv50_gpio.c
-@@ -137,6 +137,7 @@ nv50_gpio_irq_unregister(struct drm_device *dev, enum dcb_gpio_tag tag,
- struct nv50_gpio_priv *priv = pgpio->priv;
- struct nv50_gpio_handler *gpioh, *tmp;
- struct dcb_gpio_entry *gpio;
-+ LIST_HEAD(tofree);
- unsigned long flags;
-
- gpio = nouveau_bios_gpio_entry(dev, tag);
-@@ -149,10 +150,14 @@ nv50_gpio_irq_unregister(struct drm_device *dev, enum dcb_gpio_tag tag,
- gpioh->handler != handler ||
- gpioh->data != data)
- continue;
-- list_del(&gpioh->head);
-- kfree(gpioh);
-+ list_move(&gpioh->head, &tofree);
- }
- spin_unlock_irqrestore(&priv->lock, flags);
-+
-+ list_for_each_entry_safe(gpioh, tmp, &tofree, head) {
-+ flush_work_sync(&gpioh->work);
-+ kfree(gpioh);
-+ }
- }
-
- bool
-@@ -205,7 +210,6 @@ nv50_gpio_init(struct drm_device *dev)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
- struct nouveau_gpio_engine *pgpio = &dev_priv->engine.gpio;
-- struct nv50_gpio_priv *priv;
- int ret;
-
- if (!pgpio->priv) {
-@@ -213,7 +217,6 @@ nv50_gpio_init(struct drm_device *dev)
- if (ret)
- return ret;
- }
-- priv = pgpio->priv;
-
- /* disable, and ack any pending gpio interrupts */
- nv_wr32(dev, 0xe050, 0x00000000);
-@@ -293,7 +296,7 @@ nv50_gpio_isr(struct drm_device *dev)
- continue;
- gpioh->inhibit = true;
-
-- queue_work(dev_priv->wq, &gpioh->work);
-+ schedule_work(&gpioh->work);
- }
- spin_unlock(&priv->lock);
- }
-diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c b/drivers/gpu/drm/nouveau/nv50_graph.c
-index 37e21d2..a32b301 100644
---- a/drivers/gpu/drm/nouveau/nv50_graph.c
-+++ b/drivers/gpu/drm/nouveau/nv50_graph.c
-@@ -95,13 +95,41 @@ nv50_graph_init_regs__nv(struct drm_device *dev)
- }
-
- static void
--nv50_graph_init_regs(struct drm_device *dev)
-+nv50_graph_init_zcull(struct drm_device *dev)
- {
-+ struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ int i;
-+
- NV_DEBUG(dev, "\n");
-
-- nv_wr32(dev, NV04_PGRAPH_DEBUG_3,
-- (1 << 2) /* HW_CONTEXT_SWITCH_ENABLED */);
-- nv_wr32(dev, 0x402ca8, 0x800);
-+ switch (dev_priv->chipset & 0xf0) {
-+ case 0x50:
-+ case 0x80:
-+ case 0x90:
-+ nv_wr32(dev, 0x402ca8, 0x00000800);
-+ break;
-+ case 0xa0:
-+ default:
-+ nv_wr32(dev, 0x402cc0, 0x00000000);
-+ if (dev_priv->chipset == 0xa0 ||
-+ dev_priv->chipset == 0xaa ||
-+ dev_priv->chipset == 0xac) {
-+ nv_wr32(dev, 0x402ca8, 0x00000802);
-+ } else {
-+ nv_wr32(dev, 0x402cc0, 0x00000000);
-+ nv_wr32(dev, 0x402ca8, 0x00000002);
-+ }
-+
-+ break;
-+ }
-+
-+ /* zero out zcull regions */
-+ for (i = 0; i < 8; i++) {
-+ nv_wr32(dev, 0x402c20 + (i * 8), 0x00000000);
-+ nv_wr32(dev, 0x402c24 + (i * 8), 0x00000000);
-+ nv_wr32(dev, 0x402c28 + (i * 8), 0x00000000);
-+ nv_wr32(dev, 0x402c2c + (i * 8), 0x00000000);
-+ }
- }
-
- static int
-@@ -136,6 +164,7 @@ nv50_graph_init_ctxctl(struct drm_device *dev)
- }
- kfree(cp);
-
-+ nv_wr32(dev, 0x40008c, 0x00000004); /* HW_CTX_SWITCH_ENABLED */
- nv_wr32(dev, 0x400320, 4);
- nv_wr32(dev, NV40_PGRAPH_CTXCTL_CUR, 0);
- nv_wr32(dev, NV20_PGRAPH_CHANNEL_CTX_POINTER, 0);
-@@ -151,7 +180,7 @@ nv50_graph_init(struct drm_device *dev)
-
- nv50_graph_init_reset(dev);
- nv50_graph_init_regs__nv(dev);
-- nv50_graph_init_regs(dev);
-+ nv50_graph_init_zcull(dev);
-
- ret = nv50_graph_init_ctxctl(dev);
- if (ret)
-@@ -526,11 +555,11 @@ nv86_graph_tlb_flush(struct drm_device *dev)
-
- static struct nouveau_enum nv50_mp_exec_error_names[] =
- {
-- { 3, "STACK_UNDERFLOW" },
-- { 4, "QUADON_ACTIVE" },
-- { 8, "TIMEOUT" },
-- { 0x10, "INVALID_OPCODE" },
-- { 0x40, "BREAKPOINT" },
-+ { 3, "STACK_UNDERFLOW", NULL },
-+ { 4, "QUADON_ACTIVE", NULL },
-+ { 8, "TIMEOUT", NULL },
-+ { 0x10, "INVALID_OPCODE", NULL },
-+ { 0x40, "BREAKPOINT", NULL },
- {}
- };
-
-@@ -558,47 +587,47 @@ static struct nouveau_bitfield nv50_graph_trap_ccache[] = {
-
- /* There must be a *lot* of these. Will take some time to gather them up. */
- struct nouveau_enum nv50_data_error_names[] = {
-- { 0x00000003, "INVALID_QUERY_OR_TEXTURE" },
-- { 0x00000004, "INVALID_VALUE" },
-- { 0x00000005, "INVALID_ENUM" },
-- { 0x00000008, "INVALID_OBJECT" },
-- { 0x00000009, "READ_ONLY_OBJECT" },
-- { 0x0000000a, "SUPERVISOR_OBJECT" },
-- { 0x0000000b, "INVALID_ADDRESS_ALIGNMENT" },
-- { 0x0000000c, "INVALID_BITFIELD" },
-- { 0x0000000d, "BEGIN_END_ACTIVE" },
-- { 0x0000000e, "SEMANTIC_COLOR_BACK_OVER_LIMIT" },
-- { 0x0000000f, "VIEWPORT_ID_NEEDS_GP" },
-- { 0x00000010, "RT_DOUBLE_BIND" },
-- { 0x00000011, "RT_TYPES_MISMATCH" },
-- { 0x00000012, "RT_LINEAR_WITH_ZETA" },
-- { 0x00000015, "FP_TOO_FEW_REGS" },
-- { 0x00000016, "ZETA_FORMAT_CSAA_MISMATCH" },
-- { 0x00000017, "RT_LINEAR_WITH_MSAA" },
-- { 0x00000018, "FP_INTERPOLANT_START_OVER_LIMIT" },
-- { 0x00000019, "SEMANTIC_LAYER_OVER_LIMIT" },
-- { 0x0000001a, "RT_INVALID_ALIGNMENT" },
-- { 0x0000001b, "SAMPLER_OVER_LIMIT" },
-- { 0x0000001c, "TEXTURE_OVER_LIMIT" },
-- { 0x0000001e, "GP_TOO_MANY_OUTPUTS" },
-- { 0x0000001f, "RT_BPP128_WITH_MS8" },
-- { 0x00000021, "Z_OUT_OF_BOUNDS" },
-- { 0x00000023, "XY_OUT_OF_BOUNDS" },
-- { 0x00000027, "CP_MORE_PARAMS_THAN_SHARED" },
-- { 0x00000028, "CP_NO_REG_SPACE_STRIPED" },
-- { 0x00000029, "CP_NO_REG_SPACE_PACKED" },
-- { 0x0000002a, "CP_NOT_ENOUGH_WARPS" },
-- { 0x0000002b, "CP_BLOCK_SIZE_MISMATCH" },
-- { 0x0000002c, "CP_NOT_ENOUGH_LOCAL_WARPS" },
-- { 0x0000002d, "CP_NOT_ENOUGH_STACK_WARPS" },
-- { 0x0000002e, "CP_NO_BLOCKDIM_LATCH" },
-- { 0x00000031, "ENG2D_FORMAT_MISMATCH" },
-- { 0x0000003f, "PRIMITIVE_ID_NEEDS_GP" },
-- { 0x00000044, "SEMANTIC_VIEWPORT_OVER_LIMIT" },
-- { 0x00000045, "SEMANTIC_COLOR_FRONT_OVER_LIMIT" },
-- { 0x00000046, "LAYER_ID_NEEDS_GP" },
-- { 0x00000047, "SEMANTIC_CLIP_OVER_LIMIT" },
-- { 0x00000048, "SEMANTIC_PTSZ_OVER_LIMIT" },
-+ { 0x00000003, "INVALID_QUERY_OR_TEXTURE", NULL },
-+ { 0x00000004, "INVALID_VALUE", NULL },
-+ { 0x00000005, "INVALID_ENUM", NULL },
-+ { 0x00000008, "INVALID_OBJECT", NULL },
-+ { 0x00000009, "READ_ONLY_OBJECT", NULL },
-+ { 0x0000000a, "SUPERVISOR_OBJECT", NULL },
-+ { 0x0000000b, "INVALID_ADDRESS_ALIGNMENT", NULL },
-+ { 0x0000000c, "INVALID_BITFIELD", NULL },
-+ { 0x0000000d, "BEGIN_END_ACTIVE", NULL },
-+ { 0x0000000e, "SEMANTIC_COLOR_BACK_OVER_LIMIT", NULL },
-+ { 0x0000000f, "VIEWPORT_ID_NEEDS_GP", NULL },
-+ { 0x00000010, "RT_DOUBLE_BIND", NULL },
-+ { 0x00000011, "RT_TYPES_MISMATCH", NULL },
-+ { 0x00000012, "RT_LINEAR_WITH_ZETA", NULL },
-+ { 0x00000015, "FP_TOO_FEW_REGS", NULL },
-+ { 0x00000016, "ZETA_FORMAT_CSAA_MISMATCH", NULL },
-+ { 0x00000017, "RT_LINEAR_WITH_MSAA", NULL },
-+ { 0x00000018, "FP_INTERPOLANT_START_OVER_LIMIT", NULL },
-+ { 0x00000019, "SEMANTIC_LAYER_OVER_LIMIT", NULL },
-+ { 0x0000001a, "RT_INVALID_ALIGNMENT", NULL },
-+ { 0x0000001b, "SAMPLER_OVER_LIMIT", NULL },
-+ { 0x0000001c, "TEXTURE_OVER_LIMIT", NULL },
-+ { 0x0000001e, "GP_TOO_MANY_OUTPUTS", NULL },
-+ { 0x0000001f, "RT_BPP128_WITH_MS8", NULL },
-+ { 0x00000021, "Z_OUT_OF_BOUNDS", NULL },
-+ { 0x00000023, "XY_OUT_OF_BOUNDS", NULL },
-+ { 0x00000027, "CP_MORE_PARAMS_THAN_SHARED", NULL },
-+ { 0x00000028, "CP_NO_REG_SPACE_STRIPED", NULL },
-+ { 0x00000029, "CP_NO_REG_SPACE_PACKED", NULL },
-+ { 0x0000002a, "CP_NOT_ENOUGH_WARPS", NULL },
-+ { 0x0000002b, "CP_BLOCK_SIZE_MISMATCH", NULL },
-+ { 0x0000002c, "CP_NOT_ENOUGH_LOCAL_WARPS", NULL },
-+ { 0x0000002d, "CP_NOT_ENOUGH_STACK_WARPS", NULL },
-+ { 0x0000002e, "CP_NO_BLOCKDIM_LATCH", NULL },
-+ { 0x00000031, "ENG2D_FORMAT_MISMATCH", NULL },
-+ { 0x0000003f, "PRIMITIVE_ID_NEEDS_GP", NULL },
-+ { 0x00000044, "SEMANTIC_VIEWPORT_OVER_LIMIT", NULL },
-+ { 0x00000045, "SEMANTIC_COLOR_FRONT_OVER_LIMIT", NULL },
-+ { 0x00000046, "LAYER_ID_NEEDS_GP", NULL },
-+ { 0x00000047, "SEMANTIC_CLIP_OVER_LIMIT", NULL },
-+ { 0x00000048, "SEMANTIC_PTSZ_OVER_LIMIT", NULL },
- {}
- };
-
-@@ -678,7 +707,6 @@ nv50_pgraph_tp_trap(struct drm_device *dev, int type, uint32_t ustatus_old,
- tps++;
- switch (type) {
- case 6: /* texture error... unknown for now */
-- nv50_fb_vm_trap(dev, display, name);
- if (display) {
- NV_ERROR(dev, "magic set %d:\n", i);
- for (r = ustatus_addr + 4; r <= ustatus_addr + 0x10; r += 4)
-@@ -701,7 +729,6 @@ nv50_pgraph_tp_trap(struct drm_device *dev, int type, uint32_t ustatus_old,
- uint32_t e1c = nv_rd32(dev, ustatus_addr + 0x14);
- uint32_t e20 = nv_rd32(dev, ustatus_addr + 0x18);
- uint32_t e24 = nv_rd32(dev, ustatus_addr + 0x1c);
-- nv50_fb_vm_trap(dev, display, name);
- /* 2d engine destination */
- if (ustatus & 0x00000010) {
- if (display) {
-@@ -912,10 +939,10 @@ nv50_pgraph_trap_handler(struct drm_device *dev, u32 display, u64 inst, u32 chid
- printk("\n");
- NV_INFO(dev, "PGRAPH - TRAP_CCACHE %08x %08x %08x %08x"
- " %08x %08x %08x\n",
-- nv_rd32(dev, 0x405800), nv_rd32(dev, 0x405804),
-- nv_rd32(dev, 0x405808), nv_rd32(dev, 0x40580c),
-- nv_rd32(dev, 0x405810), nv_rd32(dev, 0x405814),
-- nv_rd32(dev, 0x40581c));
-+ nv_rd32(dev, 0x405000), nv_rd32(dev, 0x405004),
-+ nv_rd32(dev, 0x405008), nv_rd32(dev, 0x40500c),
-+ nv_rd32(dev, 0x405010), nv_rd32(dev, 0x405014),
-+ nv_rd32(dev, 0x40501c));
-
- }
-
-@@ -1044,6 +1071,7 @@ nv50_graph_isr(struct drm_device *dev)
- NV_INFO(dev, "PGRAPH - ch %d (0x%010llx) subc %d "
- "class 0x%04x mthd 0x%04x data 0x%08x\n",
- chid, inst, subc, class, mthd, data);
-+ nv50_fb_vm_trap(dev, 1);
- }
- }
-
-diff --git a/drivers/gpu/drm/nouveau/nv50_vm.c b/drivers/gpu/drm/nouveau/nv50_vm.c
-index 6144156..1f47c75 100644
---- a/drivers/gpu/drm/nouveau/nv50_vm.c
-+++ b/drivers/gpu/drm/nouveau/nv50_vm.c
-@@ -31,7 +31,6 @@ void
- nv50_vm_map_pgt(struct nouveau_gpuobj *pgd, u32 pde,
- struct nouveau_gpuobj *pgt[2])
- {
-- struct drm_nouveau_private *dev_priv = pgd->dev->dev_private;
- u64 phys = 0xdeadcafe00000000ULL;
- u32 coverage = 0;
-
-diff --git a/drivers/gpu/drm/nouveau/nv84_crypt.c b/drivers/gpu/drm/nouveau/nv84_crypt.c
-index ec18ae1..fabc7fd 100644
---- a/drivers/gpu/drm/nouveau/nv84_crypt.c
-+++ b/drivers/gpu/drm/nouveau/nv84_crypt.c
-@@ -136,5 +136,5 @@ nv84_crypt_isr(struct drm_device *dev)
- nv_wr32(dev, 0x102130, stat);
- nv_wr32(dev, 0x10200c, 0x10);
-
-- nv50_fb_vm_trap(dev, show, "PCRYPT");
-+ nv50_fb_vm_trap(dev, show);
- }
-diff --git a/drivers/gpu/drm/nouveau/nvc0_fifo.c b/drivers/gpu/drm/nouveau/nvc0_fifo.c
-index e6f92c5..e9f8643 100644
---- a/drivers/gpu/drm/nouveau/nvc0_fifo.c
-+++ b/drivers/gpu/drm/nouveau/nvc0_fifo.c
-@@ -418,6 +418,12 @@ nvc0_fifo_isr(struct drm_device *dev)
- {
- u32 stat = nv_rd32(dev, 0x002100);
-
-+ if (stat & 0x00000100) {
-+ NV_INFO(dev, "PFIFO: unknown status 0x00000100\n");
-+ nv_wr32(dev, 0x002100, 0x00000100);
-+ stat &= ~0x00000100;
-+ }
-+
- if (stat & 0x10000000) {
- u32 units = nv_rd32(dev, 0x00259c);
- u32 u = units;
-@@ -446,10 +452,15 @@ nvc0_fifo_isr(struct drm_device *dev)
- stat &= ~0x20000000;
- }
-
-+ if (stat & 0x40000000) {
-+ NV_INFO(dev, "PFIFO: unknown status 0x40000000\n");
-+ nv_mask(dev, 0x002a00, 0x00000000, 0x00000000);
-+ stat &= ~0x40000000;
-+ }
-+
- if (stat) {
- NV_INFO(dev, "PFIFO: unhandled status 0x%08x\n", stat);
- nv_wr32(dev, 0x002100, stat);
-+ nv_wr32(dev, 0x002140, 0);
- }
--
-- nv_wr32(dev, 0x2140, 0);
- }
-diff --git a/drivers/gpu/drm/nouveau/nvc0_graph.c b/drivers/gpu/drm/nouveau/nvc0_graph.c
-index eb18a7e..afa7afe 100644
---- a/drivers/gpu/drm/nouveau/nvc0_graph.c
-+++ b/drivers/gpu/drm/nouveau/nvc0_graph.c
-@@ -640,7 +640,6 @@ nvc0_graph_init(struct drm_device *dev)
- {
- struct drm_nouveau_private *dev_priv = dev->dev_private;
- struct nouveau_pgraph_engine *pgraph = &dev_priv->engine.graph;
-- struct nvc0_graph_priv *priv;
- int ret;
-
- dev_priv->engine.graph.accel_blocked = true;
-@@ -665,7 +664,6 @@ nvc0_graph_init(struct drm_device *dev)
- if (ret)
- return ret;
- }
-- priv = pgraph->priv;
-
- nvc0_graph_init_obj418880(dev);
- nvc0_graph_init_regs(dev);
+nil
diff --git a/freed-ora/current/master/efi_default_physical.patch b/freed-ora/current/master/efi_default_physical.patch
deleted file mode 100644
index 41de7809e..000000000
--- a/freed-ora/current/master/efi_default_physical.patch
+++ /dev/null
@@ -1,403 +0,0 @@
-Default EFI to physical rather than virtual. Upstream seem to be going
-in this direction.
-
-diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
-index 8e4a165..3c62f15 100644
---- a/arch/x86/include/asm/efi.h
-+++ b/arch/x86/include/asm/efi.h
-@@ -93,6 +93,9 @@ extern int add_efi_memmap;
- extern void efi_memblock_x86_reserve_range(void);
- extern void efi_call_phys_prelog(void);
- extern void efi_call_phys_epilog(void);
-+extern void efi_call_phys_prelog_in_physmode(void);
-+extern void efi_call_phys_epilog_in_physmode(void);
-+extern void efi_pagetable_init(void);
-
- #ifndef CONFIG_EFI
- /*
-diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
-index 0fe27d7..e1158b0 100644
---- a/arch/x86/platform/efi/efi.c
-+++ b/arch/x86/platform/efi/efi.c
-@@ -58,6 +58,7 @@ struct efi_memory_map memmap;
-
- static struct efi efi_phys __initdata;
- static efi_system_table_t efi_systab __initdata;
-+static efi_runtime_services_t phys_runtime;
-
- static int __init setup_noefi(char *arg)
- {
-@@ -172,7 +173,7 @@ static efi_status_t __init phys_efi_set_virtual_address_map(
- return status;
- }
-
--static efi_status_t __init phys_efi_get_time(efi_time_t *tm,
-+static efi_status_t __init phys_efi_get_time_early(efi_time_t *tm,
- efi_time_cap_t *tc)
- {
- efi_status_t status;
-@@ -183,6 +184,112 @@ static efi_status_t __init phys_efi_get_time(efi_time_t *tm,
- return status;
- }
-
-+static efi_status_t phys_efi_get_time(efi_time_t *tm,
-+ efi_time_cap_t *tc)
-+{
-+ efi_status_t status;
-+
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys2((void*)phys_runtime.get_time, tm, tc);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t __init phys_efi_set_time(efi_time_t *tm)
-+{
-+ efi_status_t status;
-+
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys1((void*)phys_runtime.set_time, tm);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t phys_efi_get_wakeup_time(efi_bool_t *enabled,
-+ efi_bool_t *pending,
-+ efi_time_t *tm)
-+{
-+ efi_status_t status;
-+
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys3((void*)phys_runtime.get_wakeup_time, enabled,
-+ pending, tm);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t phys_efi_set_wakeup_time(efi_bool_t enabled, efi_time_t *tm)
-+{
-+ efi_status_t status;
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys2((void*)phys_runtime.set_wakeup_time, enabled,
-+ tm);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t phys_efi_get_variable(efi_char16_t *name,
-+ efi_guid_t *vendor,
-+ u32 *attr,
-+ unsigned long *data_size,
-+ void *data)
-+{
-+ efi_status_t status;
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys5((void*)phys_runtime.get_variable, name, vendor,
-+ attr, data_size, data);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t phys_efi_get_next_variable(unsigned long *name_size,
-+ efi_char16_t *name,
-+ efi_guid_t *vendor)
-+{
-+ efi_status_t status;
-+
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys3((void*)phys_runtime.get_next_variable,
-+ name_size, name, vendor);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t phys_efi_set_variable(efi_char16_t *name,
-+ efi_guid_t *vendor,
-+ unsigned long attr,
-+ unsigned long data_size,
-+ void *data)
-+{
-+ efi_status_t status;
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys5((void*)phys_runtime.set_variable, name,
-+ vendor, attr, data_size, data);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static efi_status_t phys_efi_get_next_high_mono_count(u32 *count)
-+{
-+ efi_status_t status;
-+ efi_call_phys_prelog_in_physmode();
-+ status = efi_call_phys1((void*)phys_runtime.get_next_high_mono_count,
-+ count);
-+ efi_call_phys_epilog_in_physmode();
-+ return status;
-+}
-+
-+static void phys_efi_reset_system(int reset_type,
-+ efi_status_t status,
-+ unsigned long data_size,
-+ efi_char16_t *data)
-+{
-+ efi_call_phys_prelog_in_physmode();
-+ efi_call_phys4((void*)phys_runtime.reset_system, reset_type, status,
-+ data_size, data);
-+ efi_call_phys_epilog_in_physmode();
-+}
-+
- int efi_set_rtc_mmss(unsigned long nowtime)
- {
- int real_seconds, real_minutes;
-@@ -435,7 +542,9 @@ void __init efi_init(void)
- * Make efi_get_time can be called before entering
- * virtual mode.
- */
-- efi.get_time = phys_efi_get_time;
-+ efi.get_time = phys_efi_get_time_early;
-+
-+ memcpy(&phys_runtime, runtime, sizeof(efi_runtime_services_t));
- } else
- printk(KERN_ERR "Could not map the EFI runtime service "
- "table!\n");
-@@ -466,6 +575,14 @@ void __init efi_init(void)
- #if EFI_DEBUG
- print_efi_memmap();
- #endif
-+
-+#ifndef CONFIG_X86_64
-+ /*
-+ * Only x86_64 supports physical mode as of now. Use virtual mode
-+ * forcibly.
-+ */
-+ usevirtefi = 1;
-+#endif
- }
-
- static void __init runtime_code_page_mkexec(void)
-@@ -579,6 +696,27 @@ void __init efi_enter_virtual_mode(void)
- memmap.map = NULL;
- }
-
-+void __init efi_setup_physical_mode(void)
-+{
-+#ifdef CONFIG_X86_64
-+ efi_pagetable_init();
-+#endif
-+ efi.get_time = phys_efi_get_time;
-+ efi.set_time = phys_efi_set_time;
-+ efi.get_wakeup_time = phys_efi_get_wakeup_time;
-+ efi.set_wakeup_time = phys_efi_set_wakeup_time;
-+ efi.get_variable = phys_efi_get_variable;
-+ efi.get_next_variable = phys_efi_get_next_variable;
-+ efi.set_variable = phys_efi_set_variable;
-+ efi.get_next_high_mono_count =
-+ phys_efi_get_next_high_mono_count;
-+ efi.reset_system = phys_efi_reset_system;
-+ efi.set_virtual_address_map = NULL; /* Not needed */
-+
-+ early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
-+ memmap.map = NULL;
-+}
-+
- /*
- * Convenience functions to obtain memory types and attributes
- */
-diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
-index 5cab48e..90767b1 100644
---- a/arch/x86/platform/efi/efi_32.c
-+++ b/arch/x86/platform/efi/efi_32.c
-@@ -110,3 +110,7 @@ void efi_call_phys_epilog(void)
-
- local_irq_restore(efi_rt_eflags);
- }
-+
-+void efi_call_phys_prelog_in_physmode(void) { /* Not supported */ }
-+void efi_call_phys_epilog_in_physmode(void) { /* Not supported */ }
-+
-diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
-index ac0621a..ad19fe9 100644
---- a/arch/x86/platform/efi/efi_64.c
-+++ b/arch/x86/platform/efi/efi_64.c
-@@ -39,7 +39,9 @@
- #include <asm/fixmap.h>
-
- static pgd_t save_pgd __initdata;
--static unsigned long efi_flags __initdata;
-+static DEFINE_PER_CPU(unsigned long, efi_flags);
-+static DEFINE_PER_CPU(unsigned long, save_cr3);
-+static pgd_t efi_pgd[PTRS_PER_PGD] __page_aligned_bss;
-
- static void __init early_mapping_set_exec(unsigned long start,
- unsigned long end,
-@@ -80,7 +82,7 @@ void __init efi_call_phys_prelog(void)
- unsigned long vaddress;
-
- early_runtime_code_mapping_set_exec(1);
-- local_irq_save(efi_flags);
-+ local_irq_save(get_cpu_var(efi_flags));
- vaddress = (unsigned long)__va(0x0UL);
- save_pgd = *pgd_offset_k(0x0UL);
- set_pgd(pgd_offset_k(0x0UL), *pgd_offset_k(vaddress));
-@@ -94,10 +96,23 @@ void __init efi_call_phys_epilog(void)
- */
- set_pgd(pgd_offset_k(0x0UL), save_pgd);
- __flush_tlb_all();
-- local_irq_restore(efi_flags);
-+ local_irq_restore(get_cpu_var(efi_flags));
- early_runtime_code_mapping_set_exec(0);
- }
-
-+void efi_call_phys_prelog_in_physmode(void)
-+{
-+ local_irq_save(get_cpu_var(efi_flags));
-+ get_cpu_var(save_cr3)= read_cr3();
-+ write_cr3(virt_to_phys(efi_pgd));
-+}
-+
-+void efi_call_phys_epilog_in_physmode(void)
-+{
-+ write_cr3(get_cpu_var(save_cr3));
-+ local_irq_restore(get_cpu_var(efi_flags));
-+}
-+
- void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size,
- u32 type)
- {
-@@ -112,3 +127,78 @@ void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size,
-
- return (void __iomem *)__va(phys_addr);
- }
-+
-+static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
-+{
-+ if (pgd_none(*pgd)) {
-+ pud_t *pud = (pud_t *)get_zeroed_page(GFP_ATOMIC);
-+ set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
-+ if (pud != pud_offset(pgd, 0))
-+ printk(KERN_ERR "EFI PAGETABLE BUG #00! %p <-> %p\n",
-+ pud, pud_offset(pgd, 0));
-+ }
-+ return pud_offset(pgd, vaddr);
-+}
-+
-+static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
-+{
-+ if (pud_none(*pud)) {
-+ pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_ATOMIC);
-+ set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
-+ if (pmd != pmd_offset(pud, 0))
-+ printk(KERN_ERR "EFI PAGETABLE BUG #01! %p <-> %p\n",
-+ pmd, pmd_offset(pud, 0));
-+ }
-+ return pmd_offset(pud, vaddr);
-+}
-+
-+static pte_t *fill_pte(pmd_t *pmd, unsigned long vaddr)
-+{
-+ if (pmd_none(*pmd)) {
-+ pte_t *pte = (pte_t *)get_zeroed_page(GFP_ATOMIC);
-+ set_pmd(pmd, __pmd(_PAGE_TABLE | __pa(pte)));
-+ if (pte != pte_offset_kernel(pmd, 0))
-+ printk(KERN_ERR "EFI PAGETABLE BUG #02!\n");
-+ }
-+ return pte_offset_kernel(pmd, vaddr);
-+}
-+
-+void __init efi_pagetable_init(void)
-+{
-+ efi_memory_desc_t *md;
-+ unsigned long size;
-+ u64 start_pfn, end_pfn, pfn, vaddr;
-+ void *p;
-+ pgd_t *pgd;
-+ pud_t *pud;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ memset(efi_pgd, 0, sizeof(efi_pgd));
-+ for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
-+ md = p;
-+ if (!(md->type & EFI_RUNTIME_SERVICES_CODE) &&
-+ !(md->type & EFI_RUNTIME_SERVICES_DATA))
-+ continue;
-+
-+ start_pfn = md->phys_addr >> PAGE_SHIFT;
-+ size = md->num_pages << EFI_PAGE_SHIFT;
-+ end_pfn = PFN_UP(md->phys_addr + size);
-+
-+ for (pfn = start_pfn; pfn <= end_pfn; pfn++) {
-+ vaddr = pfn << PAGE_SHIFT;
-+ pgd = efi_pgd + pgd_index(vaddr);
-+ pud = fill_pud(pgd, vaddr);
-+ pmd = fill_pmd(pud, vaddr);
-+ pte = fill_pte(pmd, vaddr);
-+ if (md->type & EFI_RUNTIME_SERVICES_CODE)
-+ set_pte(pte, pfn_pte(pfn, PAGE_KERNEL_EXEC));
-+ else
-+ set_pte(pte, pfn_pte(pfn, PAGE_KERNEL));
-+ }
-+ }
-+ pgd = efi_pgd + pgd_index(PAGE_OFFSET);
-+ set_pgd(pgd, *pgd_offset_k(PAGE_OFFSET));
-+ pgd = efi_pgd + pgd_index(__START_KERNEL_map);
-+ set_pgd(pgd, *pgd_offset_k(__START_KERNEL_map));
-+}
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index fb737bc..c4e310e 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -290,6 +290,7 @@ extern void efi_map_pal_code (void);
- extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
- extern void efi_gettimeofday (struct timespec *ts);
- extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */
-+extern void efi_setup_physical_mode(void);
- extern u64 efi_get_iobase (void);
- extern u32 efi_mem_type (unsigned long phys_addr);
- extern u64 efi_mem_attributes (unsigned long phys_addr);
-diff --git a/include/linux/init.h b/include/linux/init.h
-index 577671c..2f1b28f 100644
---- a/include/linux/init.h
-+++ b/include/linux/init.h
-@@ -149,6 +149,7 @@ extern int do_one_initcall(initcall_t fn);
- extern char __initdata boot_command_line[];
- extern char *saved_command_line;
- extern unsigned int reset_devices;
-+extern unsigned int usevirtefi;
-
- /* used by init/main.c */
- void setup_arch(char **);
-diff --git a/init/main.c b/init/main.c
-index 8646401..726025e 100644
---- a/init/main.c
-+++ b/init/main.c
-@@ -196,6 +196,14 @@ static int __init set_reset_devices(char *str)
-
- __setup("reset_devices", set_reset_devices);
-
-+unsigned int usevirtefi;
-+static int __init set_virt_efi(char *str)
-+{
-+ usevirtefi = 1;
-+ return 1;
-+}
-+__setup("virtefi", set_virt_efi);
-+
- static const char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
- const char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
- static const char *panic_later, *panic_param;
-@@ -668,8 +676,12 @@ asmlinkage void __init start_kernel(void)
- pidmap_init();
- anon_vma_init();
- #ifdef CONFIG_X86
-- if (efi_enabled)
-- efi_enter_virtual_mode();
-+ if (efi_enabled) {
-+ if (usevirtefi)
-+ efi_enter_virtual_mode();
-+ else
-+ efi_setup_physical_mode();
-+ }
- #endif
- thread_info_cache_init();
- cred_init();
diff --git a/freed-ora/current/master/efifb_update.patch b/freed-ora/current/master/efifb_update.patch
deleted file mode 100644
index 7058ba610..000000000
--- a/freed-ora/current/master/efifb_update.patch
+++ /dev/null
@@ -1,217 +0,0 @@
-Fix up efifb so it works properly on the 11" Macbook Air. Upstream in .38?
-
-diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
-index 70477c2..476ffb1 100644
---- a/drivers/video/efifb.c
-+++ b/drivers/video/efifb.c
-@@ -53,6 +53,7 @@ enum {
- M_MB_7_1, /* MacBook, 7th rev. */
- M_MB_SR, /* MacBook, 2nd gen, (Santa Rosa) */
- M_MBA, /* MacBook Air */
-+ M_MBA_3, /* Macbook Air, 3rd rev */
- M_MBP, /* MacBook Pro */
- M_MBP_2, /* MacBook Pro 2nd gen */
- M_MBP_2_2, /* MacBook Pro 2,2nd gen */
-@@ -67,40 +68,49 @@ enum {
- M_UNKNOWN /* placeholder */
- };
-
-+#define OVERRIDE_NONE 0x0
-+#define OVERRIDE_BASE 0x1
-+#define OVERRIDE_STRIDE 0x2
-+#define OVERRIDE_HEIGHT 0x4
-+#define OVERRIDE_WIDTH 0x8
-+
- static struct efifb_dmi_info {
- char *optname;
- unsigned long base;
- int stride;
- int width;
- int height;
-+ int flags;
- } dmi_list[] __initdata = {
-- [M_I17] = { "i17", 0x80010000, 1472 * 4, 1440, 900 },
-- [M_I20] = { "i20", 0x80010000, 1728 * 4, 1680, 1050 }, /* guess */
-- [M_I20_SR] = { "imac7", 0x40010000, 1728 * 4, 1680, 1050 },
-- [M_I24] = { "i24", 0x80010000, 2048 * 4, 1920, 1200 }, /* guess */
-- [M_I24_8_1] = { "imac8", 0xc0060000, 2048 * 4, 1920, 1200 },
-- [M_I24_10_1] = { "imac10", 0xc0010000, 2048 * 4, 1920, 1080 },
-- [M_I27_11_1] = { "imac11", 0xc0010000, 2560 * 4, 2560, 1440 },
-- [M_MINI]= { "mini", 0x80000000, 2048 * 4, 1024, 768 },
-- [M_MINI_3_1] = { "mini31", 0x40010000, 1024 * 4, 1024, 768 },
-- [M_MINI_4_1] = { "mini41", 0xc0010000, 2048 * 4, 1920, 1200 },
-- [M_MB] = { "macbook", 0x80000000, 2048 * 4, 1280, 800 },
-- [M_MB_5_1] = { "macbook51", 0x80010000, 2048 * 4, 1280, 800 },
-- [M_MB_6_1] = { "macbook61", 0x80010000, 2048 * 4, 1280, 800 },
-- [M_MB_7_1] = { "macbook71", 0x80010000, 2048 * 4, 1280, 800 },
-- [M_MBA] = { "mba", 0x80000000, 2048 * 4, 1280, 800 },
-- [M_MBP] = { "mbp", 0x80010000, 1472 * 4, 1440, 900 },
-- [M_MBP_2] = { "mbp2", 0, 0, 0, 0 }, /* placeholder */
-- [M_MBP_2_2] = { "mbp22", 0x80010000, 1472 * 4, 1440, 900 },
-- [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900 },
-- [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200 },
-- [M_MBP_5_1] = { "mbp51", 0xc0010000, 2048 * 4, 1440, 900 },
-- [M_MBP_5_2] = { "mbp52", 0xc0010000, 2048 * 4, 1920, 1200 },
-- [M_MBP_5_3] = { "mbp53", 0xd0010000, 2048 * 4, 1440, 900 },
-- [M_MBP_6_1] = { "mbp61", 0x90030000, 2048 * 4, 1920, 1200 },
-- [M_MBP_6_2] = { "mbp62", 0x90030000, 2048 * 4, 1680, 1050 },
-- [M_MBP_7_1] = { "mbp71", 0xc0010000, 2048 * 4, 1280, 800 },
-- [M_UNKNOWN] = { NULL, 0, 0, 0, 0 }
-+ [M_I17] = { "i17", 0x80010000, 1472 * 4, 1440, 900, OVERRIDE_NONE },
-+ [M_I20] = { "i20", 0x80010000, 1728 * 4, 1680, 1050, OVERRIDE_NONE }, /* guess */
-+ [M_I20_SR] = { "imac7", 0x40010000, 1728 * 4, 1680, 1050, OVERRIDE_NONE },
-+ [M_I24] = { "i24", 0x80010000, 2048 * 4, 1920, 1200, OVERRIDE_NONE }, /* guess */
-+ [M_I24_8_1] = { "imac8", 0xc0060000, 2048 * 4, 1920, 1200, OVERRIDE_NONE },
-+ [M_I24_10_1] = { "imac10", 0xc0010000, 2048 * 4, 1920, 1080, OVERRIDE_NONE },
-+ [M_I27_11_1] = { "imac11", 0xc0010000, 2560 * 4, 2560, 1440, OVERRIDE_NONE },
-+ [M_MINI]= { "mini", 0x80000000, 2048 * 4, 1024, 768, OVERRIDE_NONE },
-+ [M_MINI_3_1] = { "mini31", 0x40010000, 1024 * 4, 1024, 768, OVERRIDE_NONE },
-+ [M_MINI_4_1] = { "mini41", 0xc0010000, 2048 * 4, 1920, 1200, OVERRIDE_NONE },
-+ [M_MB] = { "macbook", 0x80000000, 2048 * 4, 1280, 800, OVERRIDE_NONE },
-+ [M_MB_5_1] = { "macbook51", 0x80010000, 2048 * 4, 1280, 800, OVERRIDE_NONE },
-+ [M_MB_6_1] = { "macbook61", 0x80010000, 2048 * 4, 1280, 800, OVERRIDE_NONE },
-+ [M_MB_7_1] = { "macbook71", 0x80010000, 2048 * 4, 1280, 800, OVERRIDE_NONE },
-+ [M_MBA] = { "mba", 0x80000000, 2048 * 4, 1280, 800, OVERRIDE_NONE },
-+ /* 11" Macbook Air 3,1 passes the wrong stride */
-+ [M_MBA_3] = { "mba3", 0, 2048 * 4, 0, 0, OVERRIDE_STRIDE },
-+ [M_MBP] = { "mbp", 0x80010000, 1472 * 4, 1440, 900, OVERRIDE_NONE },
-+ [M_MBP_2] = { "mbp2", 0, 0, 0, 0, OVERRIDE_NONE }, /* placeholder */
-+ [M_MBP_2_2] = { "mbp22", 0x80010000, 1472 * 4, 1440, 900, OVERRIDE_NONE },
-+ [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900, OVERRIDE_NONE },
-+ [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200, OVERRIDE_NONE },
-+ [M_MBP_5_1] = { "mbp51", 0xc0010000, 2048 * 4, 1440, 900, OVERRIDE_NONE },
-+ [M_MBP_5_2] = { "mbp52", 0xc0010000, 2048 * 4, 1920, 1200, OVERRIDE_NONE },
-+ [M_MBP_5_3] = { "mbp53", 0xd0010000, 2048 * 4, 1440, 900, OVERRIDE_NONE },
-+ [M_MBP_6_1] = { "mbp61", 0x90030000, 2048 * 4, 1920, 1200, OVERRIDE_NONE },
-+ [M_MBP_6_2] = { "mbp62", 0x90030000, 2048 * 4, 1680, 1050, OVERRIDE_NONE },
-+ [M_MBP_7_1] = { "mbp71", 0xc0010000, 2048 * 4, 1280, 800, OVERRIDE_NONE },
-+ [M_UNKNOWN] = { NULL, 0, 0, 0, 0, OVERRIDE_NONE }
- };
-
- static int set_system(const struct dmi_system_id *id);
-@@ -138,6 +148,7 @@ static const struct dmi_system_id dmi_system_table[] __initconst = {
- EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBook6,1", M_MB_6_1),
- EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBook7,1", M_MB_7_1),
- EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookAir1,1", M_MBA),
-+ EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookAir3,1", M_MBA_3),
- EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro1,1", M_MBP),
- EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro2,1", M_MBP_2),
- EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro2,2", M_MBP_2_2),
-@@ -154,16 +165,22 @@ static const struct dmi_system_id dmi_system_table[] __initconst = {
- {},
- };
-
-+#define choose_value(dmivalue, fwvalue, field, flags) ({ \
-+ typeof(fwvalue) _ret_ = fwvalue; \
-+ if ((flags) & (field)) \
-+ _ret_ = dmivalue; \
-+ else if ((fwvalue) == 0) \
-+ _ret_ = dmivalue; \
-+ _ret_; \
-+ })
-+
- static int set_system(const struct dmi_system_id *id)
- {
- struct efifb_dmi_info *info = id->driver_data;
-- if (info->base == 0)
-- return 0;
-
-- printk(KERN_INFO "efifb: dmi detected %s - framebuffer at %p "
-- "(%dx%d, stride %d)\n", id->ident,
-- (void *)info->base, info->width, info->height,
-- info->stride);
-+ if (info->base == 0 && info->height == 0 && info->width == 0
-+ && info->stride == 0)
-+ return 0;
-
- /* Trust the bootloader over the DMI tables */
- if (screen_info.lfb_base == 0) {
-@@ -171,40 +188,47 @@ static int set_system(const struct dmi_system_id *id)
- struct pci_dev *dev = NULL;
- int found_bar = 0;
- #endif
-- screen_info.lfb_base = info->base;
-+ if (info->base) {
-+ screen_info.lfb_base = choose_value(info->base,
-+ screen_info.lfb_base, OVERRIDE_BASE,
-+ info->flags);
-
- #if defined(CONFIG_PCI)
-- /* make sure that the address in the table is actually on a
-- * VGA device's PCI BAR */
--
-- for_each_pci_dev(dev) {
-- int i;
-- if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-- continue;
-- for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-- resource_size_t start, end;
--
-- start = pci_resource_start(dev, i);
-- if (start == 0)
-- break;
-- end = pci_resource_end(dev, i);
-- if (screen_info.lfb_base >= start &&
-- screen_info.lfb_base < end) {
-- found_bar = 1;
-+ /* make sure that the address in the table is actually
-+ * on a VGA device's PCI BAR */
-+
-+ for_each_pci_dev(dev) {
-+ int i;
-+ if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-+ continue;
-+ for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-+ resource_size_t start, end;
-+
-+ start = pci_resource_start(dev, i);
-+ if (start == 0)
-+ break;
-+ end = pci_resource_end(dev, i);
-+ if (screen_info.lfb_base >= start &&
-+ screen_info.lfb_base < end) {
-+ found_bar = 1;
-+ }
- }
- }
-- }
-- if (!found_bar)
-- screen_info.lfb_base = 0;
-+ if (!found_bar)
-+ screen_info.lfb_base = 0;
- #endif
-+ }
- }
- if (screen_info.lfb_base) {
-- if (screen_info.lfb_linelength == 0)
-- screen_info.lfb_linelength = info->stride;
-- if (screen_info.lfb_width == 0)
-- screen_info.lfb_width = info->width;
-- if (screen_info.lfb_height == 0)
-- screen_info.lfb_height = info->height;
-+ screen_info.lfb_linelength = choose_value(info->stride,
-+ screen_info.lfb_linelength, OVERRIDE_STRIDE,
-+ info->flags);
-+ screen_info.lfb_width = choose_value(info->width,
-+ screen_info.lfb_width, OVERRIDE_WIDTH,
-+ info->flags);
-+ screen_info.lfb_height = choose_value(info->height,
-+ screen_info.lfb_height, OVERRIDE_HEIGHT,
-+ info->flags);
- if (screen_info.orig_video_isVGA == 0)
- screen_info.orig_video_isVGA = VIDEO_TYPE_EFI;
- } else {
-@@ -214,6 +238,13 @@ static int set_system(const struct dmi_system_id *id)
- screen_info.orig_video_isVGA = 0;
- return 0;
- }
-+
-+ printk(KERN_INFO "efifb: dmi detected %s - framebuffer at %p "
-+ "(%dx%d, stride %d)\n", id->ident,
-+ (void *)screen_info.lfb_base, screen_info.lfb_width,
-+ screen_info.lfb_height, screen_info.lfb_linelength);
-+
-+
- return 1;
- }
-
diff --git a/freed-ora/current/master/flexcop-fix-xlate_proc_name-warning.patch b/freed-ora/current/master/flexcop-fix-xlate_proc_name-warning.patch
deleted file mode 100644
index 82b50a47f..000000000
--- a/freed-ora/current/master/flexcop-fix-xlate_proc_name-warning.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/drivers/media/dvb/b2c2/flexcop-pci.c b/drivers/media/dvb/b2c2/flexcop-pci.c
-index 227c020..7465308 100644
---- a/drivers/media/dvb/b2c2/flexcop-pci.c
-+++ b/drivers/media/dvb/b2c2/flexcop-pci.c
-@@ -39,6 +39,7 @@ MODULE_PARM_DESC(debug,
-
- #define DRIVER_VERSION "0.1"
- #define DRIVER_NAME "Technisat/B2C2 FlexCop II/IIb/III Digital TV PCI Driver"
-+#define FLEXCOP_MODULE_NAME "b2c2-flexcop"
- #define DRIVER_AUTHOR "Patrick Boettcher <patrick.boettcher@desy.de>"
-
- struct flexcop_pci {
-@@ -299,7 +300,7 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
- return ret;
- pci_set_master(fc_pci->pdev);
-
-- if ((ret = pci_request_regions(fc_pci->pdev, DRIVER_NAME)) != 0)
-+ if ((ret = pci_request_regions(fc_pci->pdev, FLEXCOP_MODULE_NAME)) != 0)
- goto err_pci_disable_device;
-
- fc_pci->io_mem = pci_iomap(fc_pci->pdev, 0, 0x800);
-@@ -313,7 +314,7 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
- pci_set_drvdata(fc_pci->pdev, fc_pci);
- spin_lock_init(&fc_pci->irq_lock);
- if ((ret = request_irq(fc_pci->pdev->irq, flexcop_pci_isr,
-- IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0)
-+ IRQF_SHARED, FLEXCOP_MODULE_NAME, fc_pci)) != 0)
- goto err_pci_iounmap;
-
- fc_pci->init_state |= FC_PCI_INIT;
diff --git a/freed-ora/current/master/fs-call-security_d_instantiate-in-d_obtain_alias.patch b/freed-ora/current/master/fs-call-security_d_instantiate-in-d_obtain_alias.patch
deleted file mode 100644
index 3bce47f5e..000000000
--- a/freed-ora/current/master/fs-call-security_d_instantiate-in-d_obtain_alias.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From linux-fsdevel-owner@vger.kernel.org Thu Nov 18 21:03:11 2010
-From: Josef Bacik <josef@redhat.com>
-To: linux-fsdevel@vger.kernel.org, eparis@redhat.com,
- linux-kernel@vger.kernel.org, sds@tycho.nsa.gov,
- selinux@tycho.nsa.gov, bfields@fieldses.org
-Subject: [PATCH] fs: call security_d_instantiate in d_obtain_alias V2
-Date: Thu, 18 Nov 2010 20:52:55 -0500
-Message-Id: <1290131575-2489-1-git-send-email-josef@redhat.com>
-X-Mailing-List: linux-fsdevel@vger.kernel.org
-
-While trying to track down some NFS problems with BTRFS, I kept noticing I was
-getting -EACCESS for no apparent reason. Eric Paris and printk() helped me
-figure out that it was SELinux that was giving me grief, with the following
-denial
-
-type=AVC msg=audit(1290013638.413:95): avc: denied { 0x800000 } for pid=1772
-comm="nfsd" name="" dev=sda1 ino=256 scontext=system_u:system_r:kernel_t:s0
-tcontext=system_u:object_r:unlabeled_t:s0 tclass=file
-
-Turns out this is because in d_obtain_alias if we can't find an alias we create
-one and do all the normal instantiation stuff, but we don't do the
-security_d_instantiate.
-
-Usually we are protected from getting a hashed dentry that hasn't yet run
-security_d_instantiate() by the parent's i_mutex, but obviously this isn't an
-option there, so in order to deal with the case that a second thread comes in
-and finds our new dentry before we get to run security_d_instantiate(), we go
-ahead and call it if we find a dentry already. Eric assures me that this is ok
-as the code checks to see if the dentry has been initialized already so calling
-security_d_instantiate() against the same dentry multiple times is ok. With
-this patch I'm no longer getting errant -EACCESS values.
-
-Signed-off-by: Josef Bacik <josef@redhat.com>
----
-V1->V2:
--added second security_d_instantiate() call
-
- fs/dcache.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/fs/dcache.c b/fs/dcache.c
-index 5699d4c..85388fc 100644
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -1577,9 +1577,13 @@ struct dentry *d_obtain_alias(struct inode *inode)
- spin_unlock(&tmp->d_lock);
- spin_unlock(&inode->i_lock);
-
-+ security_d_instantiate(tmp, inode);
-+
- return tmp;
-
- out_iput:
-+ if (res && !IS_ERR(res))
-+ security_d_instantiate(res, inode);
- iput(inode);
- return res;
- }
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/freed-ora/current/master/hdpvr-ir-enable.patch b/freed-ora/current/master/hdpvr-ir-enable.patch
deleted file mode 100644
index e73c42122..000000000
--- a/freed-ora/current/master/hdpvr-ir-enable.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-diff --git a/drivers/media/video/hdpvr/Makefile b/drivers/media/video/hdpvr/Makefile
-index e0230fc..3baa9f6 100644
---- a/drivers/media/video/hdpvr/Makefile
-+++ b/drivers/media/video/hdpvr/Makefile
-@@ -1,6 +1,4 @@
--hdpvr-objs := hdpvr-control.o hdpvr-core.o hdpvr-video.o
--
--hdpvr-$(CONFIG_I2C) += hdpvr-i2c.o
-+hdpvr-objs := hdpvr-control.o hdpvr-core.o hdpvr-video.o hdpvr-i2c.o
-
- obj-$(CONFIG_VIDEO_HDPVR) += hdpvr.o
-
-diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c
-index 830d47b..70cfdc8 100644
---- a/drivers/media/video/hdpvr/hdpvr-core.c
-+++ b/drivers/media/video/hdpvr/hdpvr-core.c
-@@ -364,14 +364,13 @@ static int hdpvr_probe(struct usb_interface *interface,
- goto error;
- }
-
--#ifdef CONFIG_I2C
-- /* until i2c is working properly */
-- retval = 0; /* hdpvr_register_i2c_adapter(dev); */
-+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-+ retval = hdpvr_register_i2c_adapter(dev);
- if (retval < 0) {
- v4l2_err(&dev->v4l2_dev, "registering i2c adapter failed\n");
- goto error;
- }
--#endif /* CONFIG_I2C */
-+#endif
-
- /* let the user know what node this device is now attached to */
- v4l2_info(&dev->v4l2_dev, "device now attached to %s\n",
-diff --git a/drivers/media/video/hdpvr/hdpvr-i2c.c b/drivers/media/video/hdpvr/hdpvr-i2c.c
-index 463b81b..60cdc06 100644
---- a/drivers/media/video/hdpvr/hdpvr-i2c.c
-+++ b/drivers/media/video/hdpvr/hdpvr-i2c.c
-@@ -10,6 +10,8 @@
- *
- */
-
-+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-+
- #include <linux/i2c.h>
- #include <linux/slab.h>
-
-@@ -22,8 +24,11 @@
- #define REQTYPE_I2C_WRITE 0xb0
- #define REQTYPE_I2C_WRITE_STATT 0xd0
-
--static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
-- char *data, int len)
-+#define HDPVR_HW_Z8F0811_IR_TX_I2C_ADDR 0x70
-+#define HDPVR_HW_Z8F0811_IR_RX_I2C_ADDR 0x71
-+
-+static int hdpvr_i2c_read(struct hdpvr_device *dev, int bus,
-+ unsigned char addr, char *data, int len)
- {
- int ret;
- char *buf = kmalloc(len, GFP_KERNEL);
-@@ -33,7 +38,7 @@ static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
- ret = usb_control_msg(dev->udev,
- usb_rcvctrlpipe(dev->udev, 0),
- REQTYPE_I2C_READ, CTRL_READ_REQUEST,
-- 0x100|addr, 0, buf, len, 1000);
-+ (bus << 8) | addr, 0, buf, len, 1000);
-
- if (ret == len) {
- memcpy(data, buf, len);
-@@ -46,8 +51,8 @@ static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
- return ret;
- }
-
--static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
-- char *data, int len)
-+static int hdpvr_i2c_write(struct hdpvr_device *dev, int bus,
-+ unsigned char addr, char *data, int len)
- {
- int ret;
- char *buf = kmalloc(len, GFP_KERNEL);
-@@ -58,7 +63,7 @@ static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
- ret = usb_control_msg(dev->udev,
- usb_sndctrlpipe(dev->udev, 0),
- REQTYPE_I2C_WRITE, CTRL_WRITE_REQUEST,
-- 0x100|addr, 0, buf, len, 1000);
-+ (bus << 8) | addr, 0, buf, len, 1000);
-
- if (ret < 0)
- goto error;
-@@ -68,7 +73,7 @@ static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
- REQTYPE_I2C_WRITE_STATT, CTRL_READ_REQUEST,
- 0, 0, buf, 2, 1000);
-
-- if (ret == 2)
-+ if ((ret == 2) && (buf[1] == (len - 1)))
- ret = 0;
- else if (ret >= 0)
- ret = -EIO;
-@@ -93,10 +98,10 @@ static int hdpvr_transfer(struct i2c_adapter *i2c_adapter, struct i2c_msg *msgs,
- addr = msgs[i].addr << 1;
-
- if (msgs[i].flags & I2C_M_RD)
-- retval = hdpvr_i2c_read(dev, addr, msgs[i].buf,
-+ retval = hdpvr_i2c_read(dev, 1, addr, msgs[i].buf,
- msgs[i].len);
- else
-- retval = hdpvr_i2c_write(dev, addr, msgs[i].buf,
-+ retval = hdpvr_i2c_write(dev, 1, addr, msgs[i].buf,
- msgs[i].len);
- }
-
-@@ -115,30 +120,58 @@ static struct i2c_algorithm hdpvr_algo = {
- .functionality = hdpvr_functionality,
- };
-
-+static struct i2c_adapter hdpvr_i2c_adapter_template = {
-+ .name = "Hauppage HD PVR I2C",
-+ .owner = THIS_MODULE,
-+ .id = I2C_HW_B_HDPVR,
-+ .algo = &hdpvr_algo,
-+};
-+
-+static struct i2c_board_info hdpvr_i2c_board_info = {
-+ I2C_BOARD_INFO("ir_tx_z8f0811_haup", HDPVR_HW_Z8F0811_IR_TX_I2C_ADDR),
-+ I2C_BOARD_INFO("ir_rx_z8f0811_haup", HDPVR_HW_Z8F0811_IR_RX_I2C_ADDR),
-+};
-+
-+static int hdpvr_activate_ir(struct hdpvr_device *dev)
-+{
-+ char buffer[8];
-+
-+ mutex_lock(&dev->i2c_mutex);
-+
-+ hdpvr_i2c_read(dev, 0, 0x54, buffer, 1);
-+
-+ buffer[0] = 0;
-+ buffer[1] = 0x8;
-+ hdpvr_i2c_write(dev, 1, 0x54, buffer, 2);
-+
-+ buffer[1] = 0x18;
-+ hdpvr_i2c_write(dev, 1, 0x54, buffer, 2);
-+
-+ mutex_unlock(&dev->i2c_mutex);
-+
-+ return 0;
-+}
-+
- int hdpvr_register_i2c_adapter(struct hdpvr_device *dev)
- {
-- struct i2c_adapter *i2c_adap;
- int retval = -ENOMEM;
-
-- i2c_adap = kzalloc(sizeof(struct i2c_adapter), GFP_KERNEL);
-- if (i2c_adap == NULL)
-- goto error;
-+ hdpvr_activate_ir(dev);
-
-- strlcpy(i2c_adap->name, "Hauppauge HD PVR I2C",
-- sizeof(i2c_adap->name));
-- i2c_adap->algo = &hdpvr_algo;
-- i2c_adap->owner = THIS_MODULE;
-- i2c_adap->dev.parent = &dev->udev->dev;
-+ memcpy(&dev->i2c_adapter, &hdpvr_i2c_adapter_template,
-+ sizeof(struct i2c_adapter));
-+ dev->i2c_adapter.dev.parent = &dev->udev->dev;
-
-- i2c_set_adapdata(i2c_adap, dev);
-+ i2c_set_adapdata(&dev->i2c_adapter, dev);
-
-- retval = i2c_add_adapter(i2c_adap);
-+ retval = i2c_add_adapter(&dev->i2c_adapter);
-+ if (retval)
-+ goto error;
-
-- if (!retval)
-- dev->i2c_adapter = i2c_adap;
-- else
-- kfree(i2c_adap);
-+ i2c_new_device(&dev->i2c_adapter, &hdpvr_i2c_board_info);
-
- error:
- return retval;
- }
-+
-+#endif
-diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c
-index c338f3f..26fd9bf 100644
---- a/drivers/media/video/hdpvr/hdpvr-video.c
-+++ b/drivers/media/video/hdpvr/hdpvr-video.c
-@@ -1221,12 +1221,9 @@ static void hdpvr_device_release(struct video_device *vdev)
- v4l2_device_unregister(&dev->v4l2_dev);
-
- /* deregister I2C adapter */
--#ifdef CONFIG_I2C
-+#if defined(CONFIG_I2C) || (CONFIG_I2C_MODULE)
- mutex_lock(&dev->i2c_mutex);
-- if (dev->i2c_adapter)
-- i2c_del_adapter(dev->i2c_adapter);
-- kfree(dev->i2c_adapter);
-- dev->i2c_adapter = NULL;
-+ i2c_del_adapter(&dev->i2c_adapter);
- mutex_unlock(&dev->i2c_mutex);
- #endif /* CONFIG_I2C */
-
-diff --git a/drivers/media/video/hdpvr/hdpvr.h b/drivers/media/video/hdpvr/hdpvr.h
-index b0f046d..2107055 100644
---- a/drivers/media/video/hdpvr/hdpvr.h
-+++ b/drivers/media/video/hdpvr/hdpvr.h
-@@ -102,7 +102,7 @@ struct hdpvr_device {
- struct work_struct worker;
-
- /* I2C adapter */
-- struct i2c_adapter *i2c_adapter;
-+ struct i2c_adapter i2c_adapter;
- /* I2C lock */
- struct mutex i2c_mutex;
-
-diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
-index 4bef5c5..4385341 100644
---- a/include/linux/i2c-id.h
-+++ b/include/linux/i2c-id.h
-@@ -33,5 +33,6 @@
-
- /* --- Bit algorithm adapters */
- #define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */
-+#define I2C_HW_B_HDPVR 0x010025 /* Hauppauge HD PVR */
-
- #endif /* LINUX_I2C_ID_H */
diff --git a/freed-ora/current/master/kernel.spec b/freed-ora/current/master/kernel.spec
index 81465de70..f78a4b019 100644
--- a/freed-ora/current/master/kernel.spec
+++ b/freed-ora/current/master/kernel.spec
@@ -6,7 +6,7 @@ Summary: The Linux kernel
# For a stable, released kernel, released_kernel should be 1. For rawhide
# and/or a kernel built from an rc or git snapshot, released_kernel should
# be 0.
-%global released_kernel 1
+%global released_kernel 0
# Save original buildid for later if it's defined
%if 0%{?buildid:1}
@@ -51,7 +51,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be prepended with "0.", so
# for example a 3 here will become 0.3
#
-%global baserelease 1
+%global baserelease 0
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@@ -65,7 +65,7 @@ Summary: The Linux kernel
# To be inserted between "patch" and "-2.6.".
#define stablelibre -libre
-#define rcrevlibre -libre
+%define rcrevlibre -libre
#define gitrevlibre -libre
# libres (s for suffix) may be bumped for rebuilds in which patches
@@ -96,9 +96,9 @@ Summary: The Linux kernel
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level
-%define rcrev 8
+%define rcrev 6
# The git snapshot level
-%define gitrev 4
+%define gitrev 0
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}
%endif
@@ -144,7 +144,7 @@ Summary: The Linux kernel
%define doc_build_fail true
%endif
-%define rawhide_skip_docs 0
+%define rawhide_skip_docs 1
%if 0%{?rawhide_skip_docs}
%define with_doc 0
%define doc_build_fail true
@@ -167,7 +167,7 @@ Summary: The Linux kernel
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
# and 0 for rawhide (all kernels are debug kernels).
# See also 'make debug' and 'make release'.
-%define debugbuildsenabled 1
+%define debugbuildsenabled 0
# Want to build a vanilla kernel build without any non-upstream patches?
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
@@ -548,8 +548,9 @@ Source0: http://linux-libre.fsfla.org/pub/linux-libre/freed-ora/src/linux-%{kver
# For documentation purposes only.
Source3: deblob-main
-Source4: deblob-%{kversion}
-Source5: deblob-check
+Source4: deblob-check
+Source5: deblob-%{kversion}
+Source6: deblob-%{rpmversion}
Source11: genkey
Source14: find-provides
@@ -643,7 +644,6 @@ Patch31: linux-2.6-utrace.patch
Patch32: linux-2.6-utrace-ptrace.patch
Patch150: linux-2.6.29-sparc-IOC_TYPECHECK.patch
-Patch151: sparc64_fix_build_errors_with_gcc460.patch
Patch160: linux-2.6-32bit-mmap-exec-randomization.patch
Patch161: linux-2.6-i386-nx-emulation.patch
@@ -656,7 +656,6 @@ Patch204: linux-2.6-debug-always-inline-kzalloc.patch
Patch380: linux-2.6-defaults-pci_no_msi.patch
Patch381: linux-2.6-defaults-pci_use_crs.patch
Patch383: linux-2.6-defaults-aspm.patch
-Patch386: pci-_osc-supported-field-should-contain-supported-features-not-enabled-ones.patch
Patch385: ima-allow-it-to-be-completely-disabled-and-default-off.patch
@@ -667,7 +666,6 @@ Patch394: linux-2.6-acpi-debug-infinite-loop.patch
Patch450: linux-2.6-input-kill-stupid-messages.patch
Patch452: linux-2.6.30-no-pcspkr-modalias.patch
-Patch454: thinkpad-acpi-fix-backlight.patch
Patch460: linux-2.6-serial-460800.patch
@@ -693,13 +691,13 @@ Patch1555: fix_xen_guest_on_old_EC2.patch
# nouveau + drm fixes
Patch1810: drm-nouveau-updates.patch
-Patch1819: drm-intel-big-hammer.patch
# intel drm is all merged upstream
Patch1824: drm-intel-next.patch
# make sure the lvds comes back on lid open
Patch1825: drm-intel-make-lvds-work.patch
Patch1826: drm-intel-edp-fixes.patch
Patch1827: drm-i915-gen4-has-non-power-of-two-strides.patch
+Patch1828: drm-intel-eeebox-eb1007-quirk.patch
Patch1900: linux-2.6-intel-iommu-igfx.patch
@@ -721,41 +719,27 @@ Patch2910: linux-2.6-v4l-dvb-add-lgdt3304-support.patch
Patch2912: linux-2.6-v4l-dvb-ir-core-update.patch
#Patch2916: lirc-staging-2.6.36-fixes.patch
-#Patch2917: hdpvr-ir-enable.patch
-
-Patch2918: flexcop-fix-xlate_proc_name-warning.patch
# fs fixes
# NFSv4
# patches headed upstream
-
-Patch12001: perf-gcc460-build-fixes.patch
-
Patch12010: add-appleir-usb-driver.patch
Patch12016: disable-i8042-check-on-apple-mac.patch
-Patch12017: prevent-runtime-conntrack-changes.patch
-
Patch12018: neuter_intel_microcode_load.patch
-Patch12101: apple_backlight.patch
-Patch12102: efifb_update.patch
Patch12200: acpi_reboot.patch
-Patch12210: efi_default_physical.patch
# Runtime power management
-Patch12202: linux-2.6-ehci-check-port-status.patch
Patch12203: linux-2.6-usb-pci-autosuspend.patch
Patch12204: linux-2.6-enable-more-pci-autosuspend.patch
Patch12205: runtime_pm_fixups.patch
Patch12303: dmar-disable-when-ricoh-multifunction.patch
-Patch12421: fs-call-security_d_instantiate-in-d_obtain_alias.patch
-
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1227,10 +1211,10 @@ ApplyOptionalPatch linux-2.6-upstream-reverts.patch -R
ApplyPatch linux-2.6-hotfixes.patch
# Roland's utrace ptrace replacement.
-ApplyPatch linux-2.6-utrace-revert-make-ptrace-functions-static.patch
-ApplyPatch linux-2.6-tracehook.patch
-ApplyPatch linux-2.6-utrace.patch
-ApplyPatch linux-2.6-utrace-ptrace.patch
+#ApplyPatch linux-2.6-utrace-revert-make-ptrace-functions-static.patch
+#ApplyPatch linux-2.6-tracehook.patch
+#ApplyPatch linux-2.6-utrace.patch
+#ApplyPatch linux-2.6-utrace-ptrace.patch
# Architecture patches
# x86(-64)
@@ -1247,7 +1231,6 @@ ApplyPatch linux-2.6-utrace-ptrace.patch
# SPARC64
#
ApplyPatch linux-2.6.29-sparc-IOC_TYPECHECK.patch
-ApplyPatch sparc64_fix_build_errors_with_gcc460.patch
#
# Exec shield
@@ -1294,8 +1277,6 @@ ApplyPatch linux-2.6-defaults-pci_no_msi.patch
ApplyPatch linux-2.6-defaults-pci_use_crs.patch
# enable ASPM by default on hardware we expect to work
ApplyPatch linux-2.6-defaults-aspm.patch
-# rhbz#638912
-#ApplyPatch pci-_osc-supported-field-should-contain-supported-features-not-enabled-ones.patch
#ApplyPatch ima-allow-it-to-be-completely-disabled-and-default-off.patch
@@ -1319,8 +1300,6 @@ ApplyPatch die-floppy-die.patch
ApplyPatch linux-2.6.30-no-pcspkr-modalias.patch
-#ApplyPatch thinkpad-acpi-fix-backlight.patch
-
# Allow to use 480600 baud on 16C950 UARTs
ApplyPatch linux-2.6-serial-460800.patch
@@ -1357,13 +1336,13 @@ ApplyOptionalPatch drm-nouveau-updates.patch
# Intel DRM
ApplyOptionalPatch drm-intel-next.patch
-ApplyPatch drm-intel-big-hammer.patch
ApplyPatch drm-intel-make-lvds-work.patch
ApplyPatch linux-2.6-intel-iommu-igfx.patch
-ApplyPatch drm-intel-edp-fixes.patch
+#ApplyPatch drm-intel-edp-fixes.patch
# rhbz#681285 (i965: crash in brw_wm_surface_state.c::prepare_wm_surfaces()
# where intelObj->mt == NULL)
#ApplyPatch drm-i915-gen4-has-non-power-of-two-strides.patch
+ApplyPatch drm-intel-eeebox-eb1007-quirk.patch
# linux1394 git patches
#ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1384,15 +1363,8 @@ ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch
# http://www.lirc.org/
#ApplyOptionalPatch lirc-staging-2.6.36-fixes.patch
-# enable IR receiver on Hauppauge HD PVR (v4l-dvb merge pending)
-#ApplyPatch hdpvr-ir-enable.patch
-
-# rhbz#664852
-ApplyPatch flexcop-fix-xlate_proc_name-warning.patch
# Patches headed upstream
-ApplyPatch perf-gcc460-build-fixes.patch
-
ApplyPatch disable-i8042-check-on-apple-mac.patch
ApplyPatch add-appleir-usb-driver.patch
@@ -1400,13 +1372,9 @@ ApplyPatch add-appleir-usb-driver.patch
ApplyPatch neuter_intel_microcode_load.patch
# various fixes for Apple and EFI
-ApplyPatch apple_backlight.patch
-ApplyPatch efifb_update.patch
ApplyPatch acpi_reboot.patch
-ApplyPatch efi_default_physical.patch
# Runtime PM
-ApplyPatch linux-2.6-ehci-check-port-status.patch
#ApplyPatch linux-2.6-usb-pci-autosuspend.patch
### Broken by implicit notify support & ACPICA rebase
###ApplyPatch linux-2.6-enable-more-pci-autosuspend.patch
@@ -1415,9 +1383,6 @@ ApplyPatch linux-2.6-ehci-check-port-status.patch
# rhbz#605888
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
-# rhbz#662344,600690
-ApplyPatch fs-call-security_d_instantiate-in-d_obtain_alias.patch
-
# END OF PATCH APPLICATIONS
%endif
@@ -2026,7 +1991,135 @@ fi
# and build.
%changelog
-* Wed Mar 16 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
+* Thu May 5 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
+- Deblobbed 2.6.39-libre-rc6.
+
+* Tue May 03 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Linux 2.6.39-rc6
+
+* Sun May 01 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Update to snapshot 2.6.39-rc5-git5
+
+* Thu Apr 28 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc5.git1.0
+- Update to snapshot 2.6.39-rc5-git1
+- Edit scripts/rebase.sh to not keep appending to .gitignore when the new
+ .bz2 files are covered by wildcards.
+
+* Wed Apr 27 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Linux 2.6.39-rc5
+
+* Tue Apr 26 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Update to 2.6.39-rc4-git8
+
+* Sun Apr 24 2011 Kyle McMartin <kmcmartin@redhat.com>
+- ppc64: disable TUNE_CELL, which causes problems with illegal instuctions
+ being generated on non-Cell PPC machines. (#698256)
+
+* Wed Apr 20 2011 Dave Jones <davej@redhat.com> 2.6.39-0.rc4.git2.0
+- Update to 2.6.39-rc4-git2
+
+* Tue Apr 19 2011 Dave Jones <davej@redhat.com>
+- Build USB_SERIAL in instead of modular.
+ Enable USB_SERIAL_CONSOLE.
+
+* Wed Apr 13 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc3.git2.0
+- Update to snapshot 2.6.39-rc3-git2
+
+* Mon Apr 11 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc2.git3.0
+- Update to git snapshot 2.6.39-rc2-git3
+- efifb_update.patch: drop, upstream.
+
+* Thu Apr 07 2011 Hans de Goede <hdegoede@redhat.com>
+- Add a no lvds quirk for the Asus EB1007 to the i915 drm driver,
+ this fixes gnome-shell not working on it
+
+* Wed Apr 06 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc2.git0.0
+- Update to 2.6.39-rc2
+
+* Tue Apr 05 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git5.0
+- Update to git snapshot 2.6.39-rc1-git5
+- (Not test-built before commit since my rawr box is down atm.)
+
+* Sat Apr 02 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git3.0
+- Update to snapshot 2.6.39-rc1-git3
+- generic: CONFIG_USB_VL600=m
+
+* Thu Mar 31 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git1.0
+- Update to snapshot 2.6.39-rc1-git1
+
+* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Disable CONFIG_IMA, CONFIG_TCG_TPM on powerpc (#689468)
+
+* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Disable qla4xxx (CONFIG_SCSI_QLA_ISCSI) driver on powerpc32 (#686199)
+
+* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git0.0
+- ... and then 2.6.39-rc1
+
+* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git21.0
+- Update to snapshot 2.6.38-git21
+- Enable some new x86{_64} platform drivers.
+
+* Mon Mar 28 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git19.0
+- Update to snapshot 2.6.38-git19
+- Drop upstream patches:
+ - acpi_battery-fribble-sysfs-files-from-a-resume-notifier.patch
+ - apple_backlight.patch
+- Rebased:
+ - acpi_reboot.patch
+ - linux-2.6-acpi-debug-infinite-loop.patch
+ - linux-2.6-debug-sizeof-structs.patch
+ - linux-2.6-i386-nx-emulation.patch
+- Disabled:
+ - utrace.
+
+* Fri Mar 25 2011 Chuck Ebbert <cebbert@redhat.com>
+- Drop unused patches already applied upstream:
+ hdpvr-ir-enable.patch
+ thinkpad-acpi-fix-backlight.patch
+
+* Wed Mar 23 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Re-create ACPI battery sysfs files on resume from suspend, fixes the
+ upstream changes to the dropped
+ acpi-update-battery-information-on-notification-0x81.patch.
+
+* Wed Mar 23 2011 Kyle McMartin <kmcmartin@redhat.com>
+- Update to 2.6.38-git12
+- Enable I2C_DIOLAN_U2C USB i2c adapter [all], I2C_PXA [i686].
+
+* Tue Mar 22 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git11.0
+- Update to 2.6.38-git11
+- Drop merged fs-call-security_d_instantiate-in-d_obtain_alias.patch
+- Fix context in add-appleir-usb-driver.patch
+- Enable firewire ALSA modules, HP accelerometer driver.
+- Re-enable PSTORE, seems to be fixed.
+- Fix utrace-ptrace for upstream smp_lock removal.
+
+* Fri Mar 18 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git6.0
+- Update to 2.6.38-git6
+- CONFIG_IP_SET modules and associated netfilter goo.
+- New network packet scheduler modules (sch, choke, mqprio.)
+- Enable DMI sysfs interface (built-in) on ia64, x86_64, i386.
+- Explicitly set USB storage goo as modular.
+- Drop merged patches, nil-ify drm-nouveau-updates, fix context in crash.ko
+ Kconfig diff.
+
+* Thu Mar 17 2011 Matthew Garrett <mjg@redhat.com>
+- drop efi_default_physical.patch - it's actually setting up something that's
+ neither physical nor virtual, and it's probably breaking EFI boots
+
+* Wed Mar 16 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git1.1
+- Test out scripts/rebase.sh on 2.6.38-git1.
+- Enable fhandle syscalls (ugh. conditional syscalls... update
+ CONFIG_EXPORTFS to =y, since it's now a bool.)
+- CONFIG_XEN_DEBUG [i386,x86_64] =n, but possibly should be -debug
+ conditional. Needs a xen user to benchmark and see how bad the overhead
+ is.
+
+* Tue Mar 15 2011 Adam Jackson <ajax@redhat.com>
+- drm-intel-big-hammer.patch: Drop.
+
+* Tue Mar 15 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre Wed Mar 16
- Deblobbed to 2.6.38-libre.
* Tue Mar 15 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-1
@@ -2219,868 +2312,8 @@ fi
* Wed Jan 19 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc1.git0.1
- Linux 2.6.38-rc1
-* Tue Jan 18 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git18.1
-- Linux 2.6.37-git18
-
-* Mon Jan 17 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git16.1
-- Linux 2.6.37-git16
-- config changes:
- - CONFIG_SQUASHFS_XZ=y [generic]
- - CONFIG_SPARSE_IRQ=y [arm]
-
-* Sat Jan 15 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git13.1
-- Linux 2.6.37-git13
-- Drop xen_export-arbitrary_virt_to_machine.patch, upstream.
-
-* Fri Jan 14 2011 Kyle McMartin <kmcmartin@redhat.com>
-- xen_export-arbitrary_virt_to_machine.patch: pull patch from upstream
- to fix build error.
-
-* Fri Jan 14 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git12.1
-- Linux 2.6.37-git12
-- 0001-use-__devexit-not-__exit-in-n2_unregister_algs-fixes.patch: drop
- upstream patch.
-- acpi-update-battery-information-on-notification-0x81.patch: drop upstream
- patch.
-- mm-*.patch: drop upstream patches.
-- important config changes:
- ACPI_IPMI=m
- CRYPTO_AES_NI_INTEL=m [i386]
- TRANSPARENT_HUGEPAGE=y
-
-* Wed Jan 12 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git9.1
-- Linux 2.6.37-git9
-- Re-enable DEBUG_SET_MODULE_RONX since commit 94462ad3 fixed it.
-- Enable some more new random HID and sensor junk as modules.
-
-* Tue Jan 11 2011 Matthew Garrett <mjg@redhat.com>
-- linux-2.6-ehci-check-port-status.patch - fix USB resume on some AMD systems
-
-* Mon Jan 10 2011 Jarod Wilson <jarod@redhat.com>
-- Add support for local rebuild config option overrides
-- Add missing --with/--without pae build flag support
-
-* Mon Jan 10 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git4.2
-- Disable DEBUG_SET_MODULE_RONX for now, it causes boot-up to fail since
- dynamic ftrace is trying to rewrite instructions on module load.
-
-* Mon Jan 10 2011 Kyle McMartin <kmcmartin@redhat.com>
-- Drop obsolete linux-2.6-debug-nmi-timeout.patch
-
-* Mon Jan 10 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc0.git4.1
-- Branch for 2.6.38
-- Rebase trivial patches.
-- Switch debug configs back on.
-- config changes:
- DEBUG_SET_MODULE_RONX=y
- B43_PHY_N=y
- RT2800USB_RT33XX=y |
- RT2800PCI_RT33XX=y | experimental
- WL12XX=m
- RTL8192CE=m
- CAN_SLCAN=m
- SCHED_AUTOGROUP=n
-
-* Fri Jan 07 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.37-2
-- drm_i915-check-eDP-encoder-correctly-when-setting-modes.patch reported to
- fix HP/Sony eDP issues by adamw and airlied.
-
-* Wed Jan 05 2011 Dennis Gilmore <dennis@ausil.us>
-- build sparc headers on sparcv9
-
-* Tue Jan 04 2011 Dennis Gilmore <dennis@ausil.us>
-- add patch for sparc build failure
-
-* Tue Jan 04 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre Wed Jan 05
-- Deblobbed to 2.6.37-libre.
-
-* Tue Jan 04 2011 Kyle McMartin <kyle@redhat.com> 2.6.37-1
-- Track release of 2.6.37
-
-* Mon Jan 03 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Deblobbed patch-libre-2.6.37-rc8.
-
-* Mon Jan 03 2011 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc8.git3.1
-- Linux 2.6.37-rc8-git3
-- Merged acpi battery notification patch and -rc8.
-
-* Thu Dec 23 2010 Kyle McMartin <kyle@redhat.com>
-- Pull in flexcop procfs rename patch since it's still not upstream. (#664852)
-
-* Tue Dec 21 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre Tue Dec 28
-- Deblobbed patch-libre-2.6.37-rc7.
-
-* Tue Dec 21 2010 Kyle McMartin <kyle@redhat.com> 2.6.37.0.rc7.git0.2
-- Linux 2.6.37-rc7
-- CONFIG_USB_OTG=n (seems unnecessary?)
-- Enable release builds until .37 releases in rawhide.
-
-* Sun Dec 19 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc6.git5.1
-- Linux 2.6.37-rc6-git5
-- sched-cure-more-NO_HZ-load-average-woes.patch: upstream.
-
-* Sat Dec 18 2010 Kyle McMartin <kyle@redhat.com>
-- Patch from nhorman against f13:
- Enhance AF_PACKET to allow non-contiguous buffer alloc (#637619)
-
-* Sat Dec 18 2010 Kyle McMartin <kyle@redhat.com>
-- Fix SELinux issues with NFS/btrfs and/or xfsdump. (#662344)
-
-* Fri Dec 17 2010 Matthew Garrett <mjg@redhat.com> 2.6.37-0.rc6.git0.3
-- efi_default_physical.patch: Revert hunk that breaks boot
-- linux-next-macbook-air-input.patch: Add input support for new Macbook Airs
-
-* Thu Dec 16 2010 Matthew Garrett <mjg@redhat.com> 2.6.37-0.rc6.git0.2
-- applesmc_update.patch: Make the driver more generic. Should help Apples.
-- apple_backlight.patch: Make sure that this loads on all hardware.
-- efifb_update.patch: Fixes for the 11 inch Macbook Air
-- acpi_reboot.patch: Should make reboot work better on most hardware
-- efi_default_physical.patch: Some machines dislike EFI virtual mode
-
-* Wed Dec 15 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc6.git0.1
-- Linux 2.6.37-rc6
-- Re-activate acpi patch which rejected on the previous commit.
-
-* Wed Dec 15 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc5.git5.1
-- 2.6.37-rc5-git5
-
-* Fri Dec 10 2010 Kyle McMartin <kyle@redhat.com>
-- Another patch from mjg59: Set _OSC supported field correctly (#638912)
-
-* Fri Dec 10 2010 Kyle McMartin <kyle@redhat.com>
-- pci-disable-aspm-if-bios-asks-us-to.patch: Patch from mjg59 to disable
- ASPM if the BIOS has disabled it, but enabled it already on some devices.
-
-* Thu Dec 09 2010 Kyle McMartin <kyle@redhat.com>
-- Snarf patch from wireless-next to fix mdomsch's orinico wifi.
- (orinoco: initialise priv->hw before assigning the interrupt)
- [229bd792] (#657864)
-
-* Thu Dec 09 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre Mon Dec 27
-- Deblobbed patch-libre-2.6.37-rc5.
-
-* Wed Dec 08 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc5.git2.1
-- Linux 2.6.37-rc5-git2
-- sched-cure-more-NO_HZ-load-average-woes.patch: fix some of the complaints
- in 2.6.35+ about load average with dynticks. (rhbz#650934)
-
-* Tue Dec 07 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc5.git0.1
-- Linux 2.6.37-rc5
-
-* Sat Dec 04 2010 Kyle McMartin <kyle@redhat.com>
-- Enable C++ symbol demangling with perf by linking against libiberty.a,
- which is LGPL2.
-
-* Fri Dec 03 2010 Kyle McMartin <kyle@redhat.com>
-- Linux 2.6.37-rc4-git3
-- Enable HP ILO on x86_64 for (#571329)
-- Drop merged drm-fixes.patch, split out edp-fixes.
-- tty-dont-allow-reopen-when-ldisc-is-changing.patch: upstream.
-- tty-ldisc-fix-open-flag-handling.patch: upstream.
-- Enable CIFS_ACL.
-
-* Thu Dec 02 2010 Kyle McMartin <kyle@redhat.com>
-- Grab some of Mel's fixes from -mmotm to hopefully sort out #649694.
-
-* Wed Dec 01 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc4.git1.1
-- Linux 2.6.37-rc4-git1
-- Pull in DRM fixes that are queued for -rc5 [3074adc8]
- + edp-fixes on top
-
-* Tue Nov 30 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc4.git0.1
-- Linux 2.6.37-rc4
-
-* Mon Nov 29 2010 Kyle McMartin <kyle@redhat.com>
-- Update debug-vm-would_have_oomkilled patch.
-
-* Mon Nov 29 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc3.git6.1
-- Linux 2.6.37-rc3-git6
-- TTY: open/hangup race fixup (rhbz#630464)
-
-* Fri Nov 26 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc3.git3.1
-- Linux 2.6.37-rc3-git3
-- Print tty->flags as well in debugging patch...
-
-* Fri Nov 26 2010 Kyle McMartin <kyle@redhat.com>
-- Copy tty_open WARN_ON debugging patch from rawhide.
-
-* Fri Nov 26 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc3.git2.1
-- Linux 2.6.37-rc3-git2
-- CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set, so the cgroup memory
- resource controller swap accounting is disabled by default. You can
- enable it with 'swapaccount' if desired.
-- TTY: don't allow reopen when ldisc is changing (rhbz#630464)
-
-* Wed Nov 24 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc3.git1.1
-- Linux 2.6.37-rc3-git1
-
-* Mon Nov 22 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc3.git0.1
-- Linux 2.6.37-rc3
-
-* Sat Nov 20 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc2.git7.1
-- Linux 2.6.37-rc2-git7
-
-* Fri Nov 19 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.rc2.git5.1
-- Linux 2.6.37-rc2-git5
-
-* Thu Nov 18 2010 Kyle McMartin <kyle@redhat.com>
-- Move %{fedora_build} in the un-released (ie: -git/-rc) kernel case for
- a variety of reasons, principally so that:
- 1: Bumping %baserelease isn't needed if we're just updating snapshots.
- 2: %buildid will sort as newer so we don't need to bump baserelease when
- building bugzilla fixes.
-
-* Wed Nov 17 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc2.git2
-- Linux 2.6.37-rc2-git2
-- enable STRICT_DEVMEM on s390x.
-
-* Wed Nov 17 2010 Kyle McMartin <kyle@redhat.com>
-- Make vmlinuz/System.map root read-write only by default. You can just
- chmod 644 them later if you (unlikely) need them without root.
-
-* Mon Nov 15 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc2.git0
-- Linux 2.6.37-rc2
-
-* Sat Nov 13 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc1.git10
-- Linux 2.6.37-rc1-git10
-- SECURITY_DMESG_RESTRICT added, the principle of least surprise dictates
- we should probably have it off. If you want to restrict dmesg access
- you may use the kernel.dmesg_restrict sysctl.
-- linux-2.6-bluetooth-autosuspend.patch: merged upstream.
-
-* Tue Nov 09 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc1.git7
-- Linux 2.6.37-rc1-git7
-
-* Mon Nov 08 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc1.git5
-- Linux 2.6.37-rc1-git5
-
-* Mon Nov 08 2010 Kyle McMartin <kyle@redhat.com>
-- Cherry-pick utrace-ptrace fixes from mayoung. Thanks!
-
-* Tue Nov 02 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc1.git0
-- Linux 2.6.37-rc1
-
-* Tue Oct 26 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc0.git8
-- Linux 2.6.36-git8
-
-* Fri Oct 22 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc0.git2
-- Switch to tracking git snapshots of what will become 2.6.37.
-- Fix context rejects in utrace and a few other patches.
-
-* Thu Oct 21 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-* Deblobbed 2.6.36-libre.
-
-* Wed Oct 20 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.36-1
-- Linux 2.6.36
-
-* Wed Oct 20 2010 Matthew Garrett <mjg@redhat.com> 2.6.36-0.42.rc8.git5
-- runtime_pm_fixups.patch: should fix this on Thinkpads
-
-* Tue Oct 19 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.36-0.41.rc8.git5
-- Linux 2.6.36-rc8-git5
-- Update PCI _CRS fixes
-
-* Mon Oct 18 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.40.rc8.git0
-- Backport xHCI suspend/resume code from linux-next.
-
-* Mon Oct 18 2010 Kyle McMartin <kyle@redhat.com>
-- ima: Default it to off, pass ima=on to enable. Reduce impact of the option
- when disabled.
-
-* Mon Oct 18 2010 Kyle McMartin <kyle@redhat.com>
-- Quirk to disable DMAR with Ricoh card reader/firewire. (rhbz#605888)
-
-* Fri Oct 15 2010 Kyle McMartin <kyle@redhat.com>
-- Switched to pci=use_crs by default (it should have been fixed since
- cebbert sucked in the patches anyway.)
-
-* Fri Oct 15 2010 Kyle McMartin <kyle@redhat.com>
-- backport pnpacpi-cope-with-invalid-device-ids from linux-next.
- (rhbz#641468)
-
-* Fri Oct 15 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Deblobbed patch-libre-2.6.36-rc8.
-
-* Fri Oct 15 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.39.rc8.git0
-- Linux 2.6.36-rc8.
-
-* Thu Oct 14 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.38.rc7.git5
-- Linux 2.6.36-rc7-git5
-- Disable runtime PM until it can be poked at.
-
-* Tue Oct 12 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.36.rc7.git3
-- Linux 2.6.36-rc7-git3
-- Drop fix-oldnoconfig-to-dtrt.patch, nonintconfig patches are upstream!
-
-* Mon Oct 11 2010 Matthew Garrett <mjg@redhat.com> 2.6.36-0.35.rc7.git1
-- linux-2.6-enable-more-pci-autosuspend.patch: Enable more PCI autosuspend
-
-* Wed Oct 6 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Deblobbed patch-libre-2.6.36-rc7.
-
-* Wed Oct 06 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.35.rc7.git0
-- Linux 2.6.36-rc7 upstream.
-
-* Wed Oct 06 2010 Dave Jones <davej@redhat.com>
-- Another day, another rcu_dereference warning. (#640673)
-
-* Tue Oct 05 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.34.rc6.git3
-- Linux 2.6.36-rc6-git3
-- Drop intel_ips patches merged upstream.
-
-* Sun Oct 03 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.32.rc6.git2
-- Enable printk.time by default for more useful logs.
-
-* Sat Oct 02 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.31.rc6.git2
-- Linux 2.6.36-rc6-git2
-
-* Thu Sep 30 2010 Dave Jones <davej@redhat.com>
-- silence another rcu_reference warning
-
-* Thu Sep 30 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.30.rc6
-- Collection of patches to make intel_ips work properly.
-
-* Wed Sep 29 2010 Dave Jones <davej@redhat.com>
-- Add back an old hack to make an SDV e1000e variant work.
-
-* Wed Sep 29 2010 Dave Jones <davej@redhat.com>
-- Enable IB700 watchdog (used by qemu/kvm). (#637152)
-
-* Tue Sep 28 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Deblobbed patch-libre-2.6.36-rc6.
-
-* Tue Sep 28 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.28.rc6
-- Linux 2.6.36-rc6
-
-* Fri Sep 24 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.36-0.27.rc5.git6
-- Linux 2.6.36-rc5-git6
-
-* Thu Sep 23 2010 Kyle McMartin <kyle@redhat.com>
-- Bump x86 NR_CPUS to 64. (Still 512/256 on x86_64.)
-
-* Thu Sep 23 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.36-0.26.rc5.git4
-- Linux 2.6.36-rc5-git4
-- Drop merged patches:
- fix-icebp-breakpoints.patch
- linux-2.6.35.4-virtio_console-fix-poll.patch
-- Add patches to fix problems with PCI _CRS
-
-* Thu Sep 23 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.25.rc5
-- Add s390 vdso AFTER_LINK to Roland's linux-2.6-makefile-after_link.patch
-
-* Thu Sep 23 2010 Kyle McMartin <kyle@redhat.com>
-- Snipe ACPI patch from mjg59 to fix battery levels on some laptops.
-
-* Tue Sep 21 2010 Kyle McMartin <kyle@redhat.com>
-- Add new btusb ids for MacBookPro from wwoods@.
-
-* Tue Sep 21 2010 Alexandre Oliva <lxoliva@fsfla.org> - libre
-- Deblobbed patch-libre-2.6.36-rc5.
-
-* Mon Sep 20 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.24.rc5
-- Linux 2.6.36-rc5
-
-* Sun Sep 19 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.23.rc4.git4
-- Linux 2.6.36-rc4-git4
-- Drop alsa-fix-substream-proc-status-read.patch, now merged.
-
-* Fri Sep 17 2010 Matthew Garrett <mjg@redhat.com>
-- linux-2.6-bluetooth-autosuspend.patch
- linux-2.6-uvc-autosuspend.patch
- linux-2.6-qcserial-autosuspend.patch
- linux-2.6-usb-pci-autosuspend.patch - Get some more devices into USB
- autosuspend by default, and then put unused USB controllers to sleep
-
-* Thu Sep 16 2010 Hans de Goede <hdegoede@redhat.com>
-- Small fix to virtio_console poll fix from upstream review
-
-* Wed Sep 15 2010 Hans de Goede <hdegoede@redhat.com>
-- virtio_console: Fix poll/select blocking even though there is data to read
-
-* Wed Sep 15 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre Thu Sep 16
-- Deblobbed patch-libre-2.6.36-rc4.
-
-* Wed Sep 15 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.22.rc4.git2
-- Linux 2.6.36-rc4-git2
-- Fix up add-appleir-usb-driver.patch after HID core changes.
-
-* Mon Sep 13 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.21.rc4.git1
-- Linux 2.6.36-rc4-git1
-- Add preliminary support for Wacom Bamboo pen and touch devices.
-- Require python-devel and perl(ExtUtils::Embed) when building perf package (#632942)
-
-* Sat Sep 11 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.20.rc3.git4
-- Linux 2.6.36-rc3-git4
-- Drop revert-drm-i915-enable-rc6-on-ironlake.patch, now merged
-
-* Fri Sep 10 2010 Bastien Nocera <bnocera@redhat.com> - 2.6.36-0.19.rc3.git1
-- Update AppleIR patch to work, and support the enter key on
- newer remotes
-
-* Wed Sep 08 2010 Kyle McMartin <kyle@redhat.com>
-- Enable GPIO_SYSFS. (#631958)
-
-* Wed Sep 08 2010 Kyle McMartin <kyle@redhat.com>
-- Make pci=use_crs a compile-time config option we can switch the default
- value of easily.
-
-* Wed Sep 08 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.18.rc3.git1
-- 2.6.36-rc3-git1
-- Set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS for nodebug, and unset for debug.
- Which seems like the sensible thing to do given the Kconfig default is y.
-
-* Tue Sep 07 2010 Dave Jones <davej@redhat.com>
-- Disable hung task checker, it only ever causes false positives. (#630777)
-
-* Tue Sep 07 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.17.rc3.git0
-- Revert ce171780 which breaks my graphics on resume.
- (drm/i915: Enable RC6 on Ironlake.)
-
-* Fri Sep 03 2010 Kyle McMartin <kyle@redhat.com>
-- Restore AppleIR USB driver which got lost between F-13 and now.
-
-* Fri Sep 03 2010 Dave Jones <davej@redhat.com> 2.6.36-0.16.rc3.git0
-- exec-randomization: brk away from exec rand area (Kees Cook)
-
-* Fri Sep 03 2010 Dave Jones <davej@redhat.com>
-- Remove the execshield boot parameter.
- Based on a patch from Kees Cook
-
-* Thu Sep 02 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.15.rc3.git0
-- Add patch from ALSA mailing list to try to fix bug #628404
-- tpm-fix-stall-on-boot.patch: attempt to fix stalls during boot (#530393)
-
-* Wed Sep 01 2010 Kyle McMartin <kyle@redhat.com> - 2.6.36-0.14.rc3.git0
-- Fix icebp breakpoints, patch from Frederic Weisbecker.
- (https://bugzilla.kernel.org/show_bug.cgi?id=16315#c26)
-
-* Wed Sep 01 2010 Kyle McMartin <kyle@redhat.com> - 2.6.36-0.13.rc3.git0
-- Swap back to roland's auto-updated utrace patches.
-
-* Mon Aug 30 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Deblobbed patch-libre-2.6.36-rc3.
-
-* Mon Aug 30 2010 Kyle McMartin <kyle@redhat.com> - 2.6.36-0.12.rc3.git0
-- Linux 2.6.36-rc3
-
-* Sun Aug 29 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.11.rc2.git5
-- Linux 2.6.36-rc2-git5
-
-* Wed Aug 25 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.10.rc2.git4
-- Linux 2.6.36-rc2-git4
-
-* Tue Aug 24 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.9.rc2.git3
-- Linux 2.6.36-rc2-git3
-
-* Mon Aug 23 2010 Roland McGrath <roland@redhat.com> - 2.6.36-0.8.rc2.git0
-- utrace update
-
-* Sun Aug 22 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.7.rc2.git0
-- Linux 2.6.36-rc2
-
-* Sun Aug 22 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.7.rc1.git4
-- Linux 2.6.36-rc1-git4
-- Fix context in linux-2.6-i386-nx-emulation.patch
-
-* Sat Aug 21 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.6.rc1.git3
-- Drop utrace patch that causes hang on boot.
-
-* Fri Aug 20 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.5.rc1.git3
-- Linux 2.6.36-rc1-git3
-- Drop x86-cpu-fix-regression-in-amd-errata-checking-code.patch, now merged.
-
-* Thu Aug 19 2010 Kyle McMartin <kmcmartin@redhat.com> - 2.6.36-0.4.rc1.git1
-- Run oldnoconfig on the configs during make prep.
-- Make the fix oldnoconfig patch a one liner.
-
-* Wed Aug 18 2010 Chuck Ebbert <cebbert@redhat.com> - 2.6.36-0.3.rc1.git1
-- Fix hangs on boot with some AMD processors
- (x86-cpu-fix-regression-in-amd-errata-checking-code.patch)
-- Drop unused ssb_check_for_sprom.patch
-
-* Wed Aug 18 2010 Dave Jones <davej@redhat.com>
-- systemd is dependant upon autofs, so build it in instead of modular.
-
-* Wed Aug 18 2010 Chuck Ebbert <cebbert@redhat.com>
-- Linux 2.6.36-rc1-git1
-
-* Wed Aug 18 2010 Kyle McMartin <kmcmartin@redhat.com> - 2.6.36-0.2.rc1.git0
-- Link perf against libnewt for TUI support.
-
-* Tue Aug 17 2010 Kyle McMartin <kyle@redhat.com> - 2.6.36-0.1.rc1.git0
-- Fix 'oldnoconfig' to do what nonint_loose_oldconfig did.
-
-* Tue Aug 17 2010 Kyle McMartin <kyle@redhat.com>
-- explicitly set KERNEL_GZIP
-
-* Tue Aug 17 2010 Kyle McMartin <kyle@redhat.com>
-- Linux 2.6.36-rc1
-
-* Tue Aug 17 2010 Kyle McMartin <kyle@redhat.com>
-- Prevent scripts/setlocalversion from mucking with our version
- numbers.
-
-* Tue Aug 17 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre Sat Aug 28
-- Deblobbed 2.6.35-libre2.
-- Deblobbed lirc-staging-2.6.36.patch.
-- Deblobbed linux-2.6-v4l-dvb-ir-core-update.patch.
-- Adjusted drm-nouveau-updates.patch.
-
-* Wed Aug 04 2010 Kyle McMartin <kyle@redhat.com>
-- Disable %%released_kernel.
-- This is properly 2.6.36-0.git1, unlike the last commit. Had to make
- a mistake sometime, I'm glad it was early.
-
-* Wed Aug 04 2010 Kyle McMartin <kyle@redhat.com>
-- Linux 2.6.35-git1, beginning of rawhide for 2.6.36...
-
-* Sun Aug 01 2010 Dave Jones <davej@redhat.com>
-- Linux 2.6.35
-
-* Sun Aug 01 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc6-git6
-
-* Fri Jul 30 2010 Jarod Wilson <jarod@redhat.com>
-- lirc staging update
-- update kworld patch to one committed upstream
-- can't believe how much nicer dist-git is than dist-cvs
-- patch memory leaks in mceusb and imon drivers
-
-* Fri Jul 30 2010 Dave Jones <davej@redhat.com>
-- Enable PPS (#619392)
-
-* Thu Jul 29 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc6-git5
-
-* Mon Jul 27 2010 Kyle McMartin <kyle@redhat.com>
-- Patch from linville to only use the country code to set band limits.
- (Fixes Apple Airport base stations from limiting you from associating
- with other channels.)
-
-* Fri Jul 23 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.35-0.56.rc6.git1
-- Linux 2.6.35-rc6-git1
-
-* Thu Jul 22 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc6
-
-* Thu Jul 22 2010 Ben Skeggsb <bskeggs@redhat.com>
-- drm-nouveau-updates: bring back, most patches *weren't* upstream yet,
- they're queued for 2.6.36.
-
-* Wed Jul 21 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.35-0.53.rc5.git7
-- Linux 2.6.35-rc5-git7
-
-* Wed Jul 21 2010 Dave Jones <davej@redhat.com>
-- Remove the %%verify (no mtime) on kernel-devel's files.
- If they got modified, they should fail rpm verify.
-
-* Wed Jul 21 2010 Dave Jones <davej@redhat.com>
-- Linux 2.6.35-rc5-git6
-- Removed drm-nouveau-updates.patch (upstreamed)
-
-* Mon Jul 19 2010 Chuck Ebbert <cebbert@redhat.com>
-- Linux 2.6.35-rc5-git4
-
-* Mon Jul 19 2010 Jarod Wilson <jarod@redhat.com> 2.6.35-0.49.rc5.git2
-- Fix from Kyle for input_set_key oops introduced by ir-core patches (#615707)
-- Update lirc-staging patches to match what's about to be submitted upstream,
- complete with updated copy_from_user overflow check fixages
-
-* Sun Jul 18 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.35-0.47.rc5.git2
-- Linux 2.6.35-rc5-git2
-
-* Sun Jul 18 2010 Chuck Ebbert <cebbert@redhat.com>
-- lirc-staging-2.6.36-fixes.patch: Fix up buffer size checking in
- lirc code, found by CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
-
-* Sun Jul 18 2010 Hans de Goede <hdegoede@redhat.com>
-- Add support for dynamic menu controls to the uvcvideo driver (#576023)
-
-* Sun Jul 18 2010 Jarod Wilson <jarod@redhat.com> 2.6.35-0.44.rc5.git1
-- Oops, minor oversight when moving lirc bits into staging resulted
- in the modules themselves not getting built. Fix that.
-
-* Fri Jul 16 2010 Dave Jones <davej@redhat.com>
-- Limit some alsa spew that the nuforce udac makes happen a lot.
-
-* Fri Jul 16 2010 Jarod Wilson <jarod@redhat.com> 2.6.35-0.41.rc5.git1
-- Pull in ir-core update from v4l/dvb staging for 2.6.36, which includes
- new in-kernel lirc_dev and ir-core mceusb driver
-- Move not-yet-merged/ported lirc bits to drivers/staging/, patch to be
- sent upstream for 2.6.36 staging tree RSN
-
-* Thu Jul 15 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.35-0.40.rc5.git1
-- Replace pci-acpi-disable-aspm-if-no-osc.patch with
- updated version from F-13
-
-* Thu Jul 15 2010 Chuck Ebbert <cebbert@redhat.com>
-- Linux 2.6.35-rc5-git1
-
-* Tue Jul 13 2010 Chuck Ebbert <cebbert@redhat.com>
-- Linux 2.6.35-rc5
-
-* Tue Jul 13 2010 Ben Skeggs <bskeggs@redhat.com>
-- nouveau: miscellanous fixes
-
-* Mon Jul 12 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc4-git5
-
-* Mon Jul 12 2010 Dave Jones <davej@redhat.com>
-- Remove a bunch of x86 options from config files that get set
- automatically, and can't be overridden.
-
-* Fri Jul 9 2010 Roland McGrath <roland@redhat.com>
-- Split execshield into two patches.
-
-* Thu Jul 08 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.35-0.31.rc4.git4
-- Linux 2.6.35-rc4-git4
-
-* Thu Jul 8 2010 Roland McGrath <roland@redhat.com>
-- Remove exec-shield=2 setting, some other cruft from execshield.
-
-* Wed Jul 7 2010 Roland McGrath <roland@redhat.com> 2.6.35-0.29.rc4.git0.fc14
-- Revamp perf packaging.
-
-* Wed Jul 07 2010 Chuck Ebbert <cebbert@redhat.com>
-- pci-acpi-disable-aspm-if-no-osc.patch, pci-aspm-dont-enable-too-early.patch
- PCI layer fixes for problems with hardware that doesn't support ASPM.
-
-* Wed Jul 07 2010 Ben Skeggs <bskeggs@redhat.com>
-- nouveau: bring in nouveau upstream
-
-* Mon Jul 05 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc4
-
-* Fri Jul 02 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc3-git7
- dropped: i915-fix-crt-hotplug-regression.patch (upstream)
- dropped: drm-i915-fix-edp-panels.patch (upstream)
-
-* Fri Jul 02 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc3-git6
-
-* Thu Jul 01 2010 Dave Jones <davej@redhat.com>
-- Add a patch to debug an infinite loop warning from acpi.
-
-* Thu Jul 01 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc3-git5
-
-* Thu Jul 01 2010 Chuck Ebbert <cebbert@redhat.com>
-- Copy fix for BZ#220892 from F-13.
-
-* Wed Jun 30 2010 Kyle McMartin <kyle@redhat.com> 2.6.35-0.19.rc3.git4
-- 2.6.35-rc3-git4
-
-* Tue Jun 29 2010 Chuck Ebbert <cebbert@redhat.com>
-- Disable Intel Moorestown support -- it breaks PC keyboard controllers.
-
-* Tue Jun 29 2010 Dave Jones <davej@redhat.com>
-- Building external modules requires perl. (#608525)
-
-* Tue Jun 29 2010 Kyle McMartin <kyle@redhat.com> 2.6.35-0.15.rc3.git3
-- 2.6.35-rc3-git3
-- i915-fix-crt-hotplug-regression.patch: attempt to solve the gm45 hotplug
- irq storm.
-
-* Mon Jun 28 2010 Chuck Ebbert <cebbert@redhat.com>
-- ppc64: enable active memory sharing and DLPAR memory remove (#607175)
-
-* Mon Jun 28 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc3-git2
-
-* Mon Jun 28 2010 Dave Jones <davej@redhat.com>
-- 2.6.35-rc3-git1
-
-* Mon Jun 28 2010 Dave Airlie <airlied@redhat.com>
-- drm-i915-fix-edp-panels.patch: update to newer version
-
-* Fri Jun 25 2010 Kyle McMartin <kyle@redhat.com>
-- drm-i915-fix-edp-panels.patch: copy from rawhide.
-
-* Wed Jun 23 2010 Eric Sandeen <sandeen@redhat.com>
-- Fix ext4 freeze deadlock (#607245)
-
-* Wed Jun 23 2010 Kyle McMartin <kyle@redhat.com>
-- Override generic's CONFIG_HZ_1000 on s390.
-
-* Tue Jun 22 2010 Dave Jones <davej@redhat.com>
-- Fix localhost networking.
-
-* Tue Jun 22 2010 Kyle McMartin <kyle@redhat.com> 2.6.35-0.1.rc3.git0
-- Putting the raw back into rawhide... Yeehaw.
-- 2.6.35-rc3
-- Drop a tonne of patches that were merged upstream, or were backports.
-- Rebase execshield, utrace.
-- Fix up a bunch of rejects, build failures.
-- Fix up lirc to build with strict copy_from_user checking.
-
-* Mon Jun 21 2010 Dave Jones <davej@redhat.com>
-- Disable workaround for obscure SMP pentium pro errata.
- I miss the 1990s too, but it's time to move on.
- If anyone actually needs this it would be better done using
- the apply_alternatives infrastructure.
-
-* Mon Jun 21 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-45
-- drm-revert-drm-fbdev-rework-output-polling-to-be-back-in-core.patch
- Revert eb1f8e4f, bisected by Nicolas Kaiser. Thanks! (rhbz#599190)
- (If this works, will try to root-cause.)
-- rebase previous patch on top of above reversion
-
-* Mon Jun 21 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-44
-- revert-drm-kms-toggle-poll-around-switcheroo.patch (rhbz#599190)
-
-* Thu Jun 17 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-43
-- Suck in patch from Dave Miller in 2.6.35 to add async hash testing,
- hopefully fixes error from previous commit. (But making it modular
- is still a good idea.)
-
-* Thu Jun 17 2010 Kyle McMartin <kyle@redhat.com>
-- make ghash-clmulni modular to get rid of early boot noise (rhbz#586954)
- (not a /fix/ but it should at least quiet boot down a bit if you have
- the cpu support)
-
-* Wed Jun 16 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-40
-- Snag some more DRM commits into drm-next.patch that I missed the first
- time.
-- Fix up radeon_pm toggle to work with the upstream code.
-
-* Tue Jun 15 2010 Prarit Bhargava <prarit@redhat.com>
-- Turn off CONFIG_I2O on x86.
- It is broken on 64-bit address spaces (i686/PAE, x86_64), and frankly, I'm
- having trouble finding anyone who actually uses it.
-
-* Tue Jun 15 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Re-enable kernel-libre-firmware.
-
-* Tue Jun 15 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-38
-- Fix build by nuking superfluous "%%{expand" which was missing a
- trailing '}'. You may now reward me with an array of alcoholic
- beverages, I so richly deserve for spending roughly a full
- day staring at the diff of the spec.
-
-* Mon Jun 14 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-37
-- btrfs ACL fixes from CVE-2010-2071.
-
-* Sun Jun 13 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-36
-- remunge and reapply hdpvr-ir-enable
-
-* Sun Jun 13 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-35
-- mac80211/iwlwifi fix connections to some APs (rhbz#558002)
- patches from sgruszka@.
-
-* Sun Jun 13 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-34
-- Provide a knob to enable radeon_pm to allow users to test
- that functionality. Add radeon.pm=1 to your kernel cmdline
- in order to enable it. (It still defaults to off though.)
-
-* Sun Jun 13 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-33
-- Update drm-next to include fixes since 2.6.35-rc1.
-
-* Fri Jun 11 2010 Justin M. Forbes <jforbes@redhat.com>
-- Disable xsave for so that kernel will boot on ancient EC2 hosts.
-
-* Wed Jun 09 2010 John W. Linville <linville@redhat.com>
-- Disable rt20xx and rt35xx chipset support in rt2800 drivers (#570869)
-
-* Wed Jun 09 2010 David Woodhouse <David.Woodhouse@intel.com>
-- Include PHY modules in modules.networking (#602155)
-
-* Tue Jun 08 2010 Dave Jones <davej@redhat.com>
-- Remove useless -kdump kernel support
-
-* Tue Jun 08 2010 Dave Jones <davej@redhat.com>
-- Remove ia64 ata quirk which had no explanation, and still
- isn't upstream. No-one cares.
-
-* Tue Jun 08 2010 Dave Jones <davej@redhat.com>
-- Drop linux-2.6-vio-modalias.patch
- Two years should have been long enough to get upstream if this is important.
-
-* Tue Jun 08 2010 Dave Jones <davej@redhat.com>
-- Remove crufty Xen remnants from specfile.
-
-* Tue Jun 08 2010 Dave Jones <davej@redhat.com>
-- Remove mkinitrd ifdefs. Dracut or GTFO.
-
-* Thu Jun 03 2010 Kyle McMartin <kyle@redhat.com>
-- Build kernel headers on s390.
-
-* Wed Jun 02 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-20
-- Disable doc_build_fail because xmlto et al. are crud.
-
-* Wed Jun 02 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-19
-- Enable -debug flavour builds, until we branch for 2.6.35-rcX.
-
-* Wed Jun 02 2010 Kyle McMartin <kyle@redhat.com>
-- revert writeback fixes for now, there appear to be dragons
- lurking there still.
-
-* Tue Jun 01 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-18
-- fix mismerge in i915_gem.c, drm_gem_object_alloc is now
- i915_gem_alloc_object.
-- add a hunk to rcu_read{,un}lock in sched_fair too.
-
-* Tue Jun 01 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-17
-- backport writeback fixes from Jens until stable@ picks them up.
-
-* Tue Jun 01 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-16
-- quiet-prove_RCU-in-cgroups.patch: shut RCU lockdep up
- as in 8b08ca52f5942c21564bbb90ccfb61053f2c26a1.
-
-* Tue Jun 01 2010 Kyle McMartin <kyle@redhat.com>
-- disable radeon_pm for now.
-
-* Mon May 31 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Adjust iwlwifi-Recover-TX-flow-stall-due-to-stuck-queue.patch.
-- Adjust drm-next.patch.
-
-* Mon May 31 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-14
-- re-add drm-next.patch, should be in sync with 2.6.35 and what
- was backported to Fedora 13.
-- drop patches merged in drm-next to 2.6.35
-- rebase relevant iwl fixes on top of 2.6.34 from the ones committed
- to F-13 by linville.
-
-* Wed May 26 2010 Adam Jackson <ajax@redhat.com>
-- config-generic: Stop building i830.ko
-
-* Wed May 26 2010 Kyle McMartin <kyle@redhat.com>
-- iwlwifi-recover_from_tx_stall.patch: copy from F-13.
-
-* Fri May 21 2010 Roland McGrath <roland@redhat.com> 2.6.34-11
-- utrace update
-
-* Fri May 21 2010 Dave Jones <davej@redhat.com>
-- Update the SELinux mprotect patch with a newer version from Stephen
-
-* Fri May 21 2010 Roland McGrath <roland@redhat.com>
-- perf requires libdw now, not libdwarf
-
-* Fri May 21 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-6
-- Fixups for virt_console from Amit Shah, thanks!
-
-* Thu May 20 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-5
-- disable intel sdvo fixes until dependent code is backported.
-
-* Thu May 20 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-4
-- resync a lot of stuff with F-13...
-- linux-2.6-acpi-video-export-edid.patch: rebase & copy from F-13
-- acpi-ec-add-delay-before-write.patch: copy from F-13
-- ... and a whole lot more that I can't be bothered typing.
-
-* Mon May 17 2010 Matthew Garrett <mjg@redhat.com>
-- thinkpad-acpi-fix-backlight.patch: Fix backlight support on some recent
- Thinkpads
-
-* Mon May 17 2010 Alexandre Oliva <lxoliva@fsfla.org> -libre
-- Deblobbed 2.6.34-libre.
-
-* Sun May 16 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-2
-- Disable strict copy_from_user checking until lirc is fixed.
-
-* Sun May 16 2010 Kyle McMartin <kyle@redhat.com> 2.6.34-1
-- Linux 2.6.34
-
+* Wed Jan 19 2011 Kyle McMartin <kyle@redhat.com>
+- Trimmed changelog, see fedpkg git for earlier history.
###
# The following Emacs magic makes C-c C-e use UTC dates.
diff --git a/freed-ora/current/master/linux-2.6-acpi-debug-infinite-loop.patch b/freed-ora/current/master/linux-2.6-acpi-debug-infinite-loop.patch
index 45cb05165..d20025224 100644
--- a/freed-ora/current/master/linux-2.6-acpi-debug-infinite-loop.patch
+++ b/freed-ora/current/master/linux-2.6-acpi-debug-infinite-loop.patch
@@ -1,16 +1,3 @@
---- linux-2.6.34.noarch/drivers/acpi/acpica/dsopcode.c~ 2010-07-01 14:40:44.000000000 -0400
-+++ linux-2.6.34.noarch/drivers/acpi/acpica/dsopcode.c 2010-07-01 14:48:56.000000000 -0400
-@@ -1276,6 +1276,10 @@ acpi_ds_exec_end_control_op(struct acpi_
- * loop does not implement a timeout.
- */
- control_state->control.loop_count++;
-+ if ((control_state->control.loop_count > 1) && (control_state->control.loop_count % 0xffff == 0))
-+ printk("ACPI: While loop taking a really long time. loop_count=0x%x\n",
-+ control_state->control.loop_count);
-+
- if (control_state->control.loop_count >
- ACPI_MAX_LOOP_ITERATIONS) {
- status = AE_AML_INFINITE_LOOP;
--- linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400
+++ linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h 2010-07-01 14:49:17.000000000 -0400
@@ -117,7 +117,7 @@
@@ -22,3 +9,17 @@
/* Maximum sleep allowed via Sleep() operator */
+--- a/drivers/acpi/acpica/dscontrol.c
++++ b/drivers/acpi/acpica/dscontrol.c
+@@ -212,6 +212,11 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state,
+ * loop does not implement a timeout.
+ */
+ control_state->control.loop_count++;
++ if ((control_state->control.loop_count > 1) &&
++ (control_state->control.loop_count % 0xffff == 0))
++ printk("ACPI: While loop taking a really long time. loop_count=0x%x\n",
++ control_state->control.loop_count);
++
+ if (control_state->control.loop_count >
+ ACPI_MAX_LOOP_ITERATIONS) {
+ status = AE_AML_INFINITE_LOOP;
diff --git a/freed-ora/current/master/linux-2.6-crash-driver.patch b/freed-ora/current/master/linux-2.6-crash-driver.patch
index 0f11aba0d..b8377d321 100644
--- a/freed-ora/current/master/linux-2.6-crash-driver.patch
+++ b/freed-ora/current/master/linux-2.6-crash-driver.patch
@@ -220,20 +220,6 @@ index 5eb1ba7..3e525d2 100644
/*
* Fix up the linear direct mapping of the kernel to avoid cache attribute
* conflicts.
-diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
-index 3141dd3..153658c 100644
---- a/drivers/char/Kconfig
-+++ b/drivers/char/Kconfig
-@@ -471,6 +471,8 @@ config LEGACY_PTYS
- security. This option enables these legacy devices; on most
- systems, it is safe to say N.
-
-+config CRASH
-+ tristate "Crash Utility memory driver"
-
- config LEGACY_PTY_COUNT
- int "Maximum number of legacy PTY in use"
-
diff --git a/drivers/char/crash.c b/drivers/char/crash.c
new file mode 100644
index 0000000..e5437de
@@ -379,3 +365,18 @@ index ba53ec9..6588b33 100644
js-rtc-y = rtc.o
+
+obj-$(CONFIG_CRASH) += crash.o
+
+diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
+index 04f8b2d..e8fb997 100644
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -4,6 +4,9 @@
+
+ menu "Character devices"
+
++config CRASH
++ tristate "Crash Utility memory driver"
++
+ source "drivers/tty/Kconfig"
+
+ config DEVKMEM
diff --git a/freed-ora/current/master/linux-2.6-debug-sizeof-structs.patch b/freed-ora/current/master/linux-2.6-debug-sizeof-structs.patch
index e027d98a1..803c7ecba 100644
--- a/freed-ora/current/master/linux-2.6-debug-sizeof-structs.patch
+++ b/freed-ora/current/master/linux-2.6-debug-sizeof-structs.patch
@@ -1,8 +1,8 @@
-diff --git a/init/main.c b/init/main.c
-index 7449819..98cfaae 100644
---- a/init/main.c
-+++ b/init/main.c
-@@ -369,6 +369,11 @@ static void __init setup_nr_cpu_ids(void)
+diff --git a/kernel/smp.c b/kernel/smp.c
+index 73a1951..4ce4c50 100644
+--- a/kernel/smp.c
++++ b/kernel/smp.c
+@@ -667,6 +667,11 @@ void __init setup_nr_cpu_ids(void)
nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1;
}
@@ -12,9 +12,9 @@ index 7449819..98cfaae 100644
+#include <linux/sched.h>
+
/* Called by boot processor to activate the rest. */
- static void __init smp_init(void)
+ void __init smp_init(void)
{
-@@ -391,6 +395,16 @@ static void __init smp_init(void)
+@@ -683,6 +688,16 @@ void __init smp_init(void)
/* Any cleanup work */
printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus());
smp_cpus_done(setup_max_cpus);
@@ -30,4 +30,4 @@ index 7449819..98cfaae 100644
+ printk(KERN_DEBUG "sizeof(task_struct)=%u bytes\n", (unsigned int) sizeof(struct task_struct));
}
- #endif
+ /*
diff --git a/freed-ora/current/master/linux-2.6-ehci-check-port-status.patch b/freed-ora/current/master/linux-2.6-ehci-check-port-status.patch
deleted file mode 100644
index f3c5faf70..000000000
--- a/freed-ora/current/master/linux-2.6-ehci-check-port-status.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit e17a07a9e0b62d5a5f0a5683ecbabad3aa95a4d5
-Author: Matthew Garrett <mjg@redhat.com>
-Date: Tue Jan 11 12:19:40 2011 -0500
-
- ehci: Check individual port status registers on resume
-
- If a device plug/unplug is detected on an ATI SB700 USB controller in D3,
- it appears to set the port status register but not the controller status
- register. As a result we'll fail to detect the plug event. Check the port
- status register on resume as well in order to catch this case.
-
- Signed-off-by: Matthew Garrett <mjg@redhat.com>
-
-diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
-index 796ea0c..d9c0748 100644
---- a/drivers/usb/host/ehci-hub.c
-+++ b/drivers/usb/host/ehci-hub.c
-@@ -106,6 +106,27 @@ static void ehci_handover_companion_ports(struct ehci_hcd *ehci)
- ehci->owned_ports = 0;
- }
-
-+static int ehci_port_change(struct ehci_hcd *ehci)
-+{
-+ int i = HCS_N_PORTS(ehci->hcs_params);
-+
-+ /* First check if the controller indicates a change event */
-+
-+ if (ehci_readl(ehci, &ehci->regs->status) & STS_PCD)
-+ return 1;
-+
-+ /*
-+ * Not all controllers appear to update this while going from D3 to D0,
-+ * so check the individual port status registers as well
-+ */
-+
-+ while (i--)
-+ if (ehci_readl(ehci, &ehci->regs->port_status[i]) & PORT_CSC)
-+ return 1;
-+
-+ return 0;
-+}
-+
- static void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
- bool suspending, bool do_wakeup)
- {
-@@ -168,7 +189,7 @@ static void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
- }
-
- /* Does the root hub have a port wakeup pending? */
-- if (!suspending && (ehci_readl(ehci, &ehci->regs->status) & STS_PCD))
-+ if (!suspending && ehci_port_change(ehci))
- usb_hcd_resume_root_hub(ehci_to_hcd(ehci));
-
- spin_unlock_irqrestore(&ehci->lock, flags);
diff --git a/freed-ora/current/master/linux-2.6-i386-nx-emulation.patch b/freed-ora/current/master/linux-2.6-i386-nx-emulation.patch
index da84cc672..3e55b88ca 100644
--- a/freed-ora/current/master/linux-2.6-i386-nx-emulation.patch
+++ b/freed-ora/current/master/linux-2.6-i386-nx-emulation.patch
@@ -46,7 +46,7 @@
#endif /* _ASM_X86_DESC_H */
--- a/arch/x86/include/asm/mmu.h
+++ b/arch/x86/include/asm/mmu.h
-@@ -7,12 +7,19 @@
+@@ -7,18 +7,25 @@
/*
* The x86 doesn't have a mmu context, but
* we put the segment information here.
@@ -59,10 +59,16 @@
int size;
struct mutex lock;
void *vdso;
+
+ #ifdef CONFIG_X86_64
+ /* True if mm supports a task running in 32 bit compatibility mode. */
+ unsigned short ia32_compat;
+ #endif
+#ifdef CONFIG_X86_32
+ struct desc_struct user_cs;
+ unsigned long exec_limit;
+#endif
+
} mm_context_t;
#ifdef CONFIG_SMP
@@ -472,8 +478,8 @@
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -101,6 +101,9 @@ struct bio_list;
- struct fs_struct;
struct perf_event_context;
+ struct blk_plug;
+extern int disable_nx;
+extern int print_fatal_signals;
diff --git a/freed-ora/current/master/linux-2.6-utrace-ptrace.patch b/freed-ora/current/master/linux-2.6-utrace-ptrace.patch
index bc5681d95..9d6e729a7 100644
--- a/freed-ora/current/master/linux-2.6-utrace-ptrace.patch
+++ b/freed-ora/current/master/linux-2.6-utrace-ptrace.patch
@@ -48,7 +48,7 @@ new file mode 100644
index ...a5bcb9e 100644
--- /dev/null
+++ b/kernel/ptrace-utrace.c
-@@ -0,0 +1,1187 @@
+@@ -0,0 +1,1186 @@
+/*
+ * linux/kernel/ptrace.c
+ *
@@ -65,7 +65,6 @@ index ...a5bcb9e 100644
+#include <linux/mm.h>
+#include <linux/highmem.h>
+#include <linux/pagemap.h>
-+#include <linux/smp_lock.h>
+#include <linux/ptrace.h>
+#include <linux/utrace.h>
+#include <linux/security.h>
diff --git a/freed-ora/current/master/patch-libre-2.6.39-rc6.bz2.sign b/freed-ora/current/master/patch-libre-2.6.39-rc6.bz2.sign
new file mode 100644
index 000000000..7fb0d2572
--- /dev/null
+++ b/freed-ora/current/master/patch-libre-2.6.39-rc6.bz2.sign
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.16 (GNU/Linux)
+
+iEYEABECAAYFAk3CeB0ACgkQvLfPh359R6eA+ACfZ6k5TwNXFu6dSJPlmN3ltDJA
+R7QAn0XI5Mj/NDnTHOI+8TVugvbFg2br
+=lMBX
+-----END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta b/freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta
new file mode 100644
index 000000000..18b57e9a1
--- /dev/null
+++ b/freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta
Binary files differ
diff --git a/freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta.sign b/freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta.sign
new file mode 100644
index 000000000..650d64868
--- /dev/null
+++ b/freed-ora/current/master/patch-libre-2.6.39-rc6.xdelta.sign
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.16 (GNU/Linux)
+
+iEYEABECAAYFAk3CeBoACgkQvLfPh359R6dnIwCgkaHKEmg6xt3Xv78nA/VJqOAh
+DLQAn3zK4PpOvLuMkabsgqXgH2EMOWQj
+=3tVX
+-----END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/pci-_osc-supported-field-should-contain-supported-features-not-enabled-ones.patch b/freed-ora/current/master/pci-_osc-supported-field-should-contain-supported-features-not-enabled-ones.patch
deleted file mode 100644
index 0baffd639..000000000
--- a/freed-ora/current/master/pci-_osc-supported-field-should-contain-supported-features-not-enabled-ones.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-commit 885c252ffb059dc493200bdb981bdd21cabe4442
-Author: Matthew Garrett <mjg@redhat.com>
-Date: Thu Dec 9 18:31:59 2010 -0500
-
- PCI: _OSC "supported" field should contain supported features, not enabled ones
-
- From testing with Windows, the call to the PCI root _OSC method includes
- the full set of features supported by the operating system even if the
- hardware has already indicated that it doesn't support ASPM or MSI.
- https://bugzilla.redhat.com/show_bug.cgi?id=638912 is a case where making
- the _OSC call will incorrectly configure the chipset unless the supported
- field has bits 1, 2 and 4 set. Rework the functionality to ensure that
- we match this behaviour.
-
- Signed-off-by: Matthew Garrett <mjg@redhat.com>
-
-diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
-index 96668ad..afb5d08 100644
---- a/drivers/acpi/pci_root.c
-+++ b/drivers/acpi/pci_root.c
-@@ -450,7 +450,7 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
- struct acpi_pci_root *root;
- acpi_handle handle;
- struct acpi_device *child;
-- u32 flags, base_flags;
-+ u32 flags;
-
- root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
- if (!root)
-@@ -498,10 +498,15 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
- device->driver_data = root;
-
- /*
-- * All supported architectures that use ACPI have support for
-- * PCI domains, so we indicate this in _OSC support capabilities.
-+ * Indicate support for various _OSC capabilities. These match
-+ * what the operating system supports, not what the hardware supports,
-+ * so they shouldn't be conditional on functionality that's been
-+ * blacklisted
- */
-- flags = base_flags = OSC_PCI_SEGMENT_GROUPS_SUPPORT;
-+ flags = OSC_EXT_PCI_CONFIG_SUPPORT | OSC_ACTIVE_STATE_PWR_SUPPORT |
-+ OSC_CLOCK_PWR_CAPABILITY_SUPPORT |
-+ OSC_PCI_SEGMENT_GROUPS_SUPPORT | OSC_MSI_SUPPORT;
-+
- acpi_pci_osc_support(root, flags);
-
- /*
-@@ -555,17 +560,6 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
- list_for_each_entry(child, &device->children, node)
- acpi_pci_bridge_scan(child);
-
-- /* Indicate support for various _OSC capabilities. */
-- if (pci_ext_cfg_avail(root->bus->self))
-- flags |= OSC_EXT_PCI_CONFIG_SUPPORT;
-- if (pcie_aspm_enabled())
-- flags |= OSC_ACTIVE_STATE_PWR_SUPPORT |
-- OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
-- if (pci_msi_enabled())
-- flags |= OSC_MSI_SUPPORT;
-- if (flags != base_flags)
-- acpi_pci_osc_support(root, flags);
--
- pci_acpi_add_bus_pm_notifier(device, root->bus);
- if (device->wakeup.flags.run_wake)
- device_set_run_wake(root->bus->bridge, true);
diff --git a/freed-ora/current/master/perf-gcc460-build-fixes.patch b/freed-ora/current/master/perf-gcc460-build-fixes.patch
deleted file mode 100644
index 074ab6f20..000000000
--- a/freed-ora/current/master/perf-gcc460-build-fixes.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From linux-kernel-owner@vger.kernel.org Mon Jan 24 11:13:12 2011
-Date: Mon, 24 Jan 2011 11:13:04 -0500
-From: Kyle McMartin <kyle@mcmartin.ca>
-To: mingo@redhat.com
-Cc: linux-kernel@vger.kernel.org, acme@redhat.com
-Subject: [PATCH] perf: fix gcc 4.6.0 issues with tools/perf
-Message-ID: <20110124161304.GK27353@bombadil.infradead.org>
-
-Hi Ingo,
-
-GCC 4.6.0 in Fedora rawhide turned up some compile errors in tools/perf
-due to the -Werror=unused-but-set-variable flag.
-
-I've gone through and annotated some of the assignments that had side
-effects (ie: return value from a function) with the __used annotation,
-and in some cases, just removed unused code.
-
-In a few cases, we were assigning something useful, but not using it in
-later parts of the function.
-
-regards, Kyle
-
-kyle@dreadnought:~/src% gcc --version
-gcc (GCC) 4.6.0 20110122 (Red Hat 4.6.0-0.3)
-
----
-
- bench/sched-pipe.c | 2 +-
- builtin-sched.c | 12 +++---------
- builtin-top.c | 5 +----
- util/header.c | 2 +-
- util/hist.c | 3 ---
- util/scripting-engines/trace-event-python.c | 3 +--
- util/symbol.c | 4 ++--
- util/trace-event-parse.c | 2 +-
- util/ui/browsers/map.c | 2 +-
- 9 files changed, 11 insertions(+), 24 deletions(-)
-
-diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c
-index d9ab3ce..0c7454f 100644
---- a/tools/perf/bench/sched-pipe.c
-+++ b/tools/perf/bench/sched-pipe.c
-@@ -55,7 +55,7 @@ int bench_sched_pipe(int argc, const char **argv,
- * discarding returned value of read(), write()
- * causes error in building environment for perf
- */
-- int ret, wait_stat;
-+ int __used ret, wait_stat;
- pid_t pid, retpid;
-
- argc = parse_options(argc, argv, options,
-diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
-index 29e7ffd..f9e304f 100644
---- a/tools/perf/builtin-sched.c
-+++ b/tools/perf/builtin-sched.c
-@@ -369,11 +369,6 @@ static void
- process_sched_event(struct task_desc *this_task __used, struct sched_atom *atom)
- {
- int ret = 0;
-- u64 now;
-- long long delta;
--
-- now = get_nsecs();
-- delta = start_time + atom->timestamp - now;
-
- switch (atom->type) {
- case SCHED_EVENT_RUN:
-@@ -562,7 +557,7 @@ static void wait_for_tasks(void)
-
- static void run_one_test(void)
- {
-- u64 T0, T1, delta, avg_delta, fluct, std_dev;
-+ u64 T0, T1, delta, avg_delta, fluct;
-
- T0 = get_nsecs();
- wait_for_tasks();
-@@ -578,7 +573,6 @@ static void run_one_test(void)
- else
- fluct = delta - avg_delta;
- sum_fluct += fluct;
-- std_dev = sum_fluct / nr_runs / sqrt(nr_runs);
- if (!run_avg)
- run_avg = delta;
- run_avg = (run_avg*9 + delta)/10;
-@@ -799,7 +793,7 @@ replay_switch_event(struct trace_switch_event *switch_event,
- u64 timestamp,
- struct thread *thread __used)
- {
-- struct task_desc *prev, *next;
-+ struct task_desc *prev, __used *next;
- u64 timestamp0;
- s64 delta;
-
-@@ -1404,7 +1398,7 @@ map_switch_event(struct trace_switch_event *switch_event,
- u64 timestamp,
- struct thread *thread __used)
- {
-- struct thread *sched_out, *sched_in;
-+ struct thread *sched_out __used, *sched_in;
- int new_shortname;
- u64 timestamp0;
- s64 delta;
-diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
-index 05344c6..373cfc0 100644
---- a/tools/perf/builtin-top.c
-+++ b/tools/perf/builtin-top.c
-@@ -182,7 +182,6 @@ static int parse_source(struct sym_entry *syme)
- FILE *file;
- char command[PATH_MAX*2];
- const char *path;
-- u64 len;
-
- if (!syme)
- return -1;
-@@ -211,8 +210,6 @@ static int parse_source(struct sym_entry *syme)
- }
- path = map->dso->long_name;
-
-- len = sym->end - sym->start;
--
- sprintf(command,
- "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s",
- BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start),
-@@ -1295,7 +1292,7 @@ static int __cmd_top(void)
- {
- pthread_t thread;
- struct perf_evsel *counter;
-- int i, ret;
-+ int i, ret __used;
- /*
- * FIXME: perf_session__new should allow passing a O_MMAP, so that all this
- * mmap reading, etc is encapsulated in it. Use O_WRONLY for now.
-diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
-index 989fa2d..c0e5019 100644
---- a/tools/perf/util/header.c
-+++ b/tools/perf/util/header.c
-@@ -1139,7 +1139,7 @@ int event__synthesize_tracing_data(int fd, struct list_head *pattrs,
- {
- event_t ev;
- ssize_t size = 0, aligned_size = 0, padding;
-- int err = 0;
-+ int err __used = 0;
-
- memset(&ev, 0, sizeof(ev));
-
-diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
-index c749ba6..a01a33d 100644
---- a/tools/perf/util/hist.c
-+++ b/tools/perf/util/hist.c
-@@ -1091,7 +1091,6 @@ int hist_entry__annotate(struct hist_entry *self, struct list_head *head,
- char command[PATH_MAX * 2];
- FILE *file;
- int err = 0;
-- u64 len;
- char symfs_filename[PATH_MAX];
-
- if (filename) {
-@@ -1136,8 +1135,6 @@ fallback:
- filename, sym->name, map->unmap_ip(map, sym->start),
- map->unmap_ip(map, sym->end));
-
-- len = sym->end - sym->start;
--
- pr_debug("annotating [%p] %30s : [%p] %30s\n",
- dso, dso->long_name, sym, sym->name);
-
-diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
-index c6d9933..2040b85 100644
---- a/tools/perf/util/scripting-engines/trace-event-python.c
-+++ b/tools/perf/util/scripting-engines/trace-event-python.c
-@@ -248,8 +248,7 @@ static void python_process_event(int cpu, void *data,
- context = PyCObject_FromVoidPtr(scripting_context, NULL);
-
- PyTuple_SetItem(t, n++, PyString_FromString(handler_name));
-- PyTuple_SetItem(t, n++,
-- PyCObject_FromVoidPtr(scripting_context, NULL));
-+ PyTuple_SetItem(t, n++, context);
-
- if (handler) {
- PyTuple_SetItem(t, n++, PyInt_FromLong(cpu));
-diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
-index 15ccfba..52e82cf 100644
---- a/tools/perf/util/symbol.c
-+++ b/tools/perf/util/symbol.c
-@@ -1517,8 +1517,8 @@ int dso__load(struct dso *self, struct map *map, symbol_filter_t filter)
- symbol_conf.symfs, self->long_name);
- break;
- case DSO__ORIG_GUEST_KMODULE:
-- if (map->groups && map->groups->machine)
-- root_dir = map->groups->machine->root_dir;
-+ if (map->groups && machine)
-+ root_dir = machine->root_dir;
- else
- root_dir = "";
- snprintf(name, size, "%s%s%s", symbol_conf.symfs,
-diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c
-index 73a0222..d8e622d 100644
---- a/tools/perf/util/trace-event-parse.c
-+++ b/tools/perf/util/trace-event-parse.c
-@@ -153,7 +153,7 @@ void parse_proc_kallsyms(char *file, unsigned int size __unused)
- char *next = NULL;
- char *addr_str;
- char ch;
-- int ret;
-+ int ret __used;
- int i;
-
- line = strtok_r(file, "\n", &next);
-diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c
-index e35437d..3788cad 100644
---- a/tools/perf/util/ui/browsers/map.c
-+++ b/tools/perf/util/ui/browsers/map.c
-@@ -40,7 +40,7 @@ static int ui_entry__read(const char *title, char *bf, size_t size, int width)
- out_free_form:
- newtPopWindow();
- newtFormDestroy(form);
-- return 0;
-+ return err;
- }
-
- struct map_browser {
---
-To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-Please read the FAQ at http://www.tux.org/lkml/
-
diff --git a/freed-ora/current/master/prevent-runtime-conntrack-changes.patch b/freed-ora/current/master/prevent-runtime-conntrack-changes.patch
deleted file mode 100644
index 59d62f3de..000000000
--- a/freed-ora/current/master/prevent-runtime-conntrack-changes.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Jon Masters correctly points out that conntrack hash sizes
-(nf_conntrack_htable_size) are global (not per-netns) and
-modifiable at runtime via /sys/module/nf_conntrack/hashsize .
-
-Steps to reproduce:
- clone(CLONE_NEWNET)
- [grow /sys/module/nf_conntrack/hashsize]
- exit()
-
-At netns exit we are going to scan random memory for conntracks to be killed.
-
-Apparently there is a code which deals with hashtable resize for
-init_net (and it was there befode netns conntrack code), so prohibit
-hashsize modification if there is more than one netns exists.
-
-To change hashtable sizes, you need to reload module.
-
-Expectation hashtable size was simply glued to a variable with no code
-to rehash expectations, so it was a bug to allow writing to it.
-Make "expect_hashsize" readonly.
-
-This is temporarily until we figure out what to do.
-
-Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
-Cc: stable@kernel.org
----
-
- net/netfilter/nf_conntrack_core.c | 15 +++++++++++++++
- net/netfilter/nf_conntrack_expect.c | 2 +-
- 2 files changed, 16 insertions(+), 1 deletion(-)
-
---- a/net/netfilter/nf_conntrack_core.c
-+++ b/net/netfilter/nf_conntrack_core.c
-@@ -21,6 +21,7 @@
- #include <linux/stddef.h>
- #include <linux/slab.h>
- #include <linux/random.h>
-+#include <linux/rtnetlink.h>
- #include <linux/jhash.h>
- #include <linux/err.h>
- #include <linux/percpu.h>
-@@ -1198,6 +1199,20 @@ int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp)
- if (!nf_conntrack_htable_size)
- return param_set_uint(val, kp);
-
-+ {
-+ struct net *net;
-+ unsigned int nr;
-+
-+ nr = 0;
-+ rtnl_lock();
-+ for_each_net(net)
-+ nr++;
-+ rtnl_unlock();
-+ /* init_net always exists */
-+ if (nr != 1)
-+ return -EINVAL;
-+ }
-+
- hashsize = simple_strtoul(val, NULL, 0);
- if (!hashsize)
- return -EINVAL;
---- a/net/netfilter/nf_conntrack_expect.c
-+++ b/net/netfilter/nf_conntrack_expect.c
-@@ -569,7 +569,7 @@ static void exp_proc_remove(struct net *net)
- #endif /* CONFIG_PROC_FS */
- }
-
--module_param_named(expect_hashsize, nf_ct_expect_hsize, uint, 0600);
-+module_param_named(expect_hashsize, nf_ct_expect_hsize, uint, 0400);
-
- int nf_conntrack_expect_init(struct net *net)
- {
-
diff --git a/freed-ora/current/master/scripts/rebase.sh b/freed-ora/current/master/scripts/rebase.sh
index ac6522a4c..e9b50cf40 100755
--- a/freed-ora/current/master/scripts/rebase.sh
+++ b/freed-ora/current/master/scripts/rebase.sh
@@ -124,16 +124,11 @@ fi
if [ "$OLDRC" != "$NEWRC" ]; then
echo "Different rc. Rebasing from $OLDRC to $NEWRC"
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ $ENV{"NEWRC"}/' kernel.spec
- perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' .gitignore
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 sources > .sources.tmp; mv .sources.tmp sources
- grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 .gitignore >.gitignore.tmp ; mv .gitignore.tmp .gitignore
- if [ `grep -c patch-2.6.$NEWBASE-rc$NEWRC.bz2 sources` -eq 0 ]; then
- echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> .gitignore
- fi
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
curl -O $KORG26TESTING/patch-2.6.$NEWBASE-rc$NEWRC.bz2
- fedpkg upload FILES=patch-2.6.$NEWBASE-rc$NEWRC.bz2
+ fedpkg upload patch-2.6.$NEWBASE-rc$NEWRC.bz2
# Another awkward (albeit unlikely) corner case.
# Moving from say 26-rc3-git1 to 26-rc4-git1
@@ -151,12 +146,7 @@ if [ "$OLDGIT" != "$NEWGIT" ]; then
fi
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ $ENV{"NEWGIT"}/' kernel.spec
if [ "$OLDGIT" -ne 0 ]; then
- if [ "$NEWGIT" -ne 0 ]; then
- perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' .gitignore
- fi
grep -v patch-$OLD.bz2 sources > .sources.tmp; mv .sources.tmp sources
- else
- echo patch-$NEW.bz2 >> .gitignore
fi
if [ "$NEWGIT" -ne 0 ]; then
diff --git a/freed-ora/current/master/sources b/freed-ora/current/master/sources
index bc34d6106..db445dca5 100644
--- a/freed-ora/current/master/sources
+++ b/freed-ora/current/master/sources
@@ -1 +1,2 @@
21911d61ac22d66e71697a3d5ae092ba linux-2.6.38-libre.tar.bz2
+aa4dfbe41cab1e9ee4a56da4e2499f70 patch-libre-2.6.39-rc6.bz2
diff --git a/freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch b/freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch
deleted file mode 100644
index 807032c83..000000000
--- a/freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch
+++ /dev/null
@@ -1,305 +0,0 @@
-From dbb988cf34a62e69c8863f212be212c6841004ba Mon Sep 17 00:00:00 2001
-From: David S. Miller <davem@davemloft.net>
-Date: Sat, 26 Feb 2011 23:40:02 -0800
-Subject: [PATCH] sparc64: Fix build errors with gcc-4.6.0
-
-Most of the warnings emitted (we fail arch/sparc file
-builds with -Werror) were legitimate but harmless, however
-one case (n2_pcr_write) was a genuine bug.
-
-Based almost entirely upon a patch by Sam Ravnborg.
-
-Reported-by: Dennis Gilmore <dennis@ausil.us>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- arch/sparc/kernel/iommu.c | 3 ---
- arch/sparc/kernel/ldc.c | 28 ++++++++++++++++++----------
- arch/sparc/kernel/pci.c | 1 +
- arch/sparc/kernel/pci_common.c | 11 +++++++----
- arch/sparc/kernel/pci_fire.c | 2 --
- arch/sparc/kernel/pci_schizo.c | 4 +---
- arch/sparc/kernel/pci_sun4v.c | 3 +--
- arch/sparc/kernel/pcr.c | 2 +-
- arch/sparc/kernel/ptrace_64.c | 3 ++-
- arch/sparc/kernel/smp_64.c | 11 ++++-------
- arch/sparc/kernel/traps_64.c | 3 +--
- 11 files changed, 36 insertions(+), 35 deletions(-)
-
-diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
-index 72509d0..6f01e8c 100644
---- a/arch/sparc/kernel/iommu.c
-+++ b/arch/sparc/kernel/iommu.c
-@@ -333,13 +333,10 @@ static void dma_4u_free_coherent(struct device *dev, size_t size,
- void *cpu, dma_addr_t dvma)
- {
- struct iommu *iommu;
-- iopte_t *iopte;
- unsigned long flags, order, npages;
-
- npages = IO_PAGE_ALIGN(size) >> IO_PAGE_SHIFT;
- iommu = dev->archdata.iommu;
-- iopte = iommu->page_table +
-- ((dvma - iommu->page_table_map_base) >> IO_PAGE_SHIFT);
-
- spin_lock_irqsave(&iommu->lock, flags);
-
-diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
-index df39a0f..732b0bc 100644
---- a/arch/sparc/kernel/ldc.c
-+++ b/arch/sparc/kernel/ldc.c
-@@ -790,16 +790,20 @@ static void send_events(struct ldc_channel *lp, unsigned int event_mask)
- static irqreturn_t ldc_rx(int irq, void *dev_id)
- {
- struct ldc_channel *lp = dev_id;
-- unsigned long orig_state, hv_err, flags;
-+ unsigned long orig_state, flags;
- unsigned int event_mask;
-
- spin_lock_irqsave(&lp->lock, flags);
-
- orig_state = lp->chan_state;
-- hv_err = sun4v_ldc_rx_get_state(lp->id,
-- &lp->rx_head,
-- &lp->rx_tail,
-- &lp->chan_state);
-+
-+ /* We should probably check for hypervisor errors here and
-+ * reset the LDC channel if we get one.
-+ */
-+ sun4v_ldc_rx_get_state(lp->id,
-+ &lp->rx_head,
-+ &lp->rx_tail,
-+ &lp->chan_state);
-
- ldcdbg(RX, "RX state[0x%02lx:0x%02lx] head[0x%04lx] tail[0x%04lx]\n",
- orig_state, lp->chan_state, lp->rx_head, lp->rx_tail);
-@@ -904,16 +908,20 @@ out:
- static irqreturn_t ldc_tx(int irq, void *dev_id)
- {
- struct ldc_channel *lp = dev_id;
-- unsigned long flags, hv_err, orig_state;
-+ unsigned long flags, orig_state;
- unsigned int event_mask = 0;
-
- spin_lock_irqsave(&lp->lock, flags);
-
- orig_state = lp->chan_state;
-- hv_err = sun4v_ldc_tx_get_state(lp->id,
-- &lp->tx_head,
-- &lp->tx_tail,
-- &lp->chan_state);
-+
-+ /* We should probably check for hypervisor errors here and
-+ * reset the LDC channel if we get one.
-+ */
-+ sun4v_ldc_tx_get_state(lp->id,
-+ &lp->tx_head,
-+ &lp->tx_tail,
-+ &lp->chan_state);
-
- ldcdbg(TX, " TX state[0x%02lx:0x%02lx] head[0x%04lx] tail[0x%04lx]\n",
- orig_state, lp->chan_state, lp->tx_head, lp->tx_tail);
-diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
-index 4137579..f255382 100644
---- a/arch/sparc/kernel/pci.c
-+++ b/arch/sparc/kernel/pci.c
-@@ -675,6 +675,7 @@ static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus)
- * humanoid.
- */
- err = sysfs_create_file(&dev->dev.kobj, &dev_attr_obppath.attr);
-+ (void) err;
- }
- list_for_each_entry(child_bus, &bus->children, node)
- pci_bus_register_of_sysfs(child_bus);
-diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c
-index 6c7a33a..6e3874b 100644
---- a/arch/sparc/kernel/pci_common.c
-+++ b/arch/sparc/kernel/pci_common.c
-@@ -295,14 +295,17 @@ static int sun4v_write_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn,
- unsigned int bus = bus_dev->number;
- unsigned int device = PCI_SLOT(devfn);
- unsigned int func = PCI_FUNC(devfn);
-- unsigned long ret;
-
- if (config_out_of_range(pbm, bus, devfn, where)) {
- /* Do nothing. */
- } else {
-- ret = pci_sun4v_config_put(devhandle,
-- HV_PCI_DEVICE_BUILD(bus, device, func),
-- where, size, value);
-+ /* We don't check for hypervisor errors here, but perhaps
-+ * we should and influence our return value depending upon
-+ * what kind of error is thrown.
-+ */
-+ pci_sun4v_config_put(devhandle,
-+ HV_PCI_DEVICE_BUILD(bus, device, func),
-+ where, size, value);
- }
- return PCIBIOS_SUCCESSFUL;
- }
-diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c
-index efb896d..75dfeb6 100644
---- a/arch/sparc/kernel/pci_fire.c
-+++ b/arch/sparc/kernel/pci_fire.c
-@@ -214,11 +214,9 @@ static int pci_fire_msi_setup(struct pci_pbm_info *pbm, unsigned long msiqid,
-
- static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi)
- {
-- unsigned long msiqid;
- u64 val;
-
- val = upa_readq(pbm->pbm_regs + MSI_MAP(msi));
-- msiqid = (val & MSI_MAP_EQNUM);
-
- val &= ~MSI_MAP_VALID;
-
-diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c
-index 445a47a..4620eb7 100644
---- a/arch/sparc/kernel/pci_schizo.c
-+++ b/arch/sparc/kernel/pci_schizo.c
-@@ -1313,7 +1313,7 @@ static int __devinit schizo_pbm_init(struct pci_pbm_info *pbm,
- const struct linux_prom64_registers *regs;
- struct device_node *dp = op->dev.of_node;
- const char *chipset_name;
-- int is_pbm_a, err;
-+ int err;
-
- switch (chip_type) {
- case PBM_CHIP_TYPE_TOMATILLO:
-@@ -1343,8 +1343,6 @@ static int __devinit schizo_pbm_init(struct pci_pbm_info *pbm,
- */
- regs = of_get_property(dp, "reg", NULL);
-
-- is_pbm_a = ((regs[0].phys_addr & 0x00700000) == 0x00600000);
--
- pbm->next = pci_pbm_root;
- pci_pbm_root = pbm;
-
-diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c
-index 743344a..859abfd 100644
---- a/arch/sparc/kernel/pci_sun4v.c
-+++ b/arch/sparc/kernel/pci_sun4v.c
-@@ -580,7 +580,7 @@ static int __devinit pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
- {
- static const u32 vdma_default[] = { 0x80000000, 0x80000000 };
- struct iommu *iommu = pbm->iommu;
-- unsigned long num_tsb_entries, sz, tsbsize;
-+ unsigned long num_tsb_entries, sz;
- u32 dma_mask, dma_offset;
- const u32 *vdma;
-
-@@ -596,7 +596,6 @@ static int __devinit pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
-
- dma_mask = (roundup_pow_of_two(vdma[1]) - 1UL);
- num_tsb_entries = vdma[1] / IO_PAGE_SIZE;
-- tsbsize = num_tsb_entries * sizeof(iopte_t);
-
- dma_offset = vdma[0];
-
-diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c
-index 7c2ced6..8ac23e6 100644
---- a/arch/sparc/kernel/pcr.c
-+++ b/arch/sparc/kernel/pcr.c
-@@ -81,7 +81,7 @@ static void n2_pcr_write(u64 val)
- unsigned long ret;
-
- ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
-- if (val != HV_EOK)
-+ if (ret != HV_EOK)
- write_pcr(val);
- }
-
-diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
-index 9ccc812..96ee50a 100644
---- a/arch/sparc/kernel/ptrace_64.c
-+++ b/arch/sparc/kernel/ptrace_64.c
-@@ -1086,6 +1086,7 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
-
- asmlinkage void syscall_trace_leave(struct pt_regs *regs)
- {
-+#ifdef CONFIG_AUDITSYSCALL
- if (unlikely(current->audit_context)) {
- unsigned long tstate = regs->tstate;
- int result = AUDITSC_SUCCESS;
-@@ -1095,7 +1096,7 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
-
- audit_syscall_exit(result, regs->u_regs[UREG_I0]);
- }
--
-+#endif
- if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
- trace_sys_exit(regs, regs->u_regs[UREG_G1]);
-
-diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
-index 555a76d..3e94a8c 100644
---- a/arch/sparc/kernel/smp_64.c
-+++ b/arch/sparc/kernel/smp_64.c
-@@ -189,7 +189,7 @@ static inline long get_delta (long *rt, long *master)
- void smp_synchronize_tick_client(void)
- {
- long i, delta, adj, adjust_latency = 0, done = 0;
-- unsigned long flags, rt, master_time_stamp, bound;
-+ unsigned long flags, rt, master_time_stamp;
- #if DEBUG_TICK_SYNC
- struct {
- long rt; /* roundtrip time */
-@@ -208,10 +208,8 @@ void smp_synchronize_tick_client(void)
- {
- for (i = 0; i < NUM_ROUNDS; i++) {
- delta = get_delta(&rt, &master_time_stamp);
-- if (delta == 0) {
-+ if (delta == 0)
- done = 1; /* let's lock on to this... */
-- bound = rt;
-- }
-
- if (!done) {
- if (i > 0) {
-@@ -933,13 +931,12 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
- void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
- {
- void *pg_addr;
-- int this_cpu;
- u64 data0;
-
- if (tlb_type == hypervisor)
- return;
-
-- this_cpu = get_cpu();
-+ preempt_disable();
-
- #ifdef CONFIG_DEBUG_DCFLUSH
- atomic_inc(&dcpage_flushes);
-@@ -964,7 +961,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
- }
- __local_flush_dcache_page(page);
-
-- put_cpu();
-+ preempt_enable();
- }
-
- void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
-diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
-index 42ad2ba..9456472 100644
---- a/arch/sparc/kernel/traps_64.c
-+++ b/arch/sparc/kernel/traps_64.c
-@@ -2152,7 +2152,7 @@ static void user_instruction_dump(unsigned int __user *pc)
-
- void show_stack(struct task_struct *tsk, unsigned long *_ksp)
- {
-- unsigned long fp, thread_base, ksp;
-+ unsigned long fp, ksp;
- struct thread_info *tp;
- int count = 0;
- #ifdef CONFIG_FUNCTION_GRAPH_TRACER
-@@ -2173,7 +2173,6 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
- flushw_all();
-
- fp = ksp + STACK_BIAS;
-- thread_base = (unsigned long) tp;
-
- printk("Call Trace:\n");
- do {
---
-1.7.4.1
-
diff --git a/freed-ora/current/master/thinkpad-acpi-fix-backlight.patch b/freed-ora/current/master/thinkpad-acpi-fix-backlight.patch
deleted file mode 100644
index 5ed2544fe..000000000
--- a/freed-ora/current/master/thinkpad-acpi-fix-backlight.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -up linux-2.6.34.noarch/drivers/platform/x86/thinkpad_acpi.c.orig linux-2.6.34.noarch/drivers/platform/x86/thinkpad_acpi.c
---- linux-2.6.34.noarch/drivers/platform/x86/thinkpad_acpi.c.orig 2010-05-17 16:28:13.254200070 -0400
-+++ linux-2.6.34.noarch/drivers/platform/x86/thinkpad_acpi.c 2010-05-17 16:29:56.471200083 -0400
-@@ -3397,7 +3397,7 @@ static int __init hotkey_init(struct ibm
- /* update bright_acpimode... */
- tpacpi_check_std_acpi_brightness_support();
-
-- if (tp_features.bright_acpimode && acpi_video_backlight_support()) {
-+ if (acpi_video_backlight_support()) {
- printk(TPACPI_INFO
- "This ThinkPad has standard ACPI backlight "
- "brightness control, supported by the ACPI "
-@@ -6189,26 +6189,24 @@ static int __init brightness_init(struct
- * going to publish a backlight interface
- */
- b = tpacpi_check_std_acpi_brightness_support();
-- if (b > 0) {
-
-- if (acpi_video_backlight_support()) {
-- if (brightness_enable > 1) {
-- printk(TPACPI_NOTICE
-- "Standard ACPI backlight interface "
-- "available, not loading native one.\n");
-- return 1;
-- } else if (brightness_enable == 1) {
-- printk(TPACPI_NOTICE
-- "Backlight control force enabled, even if standard "
-- "ACPI backlight interface is available\n");
-- }
-- } else {
-- if (brightness_enable > 1) {
-- printk(TPACPI_NOTICE
-- "Standard ACPI backlight interface not "
-- "available, thinkpad_acpi native "
-- "brightness control enabled\n");
-- }
-+ if (acpi_video_backlight_support()) {
-+ if (brightness_enable > 1) {
-+ printk(TPACPI_NOTICE
-+ "Standard ACPI backlight interface "
-+ "available, not loading native one.\n");
-+ return 1;
-+ } else if (brightness_enable == 1) {
-+ printk(TPACPI_NOTICE
-+ "Backlight control force enabled, even if standard "
-+ "ACPI backlight interface is available\n");
-+ }
-+ } else {
-+ if (brightness_enable > 1) {
-+ printk(TPACPI_NOTICE
-+ "Standard ACPI backlight interface not "
-+ "available, thinkpad_acpi native "
-+ "brightness control enabled\n");
- }
- }
-
OpenPOWER on IntegriCloud