~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/spi/spi_bitbang.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
259
259
        struct spi_bitbang      *bitbang =
260
260
                container_of(work, struct spi_bitbang, work);
261
261
        unsigned long           flags;
262
 
        int                     (*setup_transfer)(struct spi_device *,
263
 
                                        struct spi_transfer *);
264
 
 
265
 
        setup_transfer = bitbang->setup_transfer;
266
262
 
267
263
        spin_lock_irqsave(&bitbang->lock, flags);
268
264
        bitbang->busy = 1;
300
296
 
301
297
                        /* init (-1) or override (1) transfer params */
302
298
                        if (do_setup != 0) {
303
 
                                if (!setup_transfer) {
304
 
                                        status = -ENOPROTOOPT;
305
 
                                        break;
306
 
                                }
307
 
                                status = setup_transfer(spi, t);
 
299
                                status = bitbang->setup_transfer(spi, t);
308
300
                                if (status < 0)
309
301
                                        break;
310
302
                                if (do_setup == -1)
465
457
                }
466
458
        } else if (!bitbang->master->setup)
467
459
                return -EINVAL;
 
460
        if (bitbang->master->transfer == spi_bitbang_transfer &&
 
461
                        !bitbang->setup_transfer)
 
462
                return -EINVAL;
468
463
 
469
464
        /* this task is the only thing to touch the SPI bits */
470
465
        bitbang->busy = 0;