mrdy_set_high/mrdy_set_low functions used to be void parameters and used
cached ptr to access device structure.

redefined mrdy_set_high/low to take a device parameter and avoid using
cached pointer.

Signed-off-by: Russ Gorby <russ.go...@intel.com>
---
 drivers/serial/ifx6x60.c |   23 +++++++++++------------
 1 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/serial/ifx6x60.c b/drivers/serial/ifx6x60.c
index 8ddac7c..d036625 100644
--- a/drivers/serial/ifx6x60.c
+++ b/drivers/serial/ifx6x60.c
@@ -108,21 +108,19 @@ MODULE_PARM_DESC(ignore_srdy_start,
 /**
  *     mrdy_set_high           -       set MRDY GPIO
  *
- *     FIXME: Should pass ifx_dev not use saved_ifx_dev
  */
-static inline void mrdy_set_high(void)
+static inline void mrdy_set_high(struct ifx_spi_device *ifx_dev)
 {
-       gpio_set_value(saved_ifx_dev->gpio.mrdy, 1);
+       gpio_set_value(ifx_dev->gpio.mrdy, 1);
 }
 
 /**
  *     mrdy_set_low            -       clear MRDY GPIO
  *
- *     FIXME: Should pass ifx_dev not use saved_ifx_dev
  */
-static inline void mrdy_set_low(void)
+static inline void mrdy_set_low(struct ifx_spi_device *ifx_dev)
 {
-       gpio_set_value(saved_ifx_dev->gpio.mrdy, 0);
+       gpio_set_value(ifx_dev->gpio.mrdy, 0);
 }
 
 /**
@@ -227,7 +225,7 @@ static void mrdy_assert(struct ifx_spi_device *ifx_dev)
                }
        }
        ifx_spi_power_state_set(ifx_dev, IFX_SPI_POWER_DATA_PENDING);
-       mrdy_set_high();
+       mrdy_set_high(ifx_dev);
 }
 
 /**
@@ -276,7 +274,7 @@ static void ifx_spi_timeout(unsigned long arg)
 
        dev_warn(&ifx_dev->spi_dev->dev, "*** SPI Timeout ***");
        ifx_spi_ttyhangup(ifx_dev);
-       mrdy_set_low();
+       mrdy_set_low(ifx_dev);
        clear_bit(IFX_SPI_STATE_TIMER_PENDING, &ifx_dev->flags);
 }
 
@@ -861,6 +859,7 @@ static void ifx_port_shutdown(struct tty_port *port)
        struct ifx_spi_port_data *port_data =
                container_of(port, struct ifx_spi_port_data, serial.tty_port);
        struct ifx_spi_serial *ifx_ser = &port_data->serial;
+       struct ifx_spi_device *ifx_dev = port_data->ifx_spi;
        struct tty_struct *tty;
 
        dev_dbg(ifx_ser->tty_dev, "%s called", __func__);
@@ -869,14 +868,14 @@ static void ifx_port_shutdown(struct tty_port *port)
        clear_bit(OS_HCLOSE_START, &ifx_ser->ostatus);
        clear_bit(OS_HCLOSE_DONE, &ifx_ser->ostatus);
 
-       mrdy_set_low();
+       mrdy_set_low(ifx_dev);
        clear_bit(IFX_SPI_STATE_TIMER_PENDING, &port_data->ifx_spi->flags);
        tty = tty_port_tty_get(&ifx_ser->tty_port);
        if (!tty) {
                dev_dbg(ifx_ser->tty_dev, "no tty");
                return;
        }
-       tasklet_kill(&saved_ifx_dev->io_work_tasklet);
+       tasklet_kill(&ifx_dev->io_work_tasklet);
        tty_kref_put(tty);
 }
 
@@ -959,7 +958,7 @@ static void ifx_spi_complete(void *ctx)
 
 
        dev_dbg(&ifx_dev->spi_dev->dev, "mrdy set low");
-       mrdy_set_low();
+       mrdy_set_low(ifx_dev);
 
        if (!ifx_dev->spi_msg.status) {
                /* check header validity, get comm flags */
@@ -1608,7 +1607,7 @@ static int ifx_spi_spi_probe(struct spi_device *spi)
                ifx_spi_handle_srdy(ifx_dev);
        } else {
                dev_dbg(&spi->dev, "setting mrdy low");
-               mrdy_set_low();
+               mrdy_set_low(ifx_dev);
        }
 
        return 0;
-- 
1.6.0.6

_______________________________________________
MeeGo-kernel mailing list
MeeGo-kernel@lists.meego.com
http://lists.meego.com/listinfo/meego-kernel

Reply via email to