android_kernel_xiaomi_sm8350/drivers/staging/greybus
Viresh Kumar c57fbb404a greybus: firmware: Add runtime PM support
This patch implements runtime PM support for firmware management bundle.
This guarantees that the bundle will be active, while the AP or the
Module is trying to exchange any operations over any of the CPorts.

- Firmware Management CPort:

  Runtime PM get/put calls are placed around the ioctl calls, which are
  all implemented as blocking ioctls.

- Component Authentication CPort:

  Runtime PM get/put calls are placed around the ioctl calls, which are
  all implemented as blocking ioctls.

- SPI:

  Uses the interface provided by spilib.c and runtime PM get/put are
  called around connection usage.

- firmware-download:

  This is the most tricky one. All operations on this CPort are
  initiated from the Module and not from the AP. And the AP needs to do
  runtime_pm_get() before any request is received over this CPort.

  The module doesn't send any request over this connection, unless the
  AP has requested the module over firmware management CPort to download
  a firmware package over firmware download CPort.

  And so the runtime PM get/put calls around the ioctls in
  fw-management.c are sufficient to handle the firmware management CPort
  as well.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-07-26 15:29:00 -07:00
..
Documentation greybus: firmware: Improve test application 2016-07-21 19:00:26 -07:00
scripts greybus: checkpatch.pl: Mark --no-tree as default option 2016-04-02 19:44:30 -07:00
tools greybus: loopback_test: Add -f argument to cancel all tests 2016-07-20 11:23:03 -07:00
.gitignore greybus: tools: Add tools directory to greybus repo and add loopback 2015-12-17 18:17:07 -08:00
arche_platform.h greybus: timesync: Add timesync core driver 2016-06-06 20:37:47 -07:00
arche-apb-ctrl.c greybus: hd: arche-platform: implement greybus shutdown 2016-07-16 07:58:52 +09:00
arche-platform.c greybus: arche-platform: Add support for init-off feature 2016-07-19 18:31:00 -07:00
audio_apbridgea.c greybus: audio: add runtime pm support 2016-07-14 16:53:55 -05:00
audio_apbridgea.h greybus: audio: Split start and stop APBridgeA requests 2016-03-01 22:44:49 -08:00
audio_codec.c greybus: audio: Avoid using ARA keyword 2016-07-22 10:26:01 -07:00
audio_codec.h greybus: audio: topology: Add helper API to map controlid with widget name 2016-07-05 21:17:51 -05:00
audio_gb.c greybus: audio: Fix sparse warnings 2016-02-02 21:26:32 -08:00
audio_manager_module.c greybus: audio_manager: Split device type into i/p & o/p devices 2016-04-05 09:39:22 -04:00
audio_manager_private.h greybus: audio: Add Audio Manager 2016-01-13 16:12:56 -08:00
audio_manager_sysfs.c greybus: audio_manager: Split device type into i/p & o/p devices 2016-04-05 09:39:22 -04:00
audio_manager.c greybus: audio: gb_manager: Use valid argument while removing ida allocated id. 2016-05-18 16:33:31 -07:00
audio_manager.h greybus: audio_manager: Split device type into i/p & o/p devices 2016-04-05 09:39:22 -04:00
audio_module.c greybus: audio: add runtime pm support 2016-07-14 16:53:55 -05:00
audio_topology.c greybus: audio_topology: Fix compile warning 2016-07-17 10:12:59 +09:00
authentication.c greybus: firmware: Add runtime PM support 2016-07-26 15:29:00 -07:00
bootrom.c greybus: bootrom: Rename download_firmware() as find_firmware() 2016-07-22 15:25:18 -07:00
bundle.c greybus: bundle: add runtime pm support 2016-07-14 16:53:55 -05:00
bundle.h greybus: bundle: add runtime pm support 2016-07-14 16:53:55 -05:00
camera.c greybus: camera: Configure APB-A with new params 2016-07-17 10:31:21 +09:00
connection.c greybus: connection: drop the svc quiescing operation 2016-07-19 18:27:35 -07:00
connection.h greybus: connection: add support for high-priority connections 2016-06-24 16:22:30 -07:00
control.c greybus: control: Print bundle-id in print messages 2016-07-22 13:57:11 -07:00
control.h greybus: control: suppress bundle_activate() for bootrom 2016-07-21 16:36:48 -07:00
core.c greybus: pm: add error handling to bundle activation 2016-07-21 18:54:11 -07:00
debugfs.c greybus: core: add device prefix to error messages 2016-02-11 21:44:17 -08:00
devices greybus: devices: endpoint description of device 2014-09-13 17:31:27 -07:00
es2.c greybus: greybus_protocols.h/es2: Ensure __le32 is used not u32 2016-07-18 09:22:45 -07:00
firmware.h greybus: firmware.h: rename TFTF firmware filenames 2016-07-21 16:33:25 -07:00
fw-core.c greybus: firmware: Add runtime PM support 2016-07-26 15:29:00 -07:00
fw-download.c greybus: move all firmware prefix strings to one place 2016-07-20 10:29:07 -07:00
fw-management.c greybus: firmware: Add runtime PM support 2016-07-26 15:29:00 -07:00
gb-camera.h greybus: camera: Update CSI config parameters 2016-07-17 10:31:21 +09:00
gbphy.c greybus: gbphy: add gbphy runtime pm support 2016-07-14 16:53:55 -05:00
gbphy.h greybus: gbphy: add gbphy runtime pm support 2016-07-14 16:53:55 -05:00
gpio.c greybus: gpio: Add runtime_pm suppourt 2016-07-14 16:53:55 -05:00
greybus_authentication.h greybus: Add Component Authentication Protocol support 2016-07-06 17:51:32 -05:00
greybus_firmware.h greybus: fw-management: Update header's license 2016-05-16 19:59:50 -07:00
greybus_id.h greybus: Use BIT(2) for GREYBUS_ID_MATCH_CLASS 2016-06-09 17:28:02 -07:00
greybus_manifest.h greybus: Add Component Authentication Protocol support 2016-07-06 17:51:32 -05:00
greybus_protocols.h greybus: connection: drop the svc quiescing operation 2016-07-19 18:27:35 -07:00
greybus_trace.h greybus: tracing: drop "greybus" prefix 2016-06-09 12:12:43 -07:00
greybus.h greybus: interface: add runtime pm support 2016-07-14 16:53:55 -05:00
hd.c greybus: hd: arche-platform: implement greybus shutdown 2016-07-16 07:58:52 +09:00
hd.h greybus: hd: arche-platform: implement greybus shutdown 2016-07-16 07:58:52 +09:00
hid.c greybus: HID: Add runtime pm support 2016-07-22 15:25:18 -07:00
i2c.c greybus: i2c: add runtime pm support 2016-07-14 16:53:55 -05:00
interface.c greybus: control: suppress bundle_activate() for bootrom 2016-07-21 16:36:48 -07:00
interface.h greybus: control: suppress bundle_activate() for bootrom 2016-07-21 16:36:48 -07:00
kernel_ver.h greybus: power_supply: convert greybus properties to power supply properties 2016-07-16 07:55:41 +09:00
LICENSE greybus: Initial commit 2014-08-11 15:29:23 +08:00
light.c greybus: light: Initialize mutex before using it 2016-06-29 16:37:17 -07:00
log.c greybus: add support for the log protocol 2016-06-24 15:46:52 -07:00
loopback.c greybus: loopback: add runtime pm support 2016-07-14 16:53:55 -05:00
Makefile greybus: Add Component Authentication Protocol support 2016-07-06 17:51:32 -05:00
manifest.c greybus: manifest: Disallow reuse of control cport 2016-06-15 23:57:20 -07:00
manifest.h greybus: manifest: Use interface descriptor instead of module descriptor to get information 2015-04-06 12:05:58 +02:00
module.c greybus: interface: prevent reactivation during removal 2016-07-20 10:16:54 -07:00
module.h greybus: core: add module abstraction 2016-04-25 11:08:30 -07:00
operation.c greybus: operation: clean up request handler 2016-07-26 14:53:19 -07:00
operation.h greybus: operation: add helper for creating core operations 2016-05-27 12:21:16 -07:00
power_supply.c greybus: power_supply: convert greybus properties to power supply properties 2016-07-16 07:55:41 +09:00
pwm.c greybus: pwm: Add runtime_pm support 2016-07-14 16:53:55 -05:00
raw.c greybus: raw: use hexadecimal notation for request types 2016-03-03 10:02:48 -08:00
README greybus: update README with info on how to build and contact me. 2014-08-11 15:44:51 +08:00
sdio.c greybus: sdio: add switch voltage operation 2016-07-19 16:38:24 -07:00
spi.c greybus: spilib: make spilib independent of gbphy 2016-07-21 19:03:05 -07:00
spilib.c greybus: spilib: make spilib independent of gbphy 2016-07-21 19:03:05 -07:00
spilib.h greybus: spilib: make spilib independent of gbphy 2016-07-21 19:03:05 -07:00
svc_watchdog.c greybus: svc watchdog: Disable watchdog upon entering suspend 2016-04-15 14:42:53 -07:00
svc.c greybus: connection: drop the svc quiescing operation 2016-07-19 18:27:35 -07:00
svc.h greybus: connection: drop the svc quiescing operation 2016-07-19 18:27:35 -07:00
timesync_platform.c greybus: timesync: Add timesync core driver 2016-06-06 20:37:47 -07:00
timesync.c greybus: timesync: do not print frametime by default 2016-07-21 18:58:35 -07:00
timesync.h greybus: timesync: Add gb_timesync_frame_time_to_timespec() 2016-06-06 20:50:08 -07:00
uart.c greybus: uart: Add runtime pm support 2016-07-14 16:53:55 -05:00
usb.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
vibrator.c greybus: vibrator: integrate runtime pm 2016-07-22 14:06:39 -07:00

Greybus kernel code

To build against the running kernel (odds are you don't want this):
	make

To build against a specific kernel source tree (odds are you want this):
	KERNELDIR=/home/some/random/place make

Any questions / concerns about this code base, please email:
	Greg Kroah-Hartman <greg@kroah.com>