03 Jul, 2016

1 commit

  • The workqueue "workqueue" serves as a driver message queue.
    It has a single work item(&drv_data->pump_messages) and hence doesn't
    require ordering. Also, it is not being used on a memory reclaim path.
    Hence, the singlethreaded workqueue has been replaced with the use of
    system_wq.

    System workqueues have been able to handle high level of concurrency
    for a long time now and hence it's not required to have a singlethreaded
    workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
    created with create_singlethread_workqueue(), system_wq allows multiple
    work items to overlap executions even on the same CPU; however, a
    per-cpu workqueue doesn't have any CPU locality or global ordering
    guarantee unless the target CPU is explicitly specified and thus the
    increase of local concurrency shouldn't make any difference.

    Work item has been flushed in bfin_spi_destroy_queue() to ensure that there
    are no pending tasks while disconnecting the driver.

    Signed-off-by: Bhaktipriya Shridhar
    Acked-by: Tejun Heo
    Signed-off-by: Mark Brown

    Bhaktipriya Shridhar
     

17 Sep, 2015

1 commit

  • SPI core validates the transfer speed and defaults to spi->max_speed_hz in
    case the transfer speed is not set so code here won't use the
    chip->baud value (which is derived from spi->max_speed_hz).

    Please note driver uses chip->baud at the beginning of message transmission
    by calling the bfin_spi_restore_state() but then programs per transfer
    speed in bfin_spi_pump_transfers(). I'm not familiar with the HW so I don't
    know would it be possible to remove chip->baud completely by either using
    constant value in bfin_spi_restore_state() or by removing the baud register
    write there.

    Signed-off-by: Jarkko Nikula
    Signed-off-by: Mark Brown

    Jarkko Nikula
     

02 Apr, 2015

1 commit

  • cr_width may be not initialized before using by cr, the related warning
    (with defconfig under blackfin by gcc5):

    CC drivers/spi/spi-bfin5xx.o
    drivers/spi/spi-bfin5xx.c: In function 'bfin_spi_pump_transfers':
    drivers/spi/spi-bfin5xx.c:655:5: warning: 'cr_width' may be used uninitialized in this function [-Wmaybe-uninitialized]
    cr |= cr_width;
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Brown

    Chen Gang
     

20 Oct, 2014

1 commit


15 Apr, 2014

1 commit


15 Feb, 2014

2 commits


25 Oct, 2013

1 commit


17 Oct, 2013

2 commits


09 Oct, 2013

1 commit


17 Sep, 2013

1 commit


29 Aug, 2013

1 commit


26 Jun, 2013

1 commit


30 May, 2013

1 commit


13 May, 2013

1 commit

  • The driver core clears the driver data to NULL after device_release
    or on probe failure, since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d
    (device-core: Ensure drvdata = NULL when no driver is bound).
    Thus, it is not needed to manually clear the device driver data to NULL.

    Signed-off-by: Jingoo Han
    Acked-by: Grant Likely
    Signed-off-by: Mark Brown

    Jingoo Han
     

05 Feb, 2013

2 commits

  • Some of the spi driver module remove hooks were annotated with __exit
    and referenced with __exit_p(). Presumably these were supposed to be
    __devinit, __devexit and __devexit_p() since __init/__exit for a
    probe/remove hook has never been correct. They also got missed during
    the big __devinit/__devexit purge since they didn't match the pattern.
    Remove then now to be rid of it.

    v2: purge __init also

    Reported-by: Arnd Bergmann
    [Arnd set a patch cleaning up one, and then I found more]
    Signed-off-by: Grant Likely

    Grant Likely
     
  • The spi core make sure that each transfer structure have the proper
    setting for bits_per_word before calling low level transfer APIs.

    Hence it is no more require to check again in low level driver for
    this field whether this is set correct or not. Removing such code
    from low level driver.

    The txx9 change also removes a test for bits_per_word set to 0, and
    forcing it to 8 in that case. This can also be removed now since
    spi_setup() ensures spi->bits_per_word is not zero.

    if (!spi->bits_per_word)
    spi->bits_per_word = 8;

    Signed-off-by: Laxman Dewangan
    Signed-off-by: Grant Likely

    Laxman Dewangan
     

08 Dec, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Bill Pemberton has done most of the legwork on this series. I've used
    his script to purge the attributes from the drivers/gpio tree.

    Reported-by: Bill Pemberton
    Signed-off-by: Grant Likely

    Grant Likely
     

28 Apr, 2012

3 commits


24 Oct, 2011

1 commit

  • Since commit [e58aa3d2: genirq: Run irq handlers with interrupts disabled],
    We run all interrupt handlers with interrupts disabled
    and we even check and yell when an interrupt handler
    returns with interrupts enabled (see commit [b738a50a:
    genirq: Warn when handler enables interrupts]).

    So now this flag is a NOOP and can be removed.

    Signed-off-by: Yong Zhang
    Signed-off-by: Grant Likely

    Yong Zhang
     

17 Jun, 2011

4 commits


06 Jun, 2011

1 commit

  • Sort the SPI makefile and enforce the naming convention spi_*.c for
    spi drivers.

    This change also rolls the contents of atmel_spi.h into the .c file
    since there is only one user of that particular include file.

    v2: - Use 'spi-' prefix instead of 'spi_' to match what seems to be
    be the predominant pattern for subsystem prefixes.
    - Clean up filenames in Kconfig and header comment blocks

    Signed-off-by: Grant Likely
    Acked-by: Wolfram Sang
    Acked-by: Linus Walleij

    Grant Likely