Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29b88e23 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'driver-core-3.17-rc1' of...

Merge tag 'driver-core-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

Pull driver core updates from Greg KH:
 "Here's the big driver-core pull request for 3.17-rc1.

  Largest thing in here is the dma-buf rework and fence code, that
  touched many different subsystems so it was agreed it should go
  through this tree to handle merge issues.  There's also some firmware
  loading updates, as well as tests added, and a few other tiny changes,
  the changelog has the details.

  All have been in linux-next for a long time"

* tag 'driver-core-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (32 commits)
  ARM: imx: Remove references to platform_bus in mxc code
  firmware loader: Fix _request_firmware_load() return val for fw load abort
  platform: Remove most references to platform_bus device
  test: add firmware_class loader test
  doc: fix minor typos in firmware_class README
  staging: android: Cleanup style issues
  Documentation: devres: Sort managed interfaces
  Documentation: devres: Add devm_kmalloc() et al
  fs: debugfs: remove trailing whitespace
  kernfs: kernel-doc warning fix
  debugfs: Fix corrupted loop in debugfs_remove_recursive
  stable_kernel_rules: Add pointer to netdev-FAQ for network patches
  driver core: platform: add device binding path 'driver_override'
  driver core/platform: remove unused implicit padding in platform_object
  firmware loader: inform direct failure when udev loader is disabled
  firmware: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN
  firmware: read firmware size using i_size_read()
  firmware loader: allow disabling of udev as firmware loader
  reservation: add suppport for read-only access using rcu
  reservation: update api and add some helpers
  ...

Conflicts:
	drivers/base/platform.c
parents 2521129a 4e3a25b0
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
What:		/sys/bus/platform/devices/.../driver_override
Date:		April 2014
Contact:	Kim Phillips <kim.phillips@freescale.com>
Description:
		This file allows the driver for a device to be specified which
		will override standard OF, ACPI, ID table, and name matching.
		When specified, only a driver with a name matching the value
		written to driver_override will have an opportunity to bind
		to the device.  The override is specified by writing a string
		to the driver_override file (echo vfio-platform > \
		driver_override) and may be cleared with an empty string
		(echo > driver_override).  This returns the device to standard
		matching rules binding.  Writing to driver_override does not
		automatically unbind the device from its current driver or make
		any attempt to automatically load the specified driver.  If no
		driver with a matching name is currently loaded in the kernel,
		the device will not bind to any driver.  This also allows
		devices to opt-out of driver binding using a driver_override
		name such as "none".  Only a single driver may be specified in
		the override, there is no support for parsing delimiters.
+6 −2
Original line number Diff line number Diff line
@@ -128,8 +128,12 @@ X!Edrivers/base/interface.c
!Edrivers/base/bus.c
     </sect1>
     <sect1><title>Device Drivers DMA Management</title>
!Edrivers/base/dma-buf.c
!Edrivers/base/reservation.c
!Edrivers/dma-buf/dma-buf.c
!Edrivers/dma-buf/fence.c
!Edrivers/dma-buf/seqno-fence.c
!Iinclude/linux/fence.h
!Iinclude/linux/seqno-fence.h
!Edrivers/dma-buf/reservation.c
!Iinclude/linux/reservation.h
!Edrivers/base/dma-coherent.c
!Edrivers/base/dma-mapping.c
+57 −55
Original line number Diff line number Diff line
@@ -233,66 +233,78 @@ certainly invest a bit more effort into libata core layer).
  6. List of managed interfaces
  -----------------------------

MEM
  devm_kzalloc()
  devm_kfree()
  devm_kmemdup()
  devm_get_free_pages()
  devm_free_pages()
CLOCK
  devm_clk_get()
  devm_clk_put()

DMA
  dmam_alloc_coherent()
  dmam_alloc_noncoherent()
  dmam_declare_coherent_memory()
  dmam_free_coherent()
  dmam_free_noncoherent()
  dmam_pool_create()
  dmam_pool_destroy()

GPIO
  devm_gpiod_get()
  devm_gpiod_get_index()
  devm_gpiod_get_index_optional()
  devm_gpiod_get_optional()
  devm_gpiod_put()

IIO
  devm_iio_device_alloc()
  devm_iio_device_free()
  devm_iio_trigger_alloc()
  devm_iio_trigger_free()
  devm_iio_device_register()
  devm_iio_device_unregister()
  devm_iio_trigger_alloc()
  devm_iio_trigger_free()

IO region
  devm_request_region()
  devm_request_mem_region()
  devm_release_region()
  devm_release_mem_region()

IRQ
  devm_request_irq()
  devm_free_irq()

DMA
  dmam_alloc_coherent()
  dmam_free_coherent()
  dmam_alloc_noncoherent()
  dmam_free_noncoherent()
  dmam_declare_coherent_memory()
  dmam_pool_create()
  dmam_pool_destroy()

PCI
  pcim_enable_device()	: after success, all PCI ops become managed
  pcim_pin_device()	: keep PCI device enabled after release
  devm_release_region()
  devm_request_mem_region()
  devm_request_region()

IOMAP
  devm_ioport_map()
  devm_ioport_unmap()
  devm_ioremap()
  devm_ioremap_nocache()
  devm_iounmap()
  devm_ioremap_resource() : checks resource, requests memory region, ioremaps
  devm_request_and_ioremap() : obsoleted by devm_ioremap_resource()
  devm_iounmap()
  pcim_iomap()
  pcim_iounmap()
  pcim_iomap_table()	: array of mapped addresses indexed by BAR
  pcim_iomap_regions()	: do request_region() and iomap() on multiple BARs
  pcim_iomap_table()	: array of mapped addresses indexed by BAR
  pcim_iounmap()

REGULATOR
  devm_regulator_get()
  devm_regulator_put()
  devm_regulator_bulk_get()
  devm_regulator_register()
IRQ
  devm_free_irq()
  devm_request_irq()

CLOCK
  devm_clk_get()
  devm_clk_put()
MDIO
  devm_mdiobus_alloc()
  devm_mdiobus_alloc_size()
  devm_mdiobus_free()

MEM
  devm_free_pages()
  devm_get_free_pages()
  devm_kcalloc()
  devm_kfree()
  devm_kmalloc()
  devm_kmalloc_array()
  devm_kmemdup()
  devm_kzalloc()

PCI
  pcim_enable_device()	: after success, all PCI ops become managed
  pcim_pin_device()	: keep PCI device enabled after release

PHY
  devm_usb_get_phy()
  devm_usb_put_phy()

PINCTRL
  devm_pinctrl_get()
@@ -302,24 +314,14 @@ PWM
  devm_pwm_get()
  devm_pwm_put()

PHY
  devm_usb_get_phy()
  devm_usb_put_phy()
REGULATOR
  devm_regulator_bulk_get()
  devm_regulator_get()
  devm_regulator_put()
  devm_regulator_register()

SLAVE DMA ENGINE
  devm_acpi_dma_controller_register()

SPI
  devm_spi_register_master()

GPIO
  devm_gpiod_get()
  devm_gpiod_get_index()
  devm_gpiod_get_optional()
  devm_gpiod_get_index_optional()
  devm_gpiod_put()

MDIO
  devm_mdiobus_alloc()
  devm_mdiobus_alloc_size()
  devm_mdiobus_free()
+3 −3
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@

	 if(request_firmware(&fw_entry, $FIRMWARE, device) == 0)
	 	copy_fw_to_device(fw_entry->data, fw_entry->size);
	 release(fw_entry);
	 release_firmware(fw_entry);

 Sample/simple hotplug script:
 ============================
@@ -74,7 +74,7 @@
	HOTPLUG_FW_DIR=/usr/lib/hotplug/firmware/

	echo 1 > /sys/$DEVPATH/loading
	cat $HOTPLUG_FW_DIR/$FIRMWARE > /sysfs/$DEVPATH/data
	cat $HOTPLUG_FW_DIR/$FIRMWARE > /sys/$DEVPATH/data
	echo 0 > /sys/$DEVPATH/loading

 Random notes:
@@ -123,6 +123,6 @@
 --------------------
 After firmware cache mechanism is introduced during system sleep,
 request_firmware can be called safely inside device's suspend and
 resume callback, and callers need't cache the firmware by
 resume callback, and callers needn't cache the firmware by
 themselves any more for dealing with firmware loss during system
 resume.
+3 −0
Original line number Diff line number Diff line
@@ -29,6 +29,9 @@ Rules on what kind of patches are accepted, and which ones are not, into the

Procedure for submitting patches to the -stable tree:

 - If the patch covers files in net/ or drivers/net please follow netdev stable
   submission guidelines as described in
   Documentation/networking/netdev-FAQ.txt
 - Send the patch, after verifying that it follows the above rules, to
   stable@vger.kernel.org.  You must note the upstream commit ID in the
   changelog of your submission, as well as the kernel version you wish
Loading