From: Greg Kroah-Hartman Date: Thu, 19 Apr 2012 19:05:37 +0000 (-0700) Subject: 3.2-stable patches X-Git-Tag: v3.2.16~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ad0cf72d6a153069ec52c6730f886ddd550da15;p=thirdparty%2Fkernel%2Fstable-queue.git 3.2-stable patches added patches: pch_dma-support-new-device-lapis-semiconductor-ml7831-ioh.patch spi-topcliff-pch-fix-wuninitialized-warning.patch --- diff --git a/queue-3.2/pch_dma-support-new-device-lapis-semiconductor-ml7831-ioh.patch b/queue-3.2/pch_dma-support-new-device-lapis-semiconductor-ml7831-ioh.patch new file mode 100644 index 00000000000..e08d7a096dd --- /dev/null +++ b/queue-3.2/pch_dma-support-new-device-lapis-semiconductor-ml7831-ioh.patch @@ -0,0 +1,77 @@ +From ca7fe2db892dcf91b2c72ee352eda4ff867903a7 Mon Sep 17 00:00:00 2001 +From: Tomoya MORINAGA +Date: Thu, 17 Nov 2011 16:14:23 +0900 +Subject: pch_dma: Support new device LAPIS Semiconductor ML7831 IOH + +From: Tomoya MORINAGA + +commit ca7fe2db892dcf91b2c72ee352eda4ff867903a7 upstream. + +ML7831 is companion chip for Intel Atom E6xx series. + +Signed-off-by: Tomoya MORINAGA +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/dma/Kconfig | 13 ++++++------- + drivers/dma/pch_dma.c | 8 ++++++-- + 2 files changed, 12 insertions(+), 9 deletions(-) + +--- a/drivers/dma/Kconfig ++++ b/drivers/dma/Kconfig +@@ -201,18 +201,17 @@ config PL330_DMA + platform_data for a dma-pl330 device. + + config PCH_DMA +- tristate "Intel EG20T PCH / OKI Semi IOH(ML7213/ML7223) DMA support" ++ tristate "Intel EG20T PCH / OKI Semi IOH(ML7213/ML7223/ML7831) DMA support" + depends on PCI && X86 + select DMA_ENGINE + help + Enable support for Intel EG20T PCH DMA engine. +- + This driver also can be used for OKI SEMICONDUCTOR IOH(Input/ +- Output Hub), ML7213 and ML7223. +- ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is +- for MP(Media Phone) use. +- ML7213/ML7223 is companion chip for Intel Atom E6xx series. +- ML7213/ML7223 is completely compatible for Intel EG20T PCH. ++ Output Hub), ML7213, ML7223 and ML7831. ++ ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is ++ for MP(Media Phone) use and ML7831 IOH is for general purpose use. ++ ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series. ++ ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH. + + config IMX_SDMA + tristate "i.MX SDMA support" +--- a/drivers/dma/pch_dma.c ++++ b/drivers/dma/pch_dma.c +@@ -1018,6 +1018,8 @@ static void __devexit pch_dma_remove(str + #define PCI_DEVICE_ID_ML7223_DMA2_4CH 0x800E + #define PCI_DEVICE_ID_ML7223_DMA3_4CH 0x8017 + #define PCI_DEVICE_ID_ML7223_DMA4_4CH 0x803B ++#define PCI_DEVICE_ID_ML7831_DMA1_8CH 0x8810 ++#define PCI_DEVICE_ID_ML7831_DMA2_4CH 0x8815 + + DEFINE_PCI_DEVICE_TABLE(pch_dma_id_table) = { + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_EG20T_PCH_DMA_8CH), 8 }, +@@ -1030,6 +1032,8 @@ DEFINE_PCI_DEVICE_TABLE(pch_dma_id_table + { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA2_4CH), 4}, /* Video SPI */ + { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA3_4CH), 4}, /* Security */ + { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA4_4CH), 4}, /* FPGA */ ++ { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_DMA1_8CH), 8}, /* UART */ ++ { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_DMA2_4CH), 4}, /* SPI */ + { 0, }, + }; + +@@ -1057,7 +1061,7 @@ static void __exit pch_dma_exit(void) + module_init(pch_dma_init); + module_exit(pch_dma_exit); + +-MODULE_DESCRIPTION("Intel EG20T PCH / OKI SEMICONDUCTOR ML7213 IOH " +- "DMA controller driver"); ++MODULE_DESCRIPTION("Intel EG20T PCH / OKI SEMICON ML7213/ML7223/ML7831 IOH" ++ "DMA controller driver"); + MODULE_AUTHOR("Yong Wang "); + MODULE_LICENSE("GPL v2"); diff --git a/queue-3.2/series b/queue-3.2/series index 1ae3ba9587d..0a5fac828f7 100644 --- a/queue-3.2/series +++ b/queue-3.2/series @@ -56,3 +56,5 @@ acpica-fix-to-allow-region-arguments-to-reference-other-scopes.patch security-fix-compile-error-in-commoncap.c.patch pch_gbe-do-not-abort-probe-on-bad-mac.patch pch_gbe-memory-corruption-calling-pch_gbe_validate_option.patch +pch_dma-support-new-device-lapis-semiconductor-ml7831-ioh.patch +spi-topcliff-pch-fix-wuninitialized-warning.patch diff --git a/queue-3.2/spi-topcliff-pch-fix-wuninitialized-warning.patch b/queue-3.2/spi-topcliff-pch-fix-wuninitialized-warning.patch new file mode 100644 index 00000000000..4e2f86b56fa --- /dev/null +++ b/queue-3.2/spi-topcliff-pch-fix-wuninitialized-warning.patch @@ -0,0 +1,79 @@ +From de3bd7e6de25141c466773c2e0fa319b2fa93655 Mon Sep 17 00:00:00 2001 +From: Danny Kukawka +Date: Tue, 14 Feb 2012 15:35:03 +0100 +Subject: spi-topcliff-pch: fix -Wuninitialized warning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Danny Kukawka + +commit de3bd7e6de25141c466773c2e0fa319b2fa93655 upstream. + +Fix for: +drivers/spi/spi-topcliff-pch.c: In function ‘pch_spi_handler_sub’: +drivers/spi/spi-topcliff-pch.c:325:17: warning: ‘bpw_len’ may be + used uninitialized in this function [-Wuninitialized] +drivers/spi/spi-topcliff-pch.c:325:42: warning: ‘rx_index’ may be + used uninitialized in this function [-Wuninitialized] +drivers/spi/spi-topcliff-pch.c:325:42: warning: ‘tx_index’ may be + used uninitialized in this function [-Wuninitialized] + +Move usage of tx_index, rx_index and bpw_len into the same +block as where they are set to prevent uninitialized usage. + +v2: instead of init variables with 0 move the whole block + +[This patch title "warnings" makes you think "This patch is not +for bug fix". However, this patch surely patch for bug fix.] + +Signed-off-by: Danny Kukawka +Signed-off-by: Grant Likely +Signed-off-by: Tomoya MORINAGA +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/spi/spi-topcliff-pch.c | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +--- a/drivers/spi/spi-topcliff-pch.c ++++ b/drivers/spi/spi-topcliff-pch.c +@@ -315,22 +315,23 @@ static void pch_spi_handler_sub(struct p + data->tx_index = tx_index; + data->rx_index = rx_index; + +- } +- +- /* if transfer complete interrupt */ +- if (reg_spsr_val & SPSR_FI_BIT) { +- if ((tx_index == bpw_len) && (rx_index == tx_index)) { +- /* disable interrupts */ +- pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL); ++ /* if transfer complete interrupt */ ++ if (reg_spsr_val & SPSR_FI_BIT) { ++ if ((tx_index == bpw_len) && (rx_index == tx_index)) { ++ /* disable interrupts */ ++ pch_spi_setclr_reg(data->master, PCH_SPCR, 0, ++ PCH_ALL); + +- /* transfer is completed; +- inform pch_spi_process_messages */ +- data->transfer_complete = true; +- data->transfer_active = false; +- wake_up(&data->wait); +- } else { +- dev_err(&data->master->dev, +- "%s : Transfer is not completed", __func__); ++ /* transfer is completed; ++ inform pch_spi_process_messages */ ++ data->transfer_complete = true; ++ data->transfer_active = false; ++ wake_up(&data->wait); ++ } else { ++ dev_err(&data->master->dev, ++ "%s : Transfer is not completed", ++ __func__); ++ } + } + } + }