linux/drivers/staging/greybus
Eli Sennesh 8c2522d87a greybus: update UniPro Set Interface Power Mode operation to match spec
Bring the gb_svc_intf_set_power_mode() up-to-date with the current Greybus
specification.  This largely involves adding more members to the structure
sent across the wire.  Also change the camera code to use the new
operation properly, with default values passed for the new necessary
arguments.  The correctness of these default values is confirmed via testing
and by asking Rob Johnson.

We must make sure to zero the request structure sent across the wire, lest
bite us most cruelly, and we fix by changing the Set Power Mode
Response structure to use a __u8 rather than a __le16.

Testing Done: Took a picture with a camera module, received error code
when passing deliberately incorrect values for new parameters, got proper
-EIO and Greybus result code printed when operation stopped halfway
through.  Could induce error by initializing request struct with random
nonsense, and can stop it by initializing request struct with zeroes.

Associated Firmware Changes: 1669-1671 on Android N Gerrit for SW-2945

Signed-off-by: Eli Sennesh <esennesh@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-06-09 18:14:00 -07:00
..
Documentation greybus: Documentation/sysfs: gbphy0 is an invalid name 2016-05-26 22:33:27 -07:00
scripts greybus: checkpatch.pl: Mark --no-tree as default option 2016-04-02 19:44:30 -07:00
tools greybus: Fix loopback app after rename to gpphy 2016-05-26 22:23:25 -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: timesync: Add timesync core driver 2016-06-06 20:37:47 -07:00
arche-platform.c greybus: timesync: Add timesync core driver 2016-06-06 20:37:47 -07:00
audio_apbridgea.c greybus: audio_apbridgea: fix two return values 2016-05-20 16:36:43 -07: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: Ratelimit err messages 2016-06-08 09:29:02 -07:00
audio_codec.h greybus: audio: Remove redundant lock protection & is_connected field 2016-05-04 11:29:06 -07: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: Report DISCONNECT event after resource cleanup. 2016-06-06 18:41:44 -07:00
audio_topology.c greybus: audio: Report warning in case module is already removed 2016-06-06 18:41:44 -07:00
bootrom.c greybus: bootrom: Compile as a separate module 2016-06-09 17:28:02 -07:00
bundle.c greybus: tracing: define bundle traces 2016-06-03 17:03:23 -07:00
bundle.h greybus: define BUNDLE_ID_NONE 2016-06-03 17:03:23 -07:00
camera.c greybus: update UniPro Set Interface Power Mode operation to match spec 2016-06-09 18:14:00 -07:00
connection.c greybus: connection: Avoid unnecessary line breaks 2016-06-09 17:28:02 -07:00
connection.h greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
control.c greybus: control: Mode-switch is a 'core' operation 2016-06-02 11:15:49 -07:00
control.h greybus: interface: implement generic mode-switch functionality 2016-05-27 12:24:17 -07:00
core.c greybus: hd: Export host device tracepoint from hd.c 2016-06-09 17:28:02 -07:00
debugfs.c greybus: core: add device prefix to error messages 2016-02-11 21:44:17 -08:00
devices
es2.c greybus: tracing: add timing traces 2016-06-03 17:03:23 -07:00
firmware.h greybus: fw-management: Add firmware-management protocol driver 2016-05-15 00:23:52 +02:00
fw-core.c greybus: fw-core: destroy connections on error 2016-05-20 16:36:43 -07:00
fw-download.c greybus: fw-download: Replace timer with delayed-work 2016-05-09 08:48:10 +02:00
fw-management.c greybus: Add comment about the mode_switch_started flag 2016-06-02 11:16:22 -07:00
gb-camera.h greybus: camera-gb: Extend gb camera module structure 2016-06-03 08:57:48 -07:00
gbphy.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
gbphy.h greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
gpio.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07: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: interface: Extract and store Interface feature byte 2016-05-15 11:39:57 -07:00
greybus_protocols.h greybus: update UniPro Set Interface Power Mode operation to match spec 2016-06-09 18:14:00 -07:00
greybus_trace.h greybus: tracing: drop "greybus" prefix 2016-06-09 12:12:43 -07:00
greybus.h greybus: Remove legacy suspend/resume callbacks 2016-06-09 17:28:02 -07:00
hd.c greybus: hd: Export host device tracepoint from hd.c 2016-06-09 17:28:02 -07:00
hd.h greybus: connection: add flush host-device callback 2016-05-27 12:24:17 -07:00
hid.c greybus: convert drivers to use connection->private set/get 2016-03-22 16:47:28 -04:00
i2c.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
interface.c greybus: timesync: Bind TimeSync into Greybus 2016-06-06 20:50:08 -07:00
interface.h greybus: timesync: Add timesync core driver 2016-06-06 20:37:47 -07:00
kernel_ver.h greybus: pwm: Fix compilation with v4.3 kernel 2016-06-09 12:28:48 -07:00
LICENSE
light.c greybus: fix pointless null check 2016-05-27 11:28:16 -07:00
loopback.c greybus: gpbridge: rename 'gpbridge' to 'gbphy' everywhere 2016-05-19 10:09:13 -07:00
Makefile greybus: bootrom: Compile as a separate module 2016-06-09 17:28:02 -07:00
manifest.c greybus: interface: Extract and store Interface feature byte 2016-05-15 11:39:57 -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: fix tracepoint-related whitespace issues 2016-05-27 12:26:31 -07:00
module.h greybus: core: add module abstraction 2016-04-25 11:08:30 -07:00
operation.c greybus: fix tracepoint-related whitespace issues 2016-05-27 12:26:31 -07:00
operation.h greybus: operation: add helper for creating core operations 2016-05-27 12:21:16 -07:00
power_supply.c greybus: use PTR_ERR_OR_ZERO() 2016-05-27 11:28:16 -07:00
pwm.c greybus: kernel_ver.h: provide pwm_is_enabled() 2016-06-08 09:29:02 -07:00
raw.c greybus: raw: use hexadecimal notation for request types 2016-03-03 10:02:48 -08:00
README
sdio.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
spi.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
spilib.c greybus: spi: add inprogress bit to xfer_flags 2016-05-16 20:02:58 -07:00
spilib.h greybus: spi: Restructure spi.c to share it with other bundle drivers 2016-05-14 23:18:32 +02:00
svc_watchdog.c greybus: svc watchdog: Disable watchdog upon entering suspend 2016-04-15 14:42:53 -07:00
svc.c greybus: update UniPro Set Interface Power Mode operation to match spec 2016-06-09 18:14:00 -07:00
svc.h greybus: update UniPro Set Interface Power Mode operation to match spec 2016-06-09 18:14:00 -07:00
timesync_platform.c greybus: timesync: Add timesync core driver 2016-06-06 20:37:47 -07:00
timesync.c greybus: timesync: Add debugfs entry to display frame-ping in ktime 2016-06-06 20:50:08 -07:00
timesync.h greybus: timesync: Add gb_timesync_frame_time_to_timespec() 2016-06-06 20:50:08 -07:00
uart.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
usb.c greybus: gbphy: Remove protocol specific version handling 2016-05-31 22:02:58 -07:00
vibrator.c greybus: Remove unused VERSION specific macros 2016-05-31 22:02:58 -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>