Merge tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 27 Jul 2016 22:18:53 +0000 (15:18 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 27 Jul 2016 22:18:53 +0000 (15:18 -0700)
Pull HSI updates from Sebastian Reichel:

 - proper runtime pm support for omap-ssi and ssi-protocol

 - misc fixes

* tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi: (24 commits)
  HSI: omap_ssi: drop pm_runtime_irq_safe
  HSI: omap_ssi_port: use rpm autosuspend API
  HSI: omap_ssi: call msg->complete() from process context
  HSI: omap_ssi_port: ensure clocks are kept enabled during transfer
  HSI: omap_ssi_port: replace pm_runtime_put_sync with non-sync variant
  HSI: omap_ssi_port: avoid calling runtime_pm_*_sync inside spinlock
  HSI: omap_ssi_port: avoid pm_runtime_get_sync in ssi_start_dma and ssi_start_pio
  HSI: omap_ssi_port: switch to threaded pio irq
  HSI: omap_ssi_core: remove pm_runtime_get_sync call from tasklet
  HSI: omap_ssi_core: use pm_runtime_put instead of pm_runtime_put_sync
  HSI: omap_ssi_port: prepare start_tx/stop_tx for blocking pm_runtime calls
  HSI: core: switch port event notifier from atomic to blocking
  HSI: omap_ssi_port: replace wkin_cken with atomic bitmap operations
  HSI: omap_ssi: convert cawake irq handler to thread
  HSI: ssi_protocol: fix ssip_xmit invocation
  HSI: ssi_protocol: replace spin_lock with spin_lock_bh
  HSI: ssi_protocol: avoid ssi_waketest call with held spinlock
  HSI: omap_ssi: do not reset module
  HSI: omap_ssi_port: remove useless newline
  hsi: Only descend into hsi directory when CONFIG_HSI is set
  ...

1  2 
Documentation/DocBook/device-drivers.tmpl
drivers/Makefile

@@@ -128,44 -128,16 +128,44 @@@ X!Edrivers/base/interface.
  !Edrivers/base/platform.c
  !Edrivers/base/bus.c
       </sect1>
 -     <sect1><title>Device Drivers DMA Management</title>
 +     <sect1>
 +       <title>Buffer Sharing and Synchronization</title>
 +       <para>
 +         The dma-buf subsystem provides the framework for sharing buffers
 +         for hardware (DMA) access across multiple device drivers and
 +         subsystems, and for synchronizing asynchronous hardware access.
 +       </para>
 +       <para>
 +         This is used, for example, by drm "prime" multi-GPU support, but
 +         is of course not limited to GPU use cases.
 +       </para>
 +       <para>
 +         The three main components of this are: (1) dma-buf, representing
 +         a sg_table and exposed to userspace as a file descriptor to allow
 +         passing between devices, (2) fence, which provides a mechanism
 +         to signal when one device as finished access, and (3) reservation,
 +         which manages the shared or exclusive fence(s) associated with
 +         the buffer.
 +       </para>
 +       <sect2><title>dma-buf</title>
  !Edrivers/dma-buf/dma-buf.c
 +!Iinclude/linux/dma-buf.h
 +       </sect2>
 +       <sect2><title>reservation</title>
 +!Pdrivers/dma-buf/reservation.c Reservation Object Overview
 +!Edrivers/dma-buf/reservation.c
 +!Iinclude/linux/reservation.h
 +       </sect2>
 +       <sect2><title>fence</title>
  !Edrivers/dma-buf/fence.c
 -!Edrivers/dma-buf/seqno-fence.c
  !Iinclude/linux/fence.h
 +!Edrivers/dma-buf/seqno-fence.c
  !Iinclude/linux/seqno-fence.h
 -!Edrivers/dma-buf/reservation.c
 -!Iinclude/linux/reservation.h
  !Edrivers/dma-buf/sync_file.c
  !Iinclude/linux/sync_file.h
 +       </sect2>
 +     </sect1>
 +     <sect1><title>Device Drivers DMA Management</title>
  !Edrivers/base/dma-coherent.c
  !Edrivers/base/dma-mapping.c
       </sect1>
@@@ -247,6 -219,61 +247,6 @@@ X!Isound/sound_firmware.
  -->
    </chapter>
  
 -  <chapter id="mediadev">
 -     <title>Media Devices</title>
 -
 -     <sect1><title>Video2Linux devices</title>
 -!Iinclude/media/tuner.h
 -!Iinclude/media/tuner-types.h
 -!Iinclude/media/tveeprom.h
 -!Iinclude/media/v4l2-async.h
 -!Iinclude/media/v4l2-ctrls.h
 -!Iinclude/media/v4l2-dv-timings.h
 -!Iinclude/media/v4l2-event.h
 -!Iinclude/media/v4l2-flash-led-class.h
 -!Iinclude/media/v4l2-mc.h
 -!Iinclude/media/v4l2-mediabus.h
 -!Iinclude/media/v4l2-mem2mem.h
 -!Iinclude/media/v4l2-of.h
 -!Iinclude/media/v4l2-rect.h
 -!Iinclude/media/v4l2-subdev.h
 -!Iinclude/media/videobuf2-core.h
 -!Iinclude/media/videobuf2-v4l2.h
 -!Iinclude/media/videobuf2-memops.h
 -     </sect1>
 -     <sect1><title>Digital TV (DVB) devices</title>
 -      <sect1><title>Digital TV Common functions</title>
 -!Idrivers/media/dvb-core/dvb_math.h
 -!Idrivers/media/dvb-core/dvb_ringbuffer.h
 -!Idrivers/media/dvb-core/dvbdev.h
 -      </sect1>
 -      <sect1><title>Digital TV Frontend kABI</title>
 -!Pdrivers/media/dvb-core/dvb_frontend.h Digital TV Frontend
 -!Idrivers/media/dvb-core/dvb_frontend.h
 -      </sect1>
 -      <sect1><title>Digital TV Demux kABI</title>
 -!Pdrivers/media/dvb-core/demux.h Digital TV Demux
 -      <sect1><title>Demux Callback API</title>
 -!Pdrivers/media/dvb-core/demux.h Demux Callback
 -      </sect1>
 -!Idrivers/media/dvb-core/demux.h
 -      </sect1>
 -      <sect1><title>Digital TV Conditional Access kABI</title>
 -!Idrivers/media/dvb-core/dvb_ca_en50221.h
 -      </sect1>
 -     </sect1>
 -    <sect1><title>Remote Controller devices</title>
 -!Iinclude/media/rc-core.h
 -!Iinclude/media/lirc_dev.h
 -    </sect1>
 -    <sect1><title>Media Controller devices</title>
 -!Pinclude/media/media-device.h Media Controller
 -!Iinclude/media/media-device.h
 -!Iinclude/media/media-devnode.h
 -!Iinclude/media/media-entity.h
 -    </sect1>
 -
 -  </chapter>
  
    <chapter id="uart16x50">
       <title>16x50 UART Driver</title>
@@@ -484,7 -511,7 +484,7 @@@ X!Ilib/fonts/fonts.
       </para>
  
  !Iinclude/linux/hsi/hsi.h
- !Edrivers/hsi/hsi.c
+ !Edrivers/hsi/hsi_core.c
    </chapter>
  
    <chapter id="pwm">
diff --combined drivers/Makefile
@@@ -12,7 -12,7 +12,7 @@@ obj-$(CONFIG_GENERIC_PHY)     += phy
  
  # GPIO must come after pinctrl as gpios may need to mux pins etc
  obj-$(CONFIG_PINCTRL)         += pinctrl/
 -obj-y                         += gpio/
 +obj-$(CONFIG_GPIOLIB)         += gpio/
  obj-y                         += pwm/
  obj-$(CONFIG_PCI)             += pci/
  obj-$(CONFIG_PARISC)          += parisc/
@@@ -78,7 -78,7 +78,7 @@@ obj-$(CONFIG_TARGET_CORE)     += target
  obj-$(CONFIG_MTD)             += mtd/
  obj-$(CONFIG_SPI)             += spi/
  obj-$(CONFIG_SPMI)            += spmi/
- obj-y                         += hsi/
+ obj-$(CONFIG_HSI)             += hsi/
  obj-y                         += net/
  obj-$(CONFIG_ATM)             += atm/
  obj-$(CONFIG_FUSION)          += message/
@@@ -122,12 -122,13 +122,12 @@@ obj-$(CONFIG_CPU_FREQ)          += cpufreq
  obj-$(CONFIG_CPU_IDLE)                += cpuidle/
  obj-y                         += mmc/
  obj-$(CONFIG_MEMSTICK)                += memstick/
 -obj-y                         += leds/
 +obj-$(CONFIG_NEW_LEDS)                += leds/
  obj-$(CONFIG_INFINIBAND)      += infiniband/
  obj-$(CONFIG_SGI_SN)          += sn/
  obj-y                         += firmware/
  obj-$(CONFIG_CRYPTO)          += crypto/
  obj-$(CONFIG_SUPERH)          += sh/
 -obj-$(CONFIG_ARCH_SHMOBILE)   += sh/
  ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
  obj-y                         += clocksource/
  endif