Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 235506
b: refs/heads/master
c: 2f1522e
h: refs/heads/master
v: v3
  • Loading branch information
Russ Gorby authored and Greg Kroah-Hartman committed Feb 3, 2011
1 parent f7b4cc0 commit 4955604
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a5f4dbf0ae972510faca799a809d3771fab323b7
refs/heads/master: 2f1522eccb09188f0008168f75420bc2fedc9cae
33 changes: 17 additions & 16 deletions trunk/drivers/tty/serial/ifx6x60.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Jan Dumon <j.dumon@option.com>
*
* Copyright (C) 2009, 2010 Intel Corp
* Russ Gorby <richardx.r.gorby@intel.com>
* Russ Gorby <russ.gorby@intel.com>
*
* 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
Expand Down Expand Up @@ -732,7 +732,7 @@ static void ifx_spi_io(unsigned long data)
/*
* setup dma pointers
*/
if (ifx_dev->is_6160) {
if (ifx_dev->use_dma) {
ifx_dev->spi_msg.is_dma_mapped = 1;
ifx_dev->tx_dma = ifx_dev->tx_bus;
ifx_dev->rx_dma = ifx_dev->rx_bus;
Expand Down Expand Up @@ -960,14 +960,20 @@ static int ifx_spi_spi_probe(struct spi_device *spi)
{
int ret;
int srdy;
struct ifx_modem_platform_data *pl_data = NULL;
struct ifx_modem_platform_data *pl_data;
struct ifx_spi_device *ifx_dev;

if (saved_ifx_dev) {
dev_dbg(&spi->dev, "ignoring subsequent detection");
return -ENODEV;
}

pl_data = (struct ifx_modem_platform_data *)spi->dev.platform_data;
if (!pl_data) {
dev_err(&spi->dev, "missing platform data!");
return -ENODEV;
}

/* initialize structure to hold our device variables */
ifx_dev = kzalloc(sizeof(struct ifx_spi_device), GFP_KERNEL);
if (!ifx_dev) {
Expand All @@ -983,7 +989,9 @@ static int ifx_spi_spi_probe(struct spi_device *spi)
init_timer(&ifx_dev->spi_timer);
ifx_dev->spi_timer.function = ifx_spi_timeout;
ifx_dev->spi_timer.data = (unsigned long)ifx_dev;
ifx_dev->is_6160 = pl_data->is_6160;
ifx_dev->modem = pl_data->modem_type;
ifx_dev->use_dma = pl_data->use_dma;
ifx_dev->max_hz = pl_data->max_hz;

/* ensure SPI protocol flags are initialized to enable transfer */
ifx_dev->spi_more = 0;
Expand Down Expand Up @@ -1025,18 +1033,11 @@ static int ifx_spi_spi_probe(struct spi_device *spi)
goto error_ret;
}

pl_data = (struct ifx_modem_platform_data *)spi->dev.platform_data;
if (pl_data) {
ifx_dev->gpio.reset = pl_data->rst_pmu;
ifx_dev->gpio.po = pl_data->pwr_on;
ifx_dev->gpio.mrdy = pl_data->mrdy;
ifx_dev->gpio.srdy = pl_data->srdy;
ifx_dev->gpio.reset_out = pl_data->rst_out;
} else {
dev_err(&spi->dev, "missing platform data!");
ret = -ENODEV;
goto error_ret;
}
ifx_dev->gpio.reset = pl_data->rst_pmu;
ifx_dev->gpio.po = pl_data->pwr_on;
ifx_dev->gpio.mrdy = pl_data->mrdy;
ifx_dev->gpio.srdy = pl_data->srdy;
ifx_dev->gpio.reset_out = pl_data->rst_out;

dev_info(&spi->dev, "gpios %d, %d, %d, %d, %d",
ifx_dev->gpio.reset, ifx_dev->gpio.po, ifx_dev->gpio.mrdy,
Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/tty/serial/ifx6x60.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,9 @@ struct ifx_spi_device {
dma_addr_t rx_dma;
dma_addr_t tx_dma;

int is_6160; /* Modem type */
int modem; /* Modem type */
int use_dma; /* provide dma-able addrs in SPI msg */
long max_hz; /* max SPI frequency */

spinlock_t write_lock;
int write_pending;
Expand Down
19 changes: 12 additions & 7 deletions trunk/include/linux/spi/ifx_modem.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@
#define LINUX_IFX_MODEM_H

struct ifx_modem_platform_data {
unsigned short rst_out; /* modem reset out */
unsigned short pwr_on; /* power on */
unsigned short rst_pmu; /* reset modem */
unsigned short tx_pwr; /* modem power threshold */
unsigned short srdy; /* SRDY */
unsigned short mrdy; /* MRDY */
unsigned short is_6160; /* Modem type */
unsigned short rst_out; /* modem reset out */
unsigned short pwr_on; /* power on */
unsigned short rst_pmu; /* reset modem */
unsigned short tx_pwr; /* modem power threshold */
unsigned short srdy; /* SRDY */
unsigned short mrdy; /* MRDY */
unsigned char modem_type; /* Modem type */
unsigned long max_hz; /* max SPI frequency */
unsigned short use_dma:1; /* spi protocol driver supplies
dma-able addrs */
};
#define IFX_MODEM_6160 1
#define IFX_MODEM_6260 2

#endif

0 comments on commit 4955604

Please sign in to comment.