spi: Updates for v4.8

Quite a lot of cleanup and maintainence work going on this release in
various drivers, and also a fix for a nasty locking issue in the core:

 - A fix for locking issues when external drivers explicitly locked the
   bus with spi_bus_lock() - we were using the same lock to both control
   access to the physical bus in multi-threaded I/O operations and
   exclude multiple callers.  Confusion between these two caused us to
   have scenarios where we were dropping locks.  These are fixed by
   splitting into two separate locks like should have been done
   originally, making everything much clearer and correct.
 - Support for DMA in spi_flash_read().
 - Support for instantiating spidev on ACPI systems, including some test
   devices used in Windows validation.
 - Use of the core DMA mapping functionality in the McSPI driver.
 - Start of support for ThunderX SPI controllers, involving a very big
   set of changes to the Cavium driver.
 - Support for Braswell, Exynos 5433, Kaby Lake, Merrifield, RK3036,
   RK3228, RK3368 controllers.
Merge remote-tracking branch 'spi/fix/locking' into spi-next