--- /dev/null
+From de3bd7e6de25141c466773c2e0fa319b2fa93655 Mon Sep 17 00:00:00 2001
+From: Danny Kukawka <danny.kukawka@bisect.de>
+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 <danny.kukawka@bisect.de>
+
+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 <danny.kukawka@bisect.de>
+Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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
+@@ -318,22 +318,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__);
++ }
+ }
+ }
+ }