Skip to content

Commit

Permalink
Merge remote-tracking branch 'spi/topic/pdata' into spi-next
Browse files Browse the repository at this point in the history
  • Loading branch information
broonie committed Sep 1, 2013
2 parents 11c28cf + b5f9a9d commit 68aa4cb
Show file tree
Hide file tree
Showing 30 changed files with 125 additions and 160 deletions.
2 changes: 1 addition & 1 deletion drivers/spi/spi-altera.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ static irqreturn_t altera_spi_irq(int irq, void *dev)

static int altera_spi_probe(struct platform_device *pdev)
{
struct altera_spi_platform_data *platp = pdev->dev.platform_data;
struct altera_spi_platform_data *platp = dev_get_platdata(&pdev->dev);
struct altera_spi *hw;
struct spi_master *master;
struct resource *res;
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-ath79.c
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ static int ath79_spi_probe(struct platform_device *pdev)
sp = spi_master_get_devdata(master);
platform_set_drvdata(pdev, sp);

pdata = pdev->dev.platform_data;
pdata = dev_get_platdata(&pdev->dev);

master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
master->setup = ath79_spi_setup;
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-au1550.c
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ static int au1550_spi_probe(struct platform_device *pdev)
hw = spi_master_get_devdata(master);

hw->master = spi_master_get(master);
hw->pdata = pdev->dev.platform_data;
hw->pdata = dev_get_platdata(&pdev->dev);
hw->dev = &pdev->dev;

if (hw->pdata == NULL) {
Expand Down
8 changes: 3 additions & 5 deletions drivers/spi/spi-bcm63xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
{
struct resource *r;
struct device *dev = &pdev->dev;
struct bcm63xx_spi_pdata *pdata = pdev->dev.platform_data;
struct bcm63xx_spi_pdata *pdata = dev_get_platdata(&pdev->dev);
int irq;
struct spi_master *master;
struct clk *clk;
Expand Down Expand Up @@ -474,8 +474,7 @@ static int bcm63xx_spi_remove(struct platform_device *pdev)
#ifdef CONFIG_PM
static int bcm63xx_spi_suspend(struct device *dev)
{
struct spi_master *master =
platform_get_drvdata(to_platform_device(dev));
struct spi_master *master = dev_get_drvdata(dev);
struct bcm63xx_spi *bs = spi_master_get_devdata(master);

spi_master_suspend(master);
Expand All @@ -487,8 +486,7 @@ static int bcm63xx_spi_suspend(struct device *dev)

static int bcm63xx_spi_resume(struct device *dev)
{
struct spi_master *master =
platform_get_drvdata(to_platform_device(dev));
struct spi_master *master = dev_get_drvdata(dev);
struct bcm63xx_spi *bs = spi_master_get_devdata(master);

clk_prepare_enable(bs->clk);
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-bfin-sport.c
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,7 @@ static int bfin_sport_spi_probe(struct platform_device *pdev)
struct bfin_sport_spi_master_data *drv_data;
int status;

platform_info = dev->platform_data;
platform_info = dev_get_platdata(dev);

/* Allocate master with space for drv_data */
master = spi_alloc_master(dev, sizeof(*master) + 16);
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-bfin-v3.c
Original file line number Diff line number Diff line change
Expand Up @@ -773,7 +773,7 @@ static irqreturn_t bfin_spi_rx_dma_isr(int irq, void *dev_id)
static int bfin_spi_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct bfin_spi3_master *info = dev->platform_data;
struct bfin_spi3_master *info = dev_get_platdata(dev);
struct spi_master *master;
struct bfin_spi_master *drv_data;
struct resource *mem, *res;
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-bfin5xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ static int bfin_spi_probe(struct platform_device *pdev)
struct resource *res;
int status = 0;

platform_info = dev->platform_data;
platform_info = dev_get_platdata(dev);

/* Allocate master with space for drv_data */
master = spi_alloc_master(dev, sizeof(*drv_data));
Expand Down
6 changes: 3 additions & 3 deletions drivers/spi/spi-coldfire-qspi.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ static int mcfqspi_probe(struct platform_device *pdev)
struct mcfqspi_platform_data *pdata;
int status;

pdata = pdev->dev.platform_data;
pdata = dev_get_platdata(&pdev->dev);
if (!pdata) {
dev_dbg(&pdev->dev, "platform data is missing\n");
return -ENOENT;
Expand Down Expand Up @@ -558,7 +558,7 @@ static int mcfqspi_resume(struct device *dev)
#ifdef CONFIG_PM_RUNTIME
static int mcfqspi_runtime_suspend(struct device *dev)
{
struct mcfqspi *mcfqspi = platform_get_drvdata(to_platform_device(dev));
struct mcfqspi *mcfqspi = dev_get_drvdata(dev);

clk_disable(mcfqspi->clk);

Expand All @@ -567,7 +567,7 @@ static int mcfqspi_runtime_suspend(struct device *dev)

static int mcfqspi_runtime_resume(struct device *dev)
{
struct mcfqspi *mcfqspi = platform_get_drvdata(to_platform_device(dev));
struct mcfqspi *mcfqspi = dev_get_drvdata(dev);

clk_enable(mcfqspi->clk);

Expand Down
4 changes: 2 additions & 2 deletions drivers/spi/spi-davinci.c
Original file line number Diff line number Diff line change
Expand Up @@ -872,8 +872,8 @@ static int davinci_spi_probe(struct platform_device *pdev)
goto free_master;
}

if (pdev->dev.platform_data) {
pdata = pdev->dev.platform_data;
if (dev_get_platdata(&pdev->dev)) {
pdata = dev_get_platdata(&pdev->dev);
dspi->pdata = *pdata;
} else {
/* update dspi pdata with that from the DT */
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-ep93xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -874,7 +874,7 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
int irq;
int error;

info = pdev->dev.platform_data;
info = dev_get_platdata(&pdev->dev);

irq = platform_get_irq(pdev, 0);
if (irq < 0) {
Expand Down
4 changes: 2 additions & 2 deletions drivers/spi/spi-fsl-espi.c
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,7 @@ static void fsl_espi_remove(struct mpc8xxx_spi *mspi)
static struct spi_master * fsl_espi_probe(struct device *dev,
struct resource *mem, unsigned int irq)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct spi_master *master;
struct mpc8xxx_spi *mpc8xxx_spi;
struct fsl_espi_reg *reg_base;
Expand Down Expand Up @@ -665,7 +665,7 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
static int of_fsl_espi_get_chipselects(struct device *dev)
{
struct device_node *np = dev->of_node;
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
const u32 *prop;
int len;

Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-fsl-lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ const char *mpc8xxx_spi_strmode(unsigned int flags)
int mpc8xxx_spi_probe(struct device *dev, struct resource *mem,
unsigned int irq)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct spi_master *master;
struct mpc8xxx_spi *mpc8xxx_spi;
int ret = 0;
Expand Down
13 changes: 7 additions & 6 deletions drivers/spi/spi-fsl-spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,7 @@ static void fsl_spi_grlib_cs_control(struct spi_device *spi, bool on)

static void fsl_spi_grlib_probe(struct device *dev)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct spi_master *master = dev_get_drvdata(dev);
struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
struct fsl_spi_reg *reg_base = mpc8xxx_spi->reg_base;
Expand All @@ -600,7 +600,7 @@ static void fsl_spi_grlib_probe(struct device *dev)
static struct spi_master * fsl_spi_probe(struct device *dev,
struct resource *mem, unsigned int irq)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct spi_master *master;
struct mpc8xxx_spi *mpc8xxx_spi;
struct fsl_spi_reg *reg_base;
Expand Down Expand Up @@ -700,7 +700,8 @@ static struct spi_master * fsl_spi_probe(struct device *dev,
static void fsl_spi_cs_control(struct spi_device *spi, bool on)
{
struct device *dev = spi->dev.parent->parent;
struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(dev->platform_data);
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(pdata);
u16 cs = spi->chip_select;
int gpio = pinfo->gpios[cs];
bool alow = pinfo->alow_flags[cs];
Expand All @@ -711,7 +712,7 @@ static void fsl_spi_cs_control(struct spi_device *spi, bool on)
static int of_fsl_spi_get_chipselects(struct device *dev)
{
struct device_node *np = dev->of_node;
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(pdata);
int ngpios;
int i = 0;
Expand Down Expand Up @@ -790,7 +791,7 @@ static int of_fsl_spi_get_chipselects(struct device *dev)

static int of_fsl_spi_free_chipselects(struct device *dev)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(pdata);
int i;

Expand Down Expand Up @@ -889,7 +890,7 @@ static int plat_mpc8xxx_spi_probe(struct platform_device *pdev)
int irq;
struct spi_master *master;

if (!pdev->dev.platform_data)
if (!dev_get_platdata(&pdev->dev))
return -EINVAL;

mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
Expand Down
4 changes: 2 additions & 2 deletions drivers/spi/spi-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ static int spi_gpio_probe(struct platform_device *pdev)
if (status > 0)
use_of = 1;

pdata = pdev->dev.platform_data;
pdata = dev_get_platdata(&pdev->dev);
#ifdef GENERIC_BITBANG
if (!pdata || !pdata->num_chipselect)
return -ENODEV;
Expand Down Expand Up @@ -506,7 +506,7 @@ static int spi_gpio_remove(struct platform_device *pdev)
int status;

spi_gpio = platform_get_drvdata(pdev);
pdata = pdev->dev.platform_data;
pdata = dev_get_platdata(&pdev->dev);

/* stop() unregisters child devices too */
status = spi_bitbang_stop(&spi_gpio->bitbang);
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-mpc512x-psc.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
u32 size, unsigned int irq,
s16 bus_num)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct mpc512x_psc_spi *mps;
struct spi_master *master;
int ret;
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-mpc52xx-psc.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ static irqreturn_t mpc52xx_psc_spi_isr(int irq, void *dev_id)
static int mpc52xx_psc_spi_do_probe(struct device *dev, u32 regaddr,
u32 size, unsigned int irq, s16 bus_num)
{
struct fsl_spi_platform_data *pdata = dev->platform_data;
struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
struct mpc52xx_psc_spi *mps;
struct spi_master *master;
int ret;
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-nuc900.c
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ static int nuc900_spi_probe(struct platform_device *pdev)

hw = spi_master_get_devdata(master);
hw->master = spi_master_get(master);
hw->pdata = pdev->dev.platform_data;
hw->pdata = dev_get_platdata(&pdev->dev);
hw->dev = &pdev->dev;

if (hw->pdata == NULL) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-oc-tiny.c
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ static int tiny_spi_of_probe(struct platform_device *pdev)

static int tiny_spi_probe(struct platform_device *pdev)
{
struct tiny_spi_platform_data *platp = pdev->dev.platform_data;
struct tiny_spi_platform_data *platp = dev_get_platdata(&pdev->dev);
struct tiny_spi *hw;
struct spi_master *master;
struct resource *res;
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-omap-100k.c
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ static int omap1_spi100k_probe(struct platform_device *pdev)
* You should allocate this with ioremap() before initializing
* the SPI.
*/
spi100k->base = (void __iomem *) pdev->dev.platform_data;
spi100k->base = (void __iomem *)dev_get_platdata(&pdev->dev);

spi100k->ick = devm_clk_get(&pdev->dev, "ick");
if (IS_ERR(spi100k->ick)) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/spi-omap2-mcspi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1340,7 +1340,7 @@ static int omap2_mcspi_probe(struct platform_device *pdev)
if (of_get_property(node, "ti,pindir-d0-out-d1-in", NULL))
mcspi->pin_dir = MCSPI_PINDIR_D0_OUT_D1_IN;
} else {
pdata = pdev->dev.platform_data;
pdata = dev_get_platdata(&pdev->dev);
master->num_chipselect = pdata->num_cs;
if (pdev->id != -1)
master->bus_num = pdev->id;
Expand Down
3 changes: 2 additions & 1 deletion drivers/spi/spi-pl022.c
Original file line number Diff line number Diff line change
Expand Up @@ -2091,7 +2091,8 @@ pl022_platform_data_dt_get(struct device *dev)
static int pl022_probe(struct amba_device *adev, const struct amba_id *id)
{
struct device *dev = &adev->dev;
struct pl022_ssp_controller *platform_info = adev->dev.platform_data;
struct pl022_ssp_controller *platform_info =
dev_get_platdata(&adev->dev);
struct spi_master *master;
struct pl022 *pl022 = NULL; /*Data for this driver */
struct device_node *np = adev->dev.of_node;
Expand Down
19 changes: 13 additions & 6 deletions drivers/spi/spi-rspi.c
Original file line number Diff line number Diff line change
Expand Up @@ -564,8 +564,12 @@ static void rspi_work(struct work_struct *work)
unsigned long flags;
int ret;

spin_lock_irqsave(&rspi->lock, flags);
while (!list_empty(&rspi->queue)) {
while (1) {
spin_lock_irqsave(&rspi->lock, flags);
if (list_empty(&rspi->queue)) {
spin_unlock_irqrestore(&rspi->lock, flags);
break;
}
mesg = list_entry(rspi->queue.next, struct spi_message, queue);
list_del_init(&mesg->queue);
spin_unlock_irqrestore(&rspi->lock, flags);
Expand Down Expand Up @@ -595,8 +599,6 @@ static void rspi_work(struct work_struct *work)

mesg->status = 0;
mesg->complete(mesg->context);

spin_lock_irqsave(&rspi->lock, flags);
}

return;
Expand Down Expand Up @@ -664,12 +666,13 @@ static irqreturn_t rspi_irq(int irq, void *_sr)
static int rspi_request_dma(struct rspi_data *rspi,
struct platform_device *pdev)
{
struct rspi_plat_data *rspi_pd = pdev->dev.platform_data;
struct rspi_plat_data *rspi_pd = dev_get_platdata(&pdev->dev);
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
dma_cap_mask_t mask;
struct dma_slave_config cfg;
int ret;

if (!rspi_pd)
if (!res || !rspi_pd)
return 0; /* The driver assumes no error. */

rspi->dma_width_16bit = rspi_pd->dma_width_16bit;
Expand All @@ -683,6 +686,8 @@ static int rspi_request_dma(struct rspi_data *rspi,
if (rspi->chan_rx) {
cfg.slave_id = rspi_pd->dma_rx_id;
cfg.direction = DMA_DEV_TO_MEM;
cfg.dst_addr = 0;
cfg.src_addr = res->start + RSPI_SPDR;
ret = dmaengine_slave_config(rspi->chan_rx, &cfg);
if (!ret)
dev_info(&pdev->dev, "Use DMA when rx.\n");
Expand All @@ -698,6 +703,8 @@ static int rspi_request_dma(struct rspi_data *rspi,
if (rspi->chan_tx) {
cfg.slave_id = rspi_pd->dma_tx_id;
cfg.direction = DMA_MEM_TO_DEV;
cfg.dst_addr = res->start + RSPI_SPDR;
cfg.src_addr = 0;
ret = dmaengine_slave_config(rspi->chan_tx, &cfg);
if (!ret)
dev_info(&pdev->dev, "Use DMA when tx\n");
Expand Down
6 changes: 3 additions & 3 deletions drivers/spi/spi-s3c24xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -525,7 +525,7 @@ static int s3c24xx_spi_probe(struct platform_device *pdev)
memset(hw, 0, sizeof(struct s3c24xx_spi));

hw->master = spi_master_get(master);
hw->pdata = pdata = pdev->dev.platform_data;
hw->pdata = pdata = dev_get_platdata(&pdev->dev);
hw->dev = &pdev->dev;

if (pdata == NULL) {
Expand Down Expand Up @@ -690,7 +690,7 @@ static int s3c24xx_spi_remove(struct platform_device *dev)

static int s3c24xx_spi_suspend(struct device *dev)
{
struct s3c24xx_spi *hw = platform_get_drvdata(to_platform_device(dev));
struct s3c24xx_spi *hw = dev_get_drvdata(dev);

if (hw->pdata && hw->pdata->gpio_setup)
hw->pdata->gpio_setup(hw->pdata, 0);
Expand All @@ -701,7 +701,7 @@ static int s3c24xx_spi_suspend(struct device *dev)

static int s3c24xx_spi_resume(struct device *dev)
{
struct s3c24xx_spi *hw = platform_get_drvdata(to_platform_device(dev));
struct s3c24xx_spi *hw = dev_get_drvdata(dev);

s3c24xx_spi_initialsetup(hw);
return 0;
Expand Down
4 changes: 2 additions & 2 deletions drivers/spi/spi-s3c64xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1275,7 +1275,7 @@ static struct s3c64xx_spi_info *s3c64xx_spi_parse_dt(struct device *dev)
#else
static struct s3c64xx_spi_info *s3c64xx_spi_parse_dt(struct device *dev)
{
return dev->platform_data;
return dev_get_platdata(dev);
}
#endif

Expand All @@ -1300,7 +1300,7 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
struct resource *mem_res;
struct resource *res;
struct s3c64xx_spi_driver_data *sdd;
struct s3c64xx_spi_info *sci = pdev->dev.platform_data;
struct s3c64xx_spi_info *sci = dev_get_platdata(&pdev->dev);
struct spi_master *master;
int ret, irq;
char clk_name[16];
Expand Down
Loading

0 comments on commit 68aa4cb

Please sign in to comment.