From: Greg Kroah-Hartman Date: Mon, 8 Oct 2012 16:39:31 +0000 (-0700) Subject: 3.6-stable patches X-Git-Tag: v3.0.46~53 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e76a96dd835bbaf81668209c8cdfd6b341f8c14f;p=thirdparty%2Fkernel%2Fstable-queue.git 3.6-stable patches added patches: acpi-run-_osc-after-acpi_full_initialization.patch drivers-dma-dmaengine.c-lower-the-priority-of-failed-to-get-dma-channel-message.patch drivers-scsi-atp870u.c-fix-bad-use-of-udelay.patch kernel-sys.c-call-disable_nonboot_cpus-in-kernel_restart.patch lib-gcd.c-prevent-possible-div-by-0.patch mfd-88pm860x-move-_io-resources-out-of-ioport_ioresource.patch mfd-max8925-move-_io-resources-out-of-ioport_ioresource.patch --- diff --git a/queue-3.6/acpi-run-_osc-after-acpi_full_initialization.patch b/queue-3.6/acpi-run-_osc-after-acpi_full_initialization.patch new file mode 100644 index 00000000000..3325b84bcdf --- /dev/null +++ b/queue-3.6/acpi-run-_osc-after-acpi_full_initialization.patch @@ -0,0 +1,48 @@ +From fc54ab72959edbf229b65ac74b2f122d799ca002 Mon Sep 17 00:00:00 2001 +From: Lin Ming +Date: Mon, 16 Jul 2012 16:30:21 +0800 +Subject: ACPI: run _OSC after ACPI_FULL_INITIALIZATION + +From: Lin Ming + +commit fc54ab72959edbf229b65ac74b2f122d799ca002 upstream. + +The _OSC method may exist in module level code, +so it must be called after ACPI_FULL_INITIALIZATION + +On some new platforms with Zero-Power-Optical-Disk-Drive (ZPODD) +support, this fix is necessary to save power. + +Signed-off-by: Lin Ming +Tested-by: Aaron Lu +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/bus.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/drivers/acpi/bus.c ++++ b/drivers/acpi/bus.c +@@ -994,8 +994,6 @@ static int __init acpi_bus_init(void) + status = acpi_ec_ecdt_probe(); + /* Ignore result. Not having an ECDT is not fatal. */ + +- acpi_bus_osc_support(); +- + status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); + if (ACPI_FAILURE(status)) { + printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n"); +@@ -1003,6 +1001,12 @@ static int __init acpi_bus_init(void) + } + + /* ++ * _OSC method may exist in module level code, ++ * so it must be run after ACPI_FULL_INITIALIZATION ++ */ ++ acpi_bus_osc_support(); ++ ++ /* + * _PDC control method may load dynamic SSDT tables, + * and we need to install the table handler before that. + */ diff --git a/queue-3.6/drivers-dma-dmaengine.c-lower-the-priority-of-failed-to-get-dma-channel-message.patch b/queue-3.6/drivers-dma-dmaengine.c-lower-the-priority-of-failed-to-get-dma-channel-message.patch new file mode 100644 index 00000000000..5f969ec9d65 --- /dev/null +++ b/queue-3.6/drivers-dma-dmaengine.c-lower-the-priority-of-failed-to-get-dma-channel-message.patch @@ -0,0 +1,41 @@ +From 0eb5a35801df3c438ce3fc91310a415ea4452c00 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Thu, 4 Oct 2012 17:11:16 -0700 +Subject: drivers/dma/dmaengine.c: lower the priority of 'failed to get' dma channel message + +From: Fabio Estevam + +commit 0eb5a35801df3c438ce3fc91310a415ea4452c00 upstream. + +Do the same as commit a03a202e95fd ("dmaengine: failure to get a +specific DMA channel is not critical") to get rid of the following +messages during kernel boot: + + dmaengine_get: failed to get dma1chan0: (-22) + dmaengine_get: failed to get dma1chan1: (-22) + dmaengine_get: failed to get dma1chan2: (-22) + dmaengine_get: failed to get dma1chan3: (-22) + .. + +Signed-off-by: Fabio Estevam +Cc: Vinod Koul +Cc: Dan Williams +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/dma/dmaengine.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/dma/dmaengine.c ++++ b/drivers/dma/dmaengine.c +@@ -582,7 +582,7 @@ void dmaengine_get(void) + list_del_rcu(&device->global_node); + break; + } else if (err) +- pr_err("%s: failed to get %s: (%d)\n", ++ pr_debug("%s: failed to get %s: (%d)\n", + __func__, dma_chan_name(chan), err); + } + } diff --git a/queue-3.6/drivers-scsi-atp870u.c-fix-bad-use-of-udelay.patch b/queue-3.6/drivers-scsi-atp870u.c-fix-bad-use-of-udelay.patch new file mode 100644 index 00000000000..ca8b6da94cc --- /dev/null +++ b/queue-3.6/drivers-scsi-atp870u.c-fix-bad-use-of-udelay.patch @@ -0,0 +1,58 @@ +From 0f6d93aa9d96cc9022b51bd10d462b03296be146 Mon Sep 17 00:00:00 2001 +From: Martin Michlmayr +Date: Thu, 4 Oct 2012 17:11:25 -0700 +Subject: drivers/scsi/atp870u.c: fix bad use of udelay + +From: Martin Michlmayr + +commit 0f6d93aa9d96cc9022b51bd10d462b03296be146 upstream. + +The ACARD driver calls udelay() with a value > 2000, which leads to to +the following compilation error on ARM: + + ERROR: "__bad_udelay" [drivers/scsi/atp870u.ko] undefined! + make[1]: *** [__modpost] Error 1 + +This is because udelay is defined on ARM, roughly speaking, as + + #define udelay(n) ((n) > 2000 ? __bad_udelay() : \ + __const_udelay((n) * ((2199023U*HZ)>>11))) + +The argument to __const_udelay is the number of jiffies to wait divided +by 4, but this does not work unless the multiplication does not +overflow, and that is what the build error is designed to prevent. The +intended behavior can be achieved by using mdelay to call udelay +multiple times in a loop. + +[jrnieder@gmail.com: adding context] +Signed-off-by: Martin Michlmayr +Signed-off-by: Jonathan Nieder +Cc: James Bottomley +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/atp870u.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +--- a/drivers/scsi/atp870u.c ++++ b/drivers/scsi/atp870u.c +@@ -1173,7 +1173,16 @@ wait_io1: + outw(val, tmport); + outb(2, 0x80); + TCM_SYNC: +- udelay(0x800); ++ /* ++ * The funny division into multiple delays is to accomodate ++ * arches like ARM where udelay() multiplies its argument by ++ * a large number to initialize a loop counter. To avoid ++ * overflow, the maximum supported udelay is 2000 microseconds. ++ * ++ * XXX it would be more polite to find a way to use msleep() ++ */ ++ mdelay(2); ++ udelay(48); + if ((inb(tmport) & 0x80) == 0x00) { /* bsy ? */ + outw(0, tmport--); + outb(0, tmport); diff --git a/queue-3.6/kernel-sys.c-call-disable_nonboot_cpus-in-kernel_restart.patch b/queue-3.6/kernel-sys.c-call-disable_nonboot_cpus-in-kernel_restart.patch new file mode 100644 index 00000000000..632d2db16be --- /dev/null +++ b/queue-3.6/kernel-sys.c-call-disable_nonboot_cpus-in-kernel_restart.patch @@ -0,0 +1,38 @@ +From f96972f2dc6365421cf2366ebd61ee4cf060c8d5 Mon Sep 17 00:00:00 2001 +From: Shawn Guo +Date: Thu, 4 Oct 2012 17:12:23 -0700 +Subject: kernel/sys.c: call disable_nonboot_cpus() in kernel_restart() + +From: Shawn Guo + +commit f96972f2dc6365421cf2366ebd61ee4cf060c8d5 upstream. + +As kernel_power_off() calls disable_nonboot_cpus(), we may also want to +have kernel_restart() call disable_nonboot_cpus(). Doing so can help +machines that require boot cpu be the last alive cpu during reboot to +survive with kernel restart. + +This fixes one reboot issue seen on imx6q (Cortex-A9 Quad). The machine +requires that the restart routine be run on the primary cpu rather than +secondary ones. Otherwise, the secondary core running the restart +routine will fail to come to online after reboot. + +Signed-off-by: Shawn Guo +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/sys.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/kernel/sys.c ++++ b/kernel/sys.c +@@ -368,6 +368,7 @@ EXPORT_SYMBOL(unregister_reboot_notifier + void kernel_restart(char *cmd) + { + kernel_restart_prepare(cmd); ++ disable_nonboot_cpus(); + if (!cmd) + printk(KERN_EMERG "Restarting system.\n"); + else diff --git a/queue-3.6/lib-gcd.c-prevent-possible-div-by-0.patch b/queue-3.6/lib-gcd.c-prevent-possible-div-by-0.patch new file mode 100644 index 00000000000..9b5da7f6e0f --- /dev/null +++ b/queue-3.6/lib-gcd.c-prevent-possible-div-by-0.patch @@ -0,0 +1,38 @@ +From e96875677fb2b7cb739c5d7769824dff7260d31d Mon Sep 17 00:00:00 2001 +From: Davidlohr Bueso +Date: Thu, 4 Oct 2012 17:13:18 -0700 +Subject: lib/gcd.c: prevent possible div by 0 + +From: Davidlohr Bueso + +commit e96875677fb2b7cb739c5d7769824dff7260d31d upstream. + +Account for all properties when a and/or b are 0: +gcd(0, 0) = 0 +gcd(a, 0) = a +gcd(0, b) = b + +Fixes no known problems in current kernels. + +Signed-off-by: Davidlohr Bueso +Cc: Eric Dumazet +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + lib/gcd.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/lib/gcd.c ++++ b/lib/gcd.c +@@ -9,6 +9,9 @@ unsigned long gcd(unsigned long a, unsig + + if (a < b) + swap(a, b); ++ ++ if (!b) ++ return a; + while ((r = a % b) != 0) { + a = b; + b = r; diff --git a/queue-3.6/mfd-88pm860x-move-_io-resources-out-of-ioport_ioresource.patch b/queue-3.6/mfd-88pm860x-move-_io-resources-out-of-ioport_ioresource.patch new file mode 100644 index 00000000000..247d49c1709 --- /dev/null +++ b/queue-3.6/mfd-88pm860x-move-_io-resources-out-of-ioport_ioresource.patch @@ -0,0 +1,148 @@ +From c10c2aab634a3c61c46b98875988b2f53040bc9c Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Tue, 7 Aug 2012 19:42:44 +0100 +Subject: mfd: 88pm860x: Move _IO resources out of ioport_ioresource + +From: Mark Brown + +commit c10c2aab634a3c61c46b98875988b2f53040bc9c upstream. + +The removal of mach/io.h from most ARM platforms also set the range of +valid IO ports to be empty for most platforms when previously any 32 +bit integer had been valid. This makes it impossible to add IO resources +as the added range is smaller than that of the root resource for IO ports. + +Since we're not really using IO memory at all fix this by defining our +own root resource outside the normal tree and make that the parent of +all IO resources. This also ensures we won't conflict with read IO ports +if we ever run on a platform which happens to use them. + +Signed-off-by: Mark Brown +Acked-by: Arnd Bergmann +Acked-by: Haojian Zhuang +Tested-by: Haojian Zhuang +Signed-off-by: Samuel Ortiz +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mfd/88pm860x-core.c | 92 ++++++++++++++++++++++++++++++-------------- + 1 file changed, 63 insertions(+), 29 deletions(-) + +--- a/drivers/mfd/88pm860x-core.c ++++ b/drivers/mfd/88pm860x-core.c +@@ -21,40 +21,73 @@ + + #define INT_STATUS_NUM 3 + ++static struct resource io_parent = { ++ .start = 0, ++ .end = 0xffffffff, ++ .flags = IORESOURCE_IO, ++}; ++ + static struct resource bk_resources[] __devinitdata = { +- {PM8606_BACKLIGHT1, PM8606_BACKLIGHT1, "backlight-0", IORESOURCE_IO,}, +- {PM8606_BACKLIGHT2, PM8606_BACKLIGHT2, "backlight-1", IORESOURCE_IO,}, +- {PM8606_BACKLIGHT3, PM8606_BACKLIGHT3, "backlight-2", IORESOURCE_IO,}, ++ {PM8606_BACKLIGHT1, PM8606_BACKLIGHT1, "backlight-0", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_BACKLIGHT2, PM8606_BACKLIGHT2, "backlight-1", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_BACKLIGHT3, PM8606_BACKLIGHT3, "backlight-2", IORESOURCE_IO, ++ &io_parent,}, + }; + + static struct resource led_resources[] __devinitdata = { +- {PM8606_LED1_RED, PM8606_LED1_RED, "led0-red", IORESOURCE_IO,}, +- {PM8606_LED1_GREEN, PM8606_LED1_GREEN, "led0-green", IORESOURCE_IO,}, +- {PM8606_LED1_BLUE, PM8606_LED1_BLUE, "led0-blue", IORESOURCE_IO,}, +- {PM8606_LED2_RED, PM8606_LED2_RED, "led1-red", IORESOURCE_IO,}, +- {PM8606_LED2_GREEN, PM8606_LED2_GREEN, "led1-green", IORESOURCE_IO,}, +- {PM8606_LED2_BLUE, PM8606_LED2_BLUE, "led1-blue", IORESOURCE_IO,}, ++ {PM8606_LED1_RED, PM8606_LED1_RED, "led0-red", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_LED1_GREEN, PM8606_LED1_GREEN, "led0-green", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_LED1_BLUE, PM8606_LED1_BLUE, "led0-blue", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_LED2_RED, PM8606_LED2_RED, "led1-red", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_LED2_GREEN, PM8606_LED2_GREEN, "led1-green", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8606_LED2_BLUE, PM8606_LED2_BLUE, "led1-blue", IORESOURCE_IO, ++ &io_parent,}, + }; + + static struct resource regulator_resources[] __devinitdata = { +- {PM8607_ID_BUCK1, PM8607_ID_BUCK1, "buck-1", IORESOURCE_IO,}, +- {PM8607_ID_BUCK2, PM8607_ID_BUCK2, "buck-2", IORESOURCE_IO,}, +- {PM8607_ID_BUCK3, PM8607_ID_BUCK3, "buck-3", IORESOURCE_IO,}, +- {PM8607_ID_LDO1, PM8607_ID_LDO1, "ldo-01", IORESOURCE_IO,}, +- {PM8607_ID_LDO2, PM8607_ID_LDO2, "ldo-02", IORESOURCE_IO,}, +- {PM8607_ID_LDO3, PM8607_ID_LDO3, "ldo-03", IORESOURCE_IO,}, +- {PM8607_ID_LDO4, PM8607_ID_LDO4, "ldo-04", IORESOURCE_IO,}, +- {PM8607_ID_LDO5, PM8607_ID_LDO5, "ldo-05", IORESOURCE_IO,}, +- {PM8607_ID_LDO6, PM8607_ID_LDO6, "ldo-06", IORESOURCE_IO,}, +- {PM8607_ID_LDO7, PM8607_ID_LDO7, "ldo-07", IORESOURCE_IO,}, +- {PM8607_ID_LDO8, PM8607_ID_LDO8, "ldo-08", IORESOURCE_IO,}, +- {PM8607_ID_LDO9, PM8607_ID_LDO9, "ldo-09", IORESOURCE_IO,}, +- {PM8607_ID_LDO10, PM8607_ID_LDO10, "ldo-10", IORESOURCE_IO,}, +- {PM8607_ID_LDO11, PM8607_ID_LDO11, "ldo-11", IORESOURCE_IO,}, +- {PM8607_ID_LDO12, PM8607_ID_LDO12, "ldo-12", IORESOURCE_IO,}, +- {PM8607_ID_LDO13, PM8607_ID_LDO13, "ldo-13", IORESOURCE_IO,}, +- {PM8607_ID_LDO14, PM8607_ID_LDO14, "ldo-14", IORESOURCE_IO,}, +- {PM8607_ID_LDO15, PM8607_ID_LDO15, "ldo-15", IORESOURCE_IO,}, ++ {PM8607_ID_BUCK1, PM8607_ID_BUCK1, "buck-1", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_BUCK2, PM8607_ID_BUCK2, "buck-2", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_BUCK3, PM8607_ID_BUCK3, "buck-3", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO1, PM8607_ID_LDO1, "ldo-01", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO2, PM8607_ID_LDO2, "ldo-02", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO3, PM8607_ID_LDO3, "ldo-03", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO4, PM8607_ID_LDO4, "ldo-04", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO5, PM8607_ID_LDO5, "ldo-05", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO6, PM8607_ID_LDO6, "ldo-06", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO7, PM8607_ID_LDO7, "ldo-07", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO8, PM8607_ID_LDO8, "ldo-08", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO9, PM8607_ID_LDO9, "ldo-09", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO10, PM8607_ID_LDO10, "ldo-10", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO11, PM8607_ID_LDO11, "ldo-11", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO12, PM8607_ID_LDO12, "ldo-12", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO13, PM8607_ID_LDO13, "ldo-13", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO14, PM8607_ID_LDO14, "ldo-14", IORESOURCE_IO, ++ &io_parent,}, ++ {PM8607_ID_LDO15, PM8607_ID_LDO15, "ldo-15", IORESOURCE_IO, ++ &io_parent,}, + }; + + static struct resource touch_resources[] __devinitdata = { +@@ -91,11 +124,12 @@ static struct resource charger_resources + }; + + static struct resource preg_resources[] __devinitdata = { +- {PM8606_ID_PREG, PM8606_ID_PREG, "preg", IORESOURCE_IO,}, ++ {PM8606_ID_PREG, PM8606_ID_PREG, "preg", IORESOURCE_IO, ++ &io_parent,}, + }; + + static struct resource rtc_resources[] __devinitdata = { +- {PM8607_IRQ_RTC, PM8607_IRQ_RTC, "rtc", IORESOURCE_IRQ,}, ++ {PM8607_IRQ_RTC, PM8607_IRQ_RTC, "rtc", IORESOURCE_IRQ, &io_parent,}, + }; + + static struct mfd_cell bk_devs[] = { diff --git a/queue-3.6/mfd-max8925-move-_io-resources-out-of-ioport_ioresource.patch b/queue-3.6/mfd-max8925-move-_io-resources-out-of-ioport_ioresource.patch new file mode 100644 index 00000000000..cf857412961 --- /dev/null +++ b/queue-3.6/mfd-max8925-move-_io-resources-out-of-ioport_ioresource.patch @@ -0,0 +1,76 @@ +From bee6e1fa617b1fb7f6f91033428410e05f5ab0ed Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Tue, 7 Aug 2012 19:42:43 +0100 +Subject: mfd: max8925: Move _IO resources out of ioport_ioresource + +From: Mark Brown + +commit bee6e1fa617b1fb7f6f91033428410e05f5ab0ed upstream. + +The removal of mach/io.h from most ARM platforms also set the range of +valid IO ports to be empty for most platforms when previously any 32 +bit integer had been valid. This makes it impossible to add IO resources +as the added range is smaller than that of the root resource for IO ports. + +Since we're not really using IO memory at all fix this by defining our +own root resource outside the normal tree and make that the parent of +all IO resources. This also ensures we won't conflict with read IO ports +if we ever run on a platform which happens to use them. + +Signed-off-by: Mark Brown +Acked-by: Haojian Zhuang +Tested-by: Haojian Zhuang +Signed-off-by: Samuel Ortiz +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mfd/max8925-core.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/drivers/mfd/max8925-core.c ++++ b/drivers/mfd/max8925-core.c +@@ -18,12 +18,19 @@ + #include + #include + ++static struct resource io_parent = { ++ .start = 0, ++ .end = 0xffffffff, ++ .flags = IORESOURCE_IO, ++}; ++ + static struct resource backlight_resources[] = { + { + .name = "max8925-backlight", + .start = MAX8925_WLED_MODE_CNTL, + .end = MAX8925_WLED_CNTL, + .flags = IORESOURCE_IO, ++ .parent = &io_parent, + }, + }; + +@@ -42,6 +49,7 @@ static struct resource touch_resources[] + .start = MAX8925_TSC_IRQ, + .end = MAX8925_ADC_RES_END, + .flags = IORESOURCE_IO, ++ .parent = &io_parent, + }, + }; + +@@ -60,6 +68,7 @@ static struct resource power_supply_reso + .start = MAX8925_CHG_IRQ1, + .end = MAX8925_CHG_IRQ1_MASK, + .flags = IORESOURCE_IO, ++ .parent = &io_parent, + }, + }; + +@@ -118,6 +127,7 @@ static struct mfd_cell onkey_devs[] = { + .start = MAX8925_##_start, \ + .end = MAX8925_##_end, \ + .flags = IORESOURCE_IO, \ ++ .parent = &io_parent, \ + } + + static struct resource regulator_resources[] = { diff --git a/queue-3.6/series b/queue-3.6/series index 7bf38b7e696..091994e2960 100644 --- a/queue-3.6/series +++ b/queue-3.6/series @@ -11,3 +11,10 @@ em28xx-make-all-em28xx-extensions-to-be-initialized-asynchronously.patch media-rc-ite-cir-initialise-ite_dev-rdev-earlier.patch media-gspca_pac7302-add-support-for-device-1ae7-2001-speedlink-snappy-microphone-sl-6825-sbk.patch media-gspca_pac7302-make-red-balance-and-blue-balance-controls-work-again.patch +acpi-run-_osc-after-acpi_full_initialization.patch +mfd-max8925-move-_io-resources-out-of-ioport_ioresource.patch +mfd-88pm860x-move-_io-resources-out-of-ioport_ioresource.patch +lib-gcd.c-prevent-possible-div-by-0.patch +kernel-sys.c-call-disable_nonboot_cpus-in-kernel_restart.patch +drivers-scsi-atp870u.c-fix-bad-use-of-udelay.patch +drivers-dma-dmaengine.c-lower-the-priority-of-failed-to-get-dma-channel-message.patch