[GIT PULL] Greybus driver subsystem for 4.9-rc1

From: Greg KH
Date: Wed Sep 14 2016 - 06:09:58 EST

"'tis but a scratch" - The Black Knight

Hi all,

As many of you know, I, and lots of other developers, have been working
on a new application level protocol for the Unipro hardware transport
called "Greybus". It has shown up in numerous demos from Google for the
Ara Phone platform, and an older version of the codebase is currently
shipping in a phone from Motorola any-day-now. There is a
semi-up-to-date version of the protocol specification available at:
A newer version should be available soon, matching the code
implementation here, as soon as I work through a few final details with
some lawyers on the wording of the license.

Many other software packages to help out with greybus devices are on
that github project page (manfest generator, emulator, firmware
examples, etc.), if people are interested.

Given that it's never a good idea to keep subsystems out of the mainline
kernel, I've put together this pull request that adds the greybus driver
layer to drivers/greybus/. Because this was 2 1/2 years of work, with
many many developers contributing, I didn't want to flatten all of their
effort into a few small patches, as that wouldn't be very fair. So I've
built a git tree with all of the changes going back to the first commit,
and merged it into the kernel tree, just like btrfs was merged into the

The protocol design, and implementation, was a group effort, and it would
not have turned out well at all without the contributions of all of
these talented developers.

I'll send out a follow-up set of "simple" patches that just add the
files to the kernel tree, to give people an idea of the code involved.
Overall, it's a tiny stand-alone driver subsystem, only 37k lines, that
implements a protocol which allows for "generic" cameras, audio devices,
and other class type devices, as well as a bridged "physical" layer
protocol to talk to serial, spi, uart, pwm, gpio, i2c, and even USB host
controllers. Included here is a USB bridge host controller driver that
interacts with a USB device that converts USB data to Unipro data,
allowing any system to talk to a Unipro platform (no special SoC
interface required.)

Unless people point out some major problems with this, I'd like to get
it merged into 4.9-rc1.

The shortlog and diffstat can be seen below.

If anyone has any questions about this, please let us know.


greg k-h


The following changes since commit c6935931c1894ff857616ff8549b61236a19148f:

Linux 4.8-rc5 (2016-09-04 14:31:46 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/ greybus

for you to fetch changes up to f86bfc90a401681838866b5f6826d86cc4c7010c:

greybus: remove CONFIG_PM_RUNTIME from kernel_ver.h (2016-09-09 13:27:19 +0200)

Akash Choudhari (1):
greybus: Revert "Added a sysfs entry to power down the SVC"

Alex Elder (345):
greybus: uart-gb: improve minor device number error checking
greybus: uart-gb: a few minor bug fixes
greybus: switch to the term "manifest"
greybus: define struct greybus_manifest
greybus: call put_device() on error
greybus: interpret descriptor type properly
greybus: validate descriptor sizes
greybus: fix manifest parsing size bug
greybus: simple fixes
greybus: rename struct greybus_device
greybus: quick fix for sysfs serial number
greybus: get rid of a weird idiom
greybus: embed workqueue structure in struct gbuf
greybus: encapsulate URB status checking
greybus: some more renames
greybus: update a few header file comments
greybus: fix document version number
greybus: fix the guard in "greybus_manifest.h"
greybus: descriptor type is 1 byte
greybus: fix version check
greybus: reorder greybus_svc_in() arguments
greybus: kill struct gmod_cport
greybus: clarify device vs module
greybus: descriptor type updates
greybus: isolate greybus module code
greybus: define greybus interface abstraction
greybus: define greybus function abstraction
greybus: introduce a connection abstraction
greybus: introduce an operation abstraction
greybus: start improving manifest parsing
greybus: manifest interface descriptor parsing
greybus: manifest cport descriptor parsing
greybus: kill off old manifest code
greybus: fix connection header declarations
greybus: October 1 updates
greybus: create host device cport id map
greybus: allocate connection host cport id
greybus: get rid of functions now...
greybus: record connection protocol
greybus: fix some hasty bugs
greybus: fix greybus_class_type symbol names
greybus: use ida for cport id allocation
greybus: fix module setup
greybus: gbuf: have caller set actual_length
greybus: specify type when creating an operation
greybus: add a connection->private field
greybus: define gb_connection_err()
greybus: fix two misnamed functions
greybus: bury some dead code
greybus: add bg_hd_connection_find()
greybus: look up connection for recevied messages
greybus: allocate gbufs using the connection
greybus: use alloc_gbuf_data() for both directions
greybus: kill __alloc_gbuf()
greybus: get rid of gbuf->hdpriv
greybus: don't assume subdevs are valid
greybus: unlock gbuf mutex on free
greybus: unlock hd mutex on free
greybus: don't restrict input buffer size
greybus: zero all data buffers
greybus: drop hd arg from submit_gbuf method
greybus: stop init_subdevs stuff
greybus: add response buffer to an operation
greybus: add gb_operation_find()
greybus: let operation layer examine incoming data
greybus: move receive handling to operation layer
greybus: add device initialization
greybus: kill off gbuf work queue
greybus: kill old cport handlers
greybus: add i2c driver
greybus: initial operations-based GPIO driver
greybus: add write retry support for i2c
greybus: update gbuf status for completion handlers
greybus: report gbuf errors
greybus: properly drop device reference
greybus: create a slab cache for operations
greybus: drop gb_* device fields from gb_module
greybus: remove cports and strings from gb_module
greybus: move ap_disconnect()
greybus: leverage ap_disconnect() in ap_probe()
greybus: fix op_cycle logic
greybus: stash power supply pointer in connection
greybus: improve module cleanup code
greybus: time out operation requests
greybus: define operation_cancel()
greybus: define connection state
greybus: make svc_set_route_send() public
greybus: only initialize interfaces when up
greybus: set route before sending packets
greybus: update AP id service message
greybus: fix repeated input errors
greybus: gpio: kill gpio_controller->gpio
greybus: embed the i2c adapter struct
greybus: begin abstracting connection operations
greybus: drop the cport id on error
greybus: use protocol_id for numeric values
greybus: introduce protocol abstraction
greybus: fix a bug in gb_operation_gbuf_complete()
greybus: drop a redundant assignment
greybus: make _gb_protocol_find() static
greybus: control printing message
greybus: improve some error messages
greybus: identify protocol by id *and* version
greybus: count rather than list protocol users
greybus: order the protocols list
greybus: register preallocated protocols
greybus: move methods into protocol
greybus: add an incoming request receive method
greybus: kill test_sink.c
greybus: kill old cport handler code
greybus: get rid of gbuf->actual_length
greybus: record gbuf->operation
greybus: remove gbuf->context
greybus: get rid of greybus_gbuf_finished()
greybus: move gb_operation_gbuf_complete()
greybus: kill gbuf->complete
greybus: don't assume PAGE_SIZE for URB size
greybus: fix request timeout bug
greybus: move timeout out of gb_operation_insert()
greybus: simplify pending operations tracking
greybus: op_cycle doesn't need to be atomic
greybus: pass operation type on request receive
greybus: move operation timeout teardown
greybus: delete some lines in "greybus.h"
greybus: kill gb_operation_gbuf_complete()
greybus: clean up gb_connection_operation_recv()
greybus: reference count operations
greybus: record a gbuf's destination CPort id
greybus: use gbuf's destination cport id
greybus: record the host device in a gbuf
greybus: use a simple list of hd connections
greybus: get rid of cport_id_map_lock
greybus: kill greybus_{get,put}_gbuf()
greybus: kill gbuf->kref
greybus: move the definition of struct gbuf
greybus: define struct gb_message
greybus: start using struct gb_message
greybus: move gbuf initialization to caller
greybus: use null gbuf->transfer_buffer
greybus: embed gbufs into operation message structure
greybus: kill the gbuf slab cache
greybus: kill off the last of gbuf.c
greybus: fix an allocation flag bug
greybus: prepend cport byte for all gbufs
greybus: improve data buffer alignment
greybus: fill in destination data at send time
greybus: allocate space without gbufs
greybus: free space without gbufs
greybus: cancel buffers via magic cookie
greybus: stash hd as context for all URBs
greybus: send buffers without gbufs
greybus: rework message initialization
greybus: send messages, not gbufs
greybus: cancel messages, not gbufs
greybus: rework receve handling
greybus: kill the last gbuf remnants
greybus: stop storing hd in message
greybus: stop storing dest_cport_id in message
greybus: pass gfp_flags for message allocation
greybus: explicitly mark cookies as opaque
greybus: tidy up svc_in_callback() and cport_in_callback()
greybus: get rid of message status
greybus: use "operation_id" for certain values
greybus: refactor gb_connection_recv()
greybus: fix battery_operation()
greybus: fix uart request_operation()
greybus: fix vibrator request_operation()
greybus: get rid of uart request_operation()
greybus: distinguish incoming from outgoing requests
greybus: send operation result in response message header
greybus: define gb_operation_status_map()
greybus: remove status from all responses
greybus: drop a now-empty structure
greybus: fix a timeout race
greybus: complete overflow responses
greybus: have greybus allocate its own buffers
greybus: rename message buffer fields
greybus: dynamically allocate requests and responses
greybus: embed message buffer into message structure
greybus: define greybus_data_sent()
greybus: rename greybus_cport_in()
greybus: use errno for operation result
greybus: abandon incoming requests for now
greybus: handle data send errors in workqueue
greybus: add a reference to pending operations
greybus: minor tweak in gb_connection_recv_response()
greybus: cancel operation on timeout
greybus: cancel whole operation on interrupt
greybus: kill gb_operation_wait()
greybus: rework synchronous operation completion
greybus: encapsulate operation result access
greybus: first operation error prevails
greybus: use special operation result valus
greybus: fix some error codes
greybus: enforce receive buffer size
greybus: update operation result atomically
greybus: ignore a null cookie when canceling buffer
greybus: protect cookie with a mutex
greybus: use outgoing flag when creating operation
greybus: enforce max representable message size
greybus: define -EILSEQ to mean implementation error
greybus: renumber operation result values
greybus: drop gfp_mask from gb_message_send()
greybus: always drop reference in gb_operation_work()
greybus: move copy of incoming request data
greybus: short message is OK for errors
greybus: pass result in gb_connection_recv_response()
greybus: enforce non-zero operation type requirement
greybus: use operation type 0 to signal incoming data
greybus: introduce gb_operation_message_init()
greybus: enforce a buffer headroom maximum size
greybus: create a slab cache for simple messages
greybus: set result in gb_operation_response_send()
greybus: activate incoming request handling
greybus: introduce gb_operation_errno_map()
greybus: send operation response messages
greybus: use little-endian in PWM requests
greybus: fix a bug in gb_operation_sync()
greybus: define the invalid operation type symbolically
greybus: don't use 0 as an operation id
greybus: get rid of pending operations list
greybus: make op_cycle atomic (again)
greybus: introduce gb_operation_request_send_sync()
greybus: fix an error message
greybus: set up connection->private properly
greybus: don't let i2c code assume non-null payload pointer
greybus: only record message payload size
greybus: use null pointer for empty payload
greybus: record type in operation structure
greybus: define GB_OP_NONEXISTENT
greybus: ENODEV can be an expected error too
greybus: switch cport id used for sends
greybus: add Linaro copyrights
greybus: clean up some small messes
greybus: get rid of {conceal,reveal}_urb()
greybus: manifest: use size_t for a size variable
greybus: es1: test apb1_log_task safely
greybus: es2: test apb1_log_task safely
greybus: reduce the ranting
greybus: bundle: use kstrdup() for state file
greybus: battery: free struct on error in caller
greybus: battery: use feature tag rather than kernel version
greybus: eliminate extra response flag definitions
greybus: loopback: fix the type attribute check
greybus: loopback: return the right error value
greybus: loopback: fix an incorrect comment
greybus: loopback: symbolically define max wait time
greybus: loopback: define loopback functions symbolically
greybus: loopback: support module-initiated requests
greybus: endo: rename gb_svc
greybus: endo: pass endo_id to gb_endo_create()
greybus: core: return error code when creating endo
greybus: core: return error code when creating host device
greybus: include "gpbridge.h" from "greybus.h"
greybus: rename "gpbridge.h"
greybus: endo: encapsulate computing the max interface id
greybus: endo: rework some attributes
greybus: endo: record AP interface id
greybus: core: don't set up endo until host device is initialized
greybus: add copyright statements
greybus: update copyrights
greybus: introduce SVC protocol
greybus: greybus_protocols: fix guard tag
greybus: add documentation for Endo sysfs files
greybus: update sysfs documentation files
greybus: endo: drop redundant prefixes from sysfs basenames
greybus: endo: delete "0xXXXX" portion in sysfs "endo" directory
greybus: svc: driver is basic to Greybus (not GP Bridge)
greybus: connection: make gb_connection_hd_find() private
greybus: uart: properly interpret receive data size
greybus: core: rename greybus_deregister()
greybus: manifest: clean up a few pr_err() calls
greybus: drop some unnecessary headers
greybus: tag core init and exit functions
greybus: endo: define endo_init() and endo_exit()
greybus: endo: clean up id assignment code
greybus: manifest: really minor cleanups
greybus: manifest: use bundle's embedded interface pointer
greybus: manifest: rework cport parsing
greybus: manifest: rework bundle parsing
greybus: bundle: check for duplicate bundle ids
greybus: connection: check for duplicate cport ids
greybus: connection: remove extra kfree() call
greybus: connection: drop unneeded gb_protocol_put() calls
greybus: connection: un-abstract host cport id allocation
greybus: manifest: clean up properly when parsing cports
greybus: bundle: refactor gb_bundle_find()
greybus: bundle: fix gb_bundle_destroy()
greybus: manifest: clean up properly when parsing bundles
greybus: introduce cport_id_valid()
greybus: esX: encapsulate packing cport id into header
greybus: rename HOST_DEV_CPORT_ID_MAX
greybus: reserve host cport id 0
greybus: esX: use one byte to encode cport ids in header
greybus: interface: declare gb_interface_destroy()
greybus: looback: fix two typos
greybus: loopback: drop unneeded casts for void pointers
greybus: loopback: use U64_MAX for initialization
greybus: loopback: use u32 for stats update
greybus: loopback: record 32-bit min and max
greybus: loopback: use a 32-bit count
greybus: loopback: error is an unsigned attribute
greybus: loopback: all read-only attributes are unsigned
greybus: loopback: use separate attribute macro for average
greybus: loopback: compute average stats on demand only
greybus: loopback: fix connection cleanup paths
greybus: kernel_ver.h: define U32_MAX and U64_MAX
greybus: db3-platform: fix code that fetches reset GPIO
greybus: db3-platform: fix some typos
greybus: db3-platform: get rid of redundant gpio tests
greybus: es2: rename es2 data structures
greybus: es2: move APB log task into the es2_ap_dev struct
greybus: es2: move logging fifo into es2 struct
greybus: es2: move logging dentries into es2 struct
greybus: es2: don't assume just one AP bridge
greybus: connection: verify disabled when destroyed
greybus: add operation traces
greybus: tracing: define events using macros
greybus: tracing: eliminate "location" comments
greybus: tracing: refine comments
greybus: tracing: fix a bad tracepoint
greybus: tracing: fix hd traces
greybus: tracing: add module traces
greybus: tracing: define interface traces
greybus: report right error value
greybus: fix unbalanced mutex
greybus: eliminate unneeded null check
greybus: fix pointless null check
greybus: use PTR_ERR_OR_ZERO()
greybus: drop a bogus semicolon
greybus: tracing: fix "make check" warnings
greybus: define BUNDLE_ID_NONE
greybus: tracing: fix host device num_cports
greybus: tracing: reorder trace definitions
greybus: tracing: fix module num_interfaces
greybus: tracing: assign "parent" id first
greybus: tracing: add interface mode_switch
greybus: tracing: define bundle traces
greybus: tracing: define connection traces
greybus: tracing: add timing traces
greybus: tracing: fix message traces
greybus: don't key on an enumerated constant
greybus: tracing: drop "greybus" prefix
greybus: get rid of a compile warning
greybus: use memdup_user()

Alexandre Bailon (29):
greybus: i2c-gb: fix bad message size in gb_i2c
greybus: protocol.c: fix a kernel panic caused by __gb_protocol_register
greybus: gpio.c: fix a bad irq number
greybus: Export greybus debugfs folder
greybus: Dump log from APB1
greybus: Add loopback protocol
greybus: es1.c: Don't use magic value for USB control request
greybus: es2.c: Don't use magic value for USB control request
greybus: es2.c: create dedicated struct for cport_in and cport_out
greybus: es2.c: Increase the number of bulk endpoints
greybus: es2.c: add a control request for endpoints mapping
greybus: es1/es2: set transfer flag to send a zero-length packet
greybus: Greybus driver: add a new callbacks to driver
greybus: es2: update the bulk_ep_set value accepted by map_to_cpor_ep()
greybus: es2: rename misnamed variables and methods
greybus: es2: change (un)map methods to static
greybus: es2: add some documentation about endpoints mapping
greybus: loopback: fix invalid response size
greybus: gb_loopback: Fix throughput calculations
greybus: loopback: Fix calculations error for ping transfers
greybus: loopback: Fix incoherency in calculations in the case of error
greybus: loopback: Fix throughput calculations
greybus: loopback: Fix averaging
greybus: loopback: Fix warning on 32-bit build
greybus: loopback: round closest the sixth decimal
greybus: loopback: Fix broken synchonous test
greybus: loopback: Fix broken loopback min values
greybus: es2: Add a new bulk in endpoint for APBridgeA RPC
greybus: es2: Implement APBridgeA RPC (ARPC)

Ann Chen (2):
greybus: vibrator: integrate runtime pm
greybus: Add workqueue to handle vibrator timeout

Axel Haslam (24):
greybus: greybus/loopback: remove mask attribute
greybus: greybus/loopback: register a struct device.
greybus: loopback_test: make output to csv file a parameter option
greybus: loopback_test: Decrease the max number of devices
greybus: greybus/loopback: Add reserved fields to transfer request
greybus: Notify user space only when the test finished.
greybus: Loopback_test: use poll instead of inotify
greybus: loopback_test: Use timeout argument
greybus: loopback_test: handle SIGINT signal
greybus: uart: Update line coding settings only when needed
greybus: uart fix missing negation on DTR setting
greybus: Fix loopback app after rename to gpphy
greybus: uart: Handle CRTSCTS flag in termios
greybus: uart: Implement dtr_rts callback.
greybus: uart: Use a fifo to send data to the modules
greybus: uart: Add credits based tracking for transmit path
greybus: uart: Implement flush_buffer
greybus: uart: wait for credits on shutdown
greybus: uart: Add runtime pm support
greybus: gpio: Add runtime_pm suppourt
greybus: pwm: Add runtime_pm support
greybus: spi: Add runtime_pm support
greybus: loopback: add runtime pm support
greybus: gbphy: fix compile error with CONFIG_PM_RUNTIME disabled

Bartosz Golaszewski (4):
greybus: loopback: allocate a response even for a 0-byte request
greybus: legacy: fix a null pointer dereference
greybus: audio_manager: add missing header
greybus: pm: add error handling to bundle activation

Bill Pemberton (3):
greybus: gb-vibrator: remove useless if in timeout_store()
greybus: Add FIXME warnings for possible NULL dereferences
greybus: gpio-gb: remove checks for negative offset variable

Bryan O'Donoghue (132):
greybus: Support building greybus on host PC
greybus: uart: Move UART protocol structs/defines to greybus_protocols.h
greybus: uart: Tidy naming convention to more closely match spec
greybus: uart: Reduce UART count from 255 to 16
greybus: uart: Update uart.c to register tty ports
greybus: uart: send_data should return size or error
greybus: uart: kmalloc for send_data once only
greybus: uart: Add gb_uart_request_recv for receiving async UART data
greybus: uart: Remove magic numbers make struct gb_tty variable names consistent
greybus: uart: Latch modem control signals for tciomget
greybus: greybus/uart: Fix sparse warning
greybus: greybus/uart: Relocate UART parity/overrun/framing/break signals
greybus: greybus/uart: Add support for UART error signals
greybus: greybus/uart: Update UART to reflect field size changes
greybus: greybus/loopback: Move loopback operation definitions
greybus: greybus/loopback: remove magic number in state-machine
greybus: greybus/loopback: remove spurious pr_err in sysfs store
greybus: greybus/loopback: make loopback type input equivalent to protocol type
greybus: greybus/loopback: add sink to loopback protocol
greybus: greybus/loopback: truncate maximum loop data to link size
greybus: greybus/loopback: update throughput metrics to improve granularity
greybus: greybus/loopback: fix broken tabs in greybus_protocols.h
greybus: greybus/loopback: fix 64bit printf format error
greybus: greybus/uart: fix typo in defintion
greybus: greybus/manifest: reserve control connection cport/bundle ids
greybus: greybus/manifest: convert pr_err to dev_err
greybus: greybus/loopback: timestamp seeding should not drop metrics
greybus: greybus/loopback: update loopback operation description comment
greybus: greybus/loopback: run operations a set number of times
greybus: greybus/loopback: add commentary to sysfs variables
greybus: greybus/loopback: rename frequency to requests
greybus: greybus/loopback: convert loopback wake/sleep to a waitqueue
greybus: greybus/loopback: remove redundant timestamping
greybus: greybus/loopback: make loopback code thread safe
greybus: greybus/loopback: provide interface to read all latency data-points
greybus: greybus/loopback: warn user if kfifo cannot log all data
greybus: greybus/connection: fix jump label on device_add failure
greybus: greybus/connection: add a timestamp kfifo to track connection handoff
greybus: greybus/es-drivers: add outbound timestamp to connection
greybus: greybus/loopback: functionally decompose calculation of turn-around times
greybus: greybus/loopback: handle timestamp roll-over
greybus: greybus/interface: change typo replicable => replaceable
greybus: greybus/loopback: add ability to graph greybus latency
greybus: greybus/loopback: convert sample report interface to debugfs
greybus: greybus/loopback: support synchronized tests over multiple cports
greybus: greybus/loopback: add gb_loopback_nsec_to_usec_latency
greybus: greybus/loopback: functionally decompose gb_loopback_calc_latency
greybus: greybus/loopback: graph round-trip time for all threads
greybus: greybus/loopback: add bitmask of connections to include in test
greybus: greybus/loopback: initialized ms_wait negate warning
greybus: greybus/loopback: remove checkpatch error causing macro
greybus: greybus/loopback: add module level sys/debug fs data points
greybus: greybus/loopback: fix typo in comment
greybus: greybus/loopback: make sure to list_del on connection_exit
greybus: greybus/loopback: ensure count decrement happens before sysfs_remove_groups
greybus: greybus/loopback: hold a coarse lock while init/exit run
greybus: greybus/loopback: exit kfree after mutex release
greybus: greybus/loopback: ensure debugfs entires are cleaned up on exit
greybus: greybus/loopback: ensure sysfs entries are cleaned up on exit
greybus: greybus/loopback: convert pr_info to dev_err
greybus: greybus/loopback: add response len to loopback protocol
greybus: greybus/loopback: sort list of connections for masking purposes
greybus: greybus/loopback: add gb_loopback_operation_sync
greybus: greybus/loopback: use dev_name to populate sysfsname
greybus: greybus/tracepoints: add tracepoint definitions
greybus: greybus/operation, core: hook tracepoints into message opertions
greybus: greybus/loopback: drop dependency on internal timestamps
greybus: greybus/tracepoints: add tracepoints for host_device tx/rx
greybus: greybus/es1, es2: hook tracepoints to hardware send/recv operations
greybus: greybus/loopback: move sysfs entries to /sys/bus/greybus/devices/endo0
greybus: greybus/loopback: masked out threads should sleep
greybus: greybus/loopback: drop redundant endo0 string from debugfs entry name
greybus: greybus/loopback: remove module specific identifier from debugfs name
greybus: greybus/loopback: add reserved fields to track firmware latencies
greybus: greybus/es1,es2: add USB vendor command to timestamp
greybus: greybus/connection: add latency tag enable/disable callbacks
greybus: greybus/loopback: send command to APBridge to tag throughput
greybus: greybus/loopback: add tracker variables to hold firmware timestamps
greybus: greybus/loopback: capture and present firmware supplied latencies
greybus: greybus/manifest: fix the placement of arguments to pr_err
greybus: greybus/audio-pcm: fix use of variable unitialized
greybus: greybus/loopback: Relax locking during loopback operations
greybus: greybus/loopback: Move latency_ts initialization to transfer routine
greybus: greybus/loopback: Drop unused timeval variables
greybus: greybus/loopback: drop bus aggregate calculation
greybus: greybus/loopback: Convert cross-thread mutex to spinlock while relaxing connect locks
greybus: greybus/loopback: Add asynchronous bi-directional support
greybus: greybus/loopback: Convert thread delay to microseconds
greybus: greybus/loopback: Ensure we reset stats once and once only
greybus: greybus/loopback: Drop NULL check on container_of pointer
greybus: greybus/loopback: Retrun -ENOMEM if operation allocation fails
greybus: greybus/loopback: Wait for all async operations to complete on exit
greybus: greybus/loopback: Add asynchronous backoff
greybus: svc: Change GB_SVC_TYPE_LINK_CONFIG to 0x10
greybus: greybus/timesync: Add Control and SVC TimeSync command/response data definitions
greybus: greybus/timesync: Add Control and SVC protocol TimeSync operation definitions
greybus: greybus/control: Add TimeSync control commands
greybus: Ensure gb->mutex is held when adding timer
greybus: Fixup __u64, __u32 to __le64, __le32 in timesync declarations
greybus: greybus_trace.h: Fix dodgy indentation
greybus: greybus_protocols.h Add SVC_TIMESYNC_WAKE_PINS_ACQUIRE/RELEASE
greybus: greybus_protocols.h Add SVC_TIMESYNC_PING
greybus: arche-platform: Rework platform/wd-line state transition logic
greybus: svc: Add TimeSync SVC commands
greybus: control: Add TimeSync get-last-event logic
greybus: control: Drop unused parameter from timesync_authoritative
greybus: hd: Add TimeSync APBridge commands
greybus: interface: Extract and store Interface feature byte
greybus: es2.c: Declare local __le64 not u64
greybus: Fix unbalanced irq_enable() backtrace
greybus: timesync: Add timesync core driver
greybus: timesync: Bind TimeSync into Greybus
greybus: tracepoints: Add standard Linux tracepoint for TimeSync event
greybus: timesync: Add gb_timesync_frame_time_to_timespec()
greybus: timesync: Add debugfs entry to display frame-ping in ktime
greybus: uart: Fix minor number leak
greybus: timesync: Do 64 bit divisions in a 32 friendly way
greybus: timesync: Do not hold mutex on cancel_delayed_work_sync
greybus: timesync: Fix transitions to the INACTIVE state
greybus: timesync: Rework timesync removal serialization logic
greybus: timesync: Enforce TimeSync locks as subordinate to Interface locks
greybus: timesync: Initialize the timesync ping fields to zero
greybus: timesync: Make printout consitent with other greybus messages
greybus: timesync/pm: Make synchronous call to restore FrameTime
greybus: greybus_protocols.h/es2: Ensure __le32 is used not u32
greybus: greybus_protocols.h: convert __u32 to __le32
greybus: timesync: Bugfix ping should not result in -EAGAIN
greybus: timesync: reduce initial startup time
greybus: timesync: probe shouldn't complete until FrameTime sync does
greybus: timesync: Implement a retry mechanism
greybus: timesync: Ensure parallel synchronous calls succeed
greybus: timesync: Printout strobe count on sync failure

David Lin (40):
greybus: arche-platform: fix incorrect gpio variable type
greybus: greybus_trace: Fix broken greybus ftrace
greybus: svc: add Interface power measurements support
greybus: arche-platform: Power-off unipro subsystem upon suspend
greybus: svc watchdog: Disable watchdog upon entering suspend
greybus: es2: Fix apb_log null pointer exception
greybus: svc: add AP power measurements debugfs support
greybus: svc: clean up gb_svc struct for pwrmon
greybus: svc: free pwrmon_rails memory upon exit
greybus: operation: fix an inconsistent indent
greybus: legacy: remove legacy driver support
greybus: legacy: remove protocol.o from the makefile
greybus: svc: pwrmon: validate svc protocol op status when getting rail names
greybus: audio: remove the unnecessary return statement
greybus: control: add bundle suspend and resume preparations
greybus: control: add bundle deactivate and activate operation
greybus: control: add interface suspend prepare operation
greybus: control: add interface deactivate prepare operation
greybus: control: add interface hibernate abort operation
greybus: svc: add interface resume operation
greybus: svc: add power mode call for link hibernation
greybus: interface: implement unipro link hibernate call
greybus: control: add connection suspend and resume calls
greybus: interface: send deactivate prepare when interface is disabled
greybus: bundle: add activate and deactivate
greybus: interface: add runtime pm support
greybus: bundle: add runtime pm support
greybus: audio: add runtime pm support
greybus: camera: add runtime pm support
greybus: gbphy: add gbphy runtime pm support
greybus: i2c: add runtime pm support
greybus: hd: arche-platform: implement greybus shutdown
greybus: timesync: do not print frametime by default
greybus: operation: print id when synchronous operation timeout
greybus: svc_watchdog: Add sysfs file to change the behavior of bite
greybus: audio: add runtime pm to enumerated control and DAPM widget
greybus: interface: delete control device upon enable failure
greybus: svc_watchdog: use schedule_delayed_work helper
greybus: interface: fix timesync registration sequencing
greybus: light: fix incorrect led attribute files allocation

Dinko Mironov (1):
greybus: audio: Fix incorrect counting of 'ida'

Eli Sennesh (5):
greybus: firmware and svc: detect the difference between ES2 and ES3 chips
greybus: firmware/bootrom: debug output from bootrom protocol
greybus: operation: rate-limit dev_err printing on the receive path
greybus: update UniPro Set Interface Power Mode operation to match spec
greybus: update UniPro Set Interface Power Mode operation to match spec

Evgeniy Borisov (6):
greybus: camera-gb: Extend the configure streams interface
greybus: camera-gb: Remove hardcode for CSI TX number of lanes
greybus: camera-gb: Add description of interface header
greybus: camera-gb: Extend gb camera module structure
greybus: camera-gb: Implement camera module reference counting as subject.
greybus: camera: Add RAW data format

Fabien Parent (15):
greybus: es2: rename misnamed CPORT_MAX into CPORT_COUNT
greybus: add num_cports field to greybus hd
greybus: es2: dynamically allocate array for cport <-> ep mapping
greybus: es2: get cport count from apb1 usb device
greybus: es{1,2}: remove control endpoint field
greybus: connection: fail to bind if connection init fails
greybus: es{1,2}: remove obselete define
greybus: es2: implement cport reset control request
greybus: connection: destroy connection on failing to bind it
greybus: connection: add api to {en,dis}able unipro fct flow
greybus: apba: add fct flow usb control requests
greybus: es2: implement the fct flow control requests
greybus: connection: {en,dis}able fct flow in connection management
greybus: camera: disable E2EFC on CSI connection
greybus: connection: remove CDSI1 hack

Georgi Dobrev (2):
greybus: Added a sysfs entry to power down the SVC
greybus: greybus-driver: Add intf_oops operation

Gjorgji Rosikopulos (11):
greybus: camera: HACK: Export GB camera interface
greybus: camera: HACK: Register gb camera to the HOST camera
greybus: camera: Fix backword compatibility in configure streams
greybus: camera: Add support for configure streams flag in gb interface
greybus: camera: Update configure stream based on new interface
greybus: camera: add semiplanar and planar formats
greybus: camera: Improve module registration mechanism
greybus: camera: Use pointer for gb camera module ops
greybus: camera: Add metadata format
greybus: camera: Add debug data format
greybus: camera: Rename debug and metadata mbus formats

Greg KH (8):
greybus: battery: update for 4.1 power supply api changes
greybus: gb-audio: fix build warning
greybus: gb-audio: fix build breakage on 4.1-rc1
greybus: es2: comment out unused functions
greybus: audio_codec: Don't be tricky with the driver model
greybus: add bundle class to the bundle uevent
greybus: svc: double the ping delay timeout
greybus: camera: only build module against msm kernel

Greg Kroah-Hartman (376):
greybus: Initial commit
greybus: Import most recent greybus code to new repo.
greybus: README and .gitignore updates
greybus: update README with info on how to build and contact me.
greybus: i2c-gb: actually add the i2c adapter properly...
greybus: greybus.h: tiny coding style cleanups
greybus: Greybus SD/MMC host driver
greybus: add framework for 'struct gbuf'
greybus: gpio driver
greybus: gpio-gb.c: it now builds properly
greybus: uart framework added, doesn't build
greybus: uart-gb: more work on tty functions
greybus: more uart work
greybus: uart-gb: now builds, more framework added
greybus: start moving the function types into the greybus core
greybus: static module_init/exit functions
greybus: hook up sdio, gpio, and tty into the greybus core.
greybus: i2c: tie to the proper place on the greybus_device
greybus: i2c: use same naming convention everywhere
greybus: gpio: tie into gb core properly
greybus: sdio: tie into gb core properly
greybus: uart: tie into gb core properly
greybus: initial framework for ES1 usb AP driver
greybus: can't use devm anymore, we aren't tieing into the driver model lifecycle :(
greybus: actually get the devm() change to build...
greybus: first framework for the es1 ap controller
greybus: es1-ap-usb: more init framework added.
greybus: register the bus with the driver core and add framework for debugfs files.
greybus: ap message loop added.
greybus: structures added
greybus: more structure definitions added
greybus: split svc msg out into separate header file
greybus: greybus_desc.h created
greybus: header file s/u8/__u8/g
greybus: greybus.h: tiny movement around
greybus: more changes due to name changes in the greybus document
greybus: s/greybus_device_id/greybus_module_id/g
greybus: get field names right for descriptors
greybus: turn off warnings for es1-ap-usb.c to make it easier to build for now...
greybus: export gb_new_ap_msg so that the es1 module can use it
greybus: start parsing descriptor structures
greybus: start parsing descriptor fields
greybus: sysfs attributes for functions and more driver core integration.
greybus: serial number attribute added
greybus: module id attributes
greybus: greybus_string()
greybus: split sysfs functions out to separate file.
greybus: minor checkpatch cleanups
greybus: add proper packing to all greybus message types
greybus: uart-gb: remove unneeded THIS_MODULE setting
greybus: add es1_ap_desc.c to describe the ES1 USB device descriptors
greybus: host controller additions
greybus: more hd work
greybus: first cut at parsing svc messages sent to the AP
greybus: add battery module
greybus: battery FIXME added
greybus: minor whitespace cleanups to make checkpatch.pl happy
greybus: es1_ap_desc.c: updated ES1 USB device descriptor
greybus: es1: finialized USB device structure
greybus: es1: forgot to free our urb on disconnect
greybus: pass appropriate type to create function
greybus: fix endian issue in sysfs.c
greybus: Fix build errors on older kernels.
greybus: Merge branch 'master' of github.com:gregkh/greybus
greybus: AP: move a bunch of svc message handling logic into ap.c
greybus: es1: add the start of cport urb handling.
greybus: es1: allocate cport out urbs properly
greybus: es1: handle cport data in and out
greybus: ap: convert to workqueue from thread
greybus: ap: cleanup of process ap message loop
greybus: Makefile: add 'check' option to run sparse with endian checks enabled
greybus: es1 endpoint descriptor: minor fixes to get the config right
greybus: tty driver fixes to get init working properly
greybus: uart-gb: let the core dynamically allocate the major number
greybus: core: verify major/minor number of greybus protocol
greybus: es1: functionally complete
greybus: devices: endpoint description of device
greybus: gbuf recieve path work, not done, dinner time...
greybus: gbuf: cport in buffer stream logic
greybus: add test_sink driver
greybus: fix hd init sequence of setting up parent and driver pointers properly
greybus: es1: set buffer sizes for messages based on email discussions
greybus: gbuf: implement submission logic
greybus: gbuf: clean up logic of who owns what "part" of the gbuf
greybus: svc_msg.h: add data for hotplug message
greybus: greybus.h: add function prototype for add/remove a module
greybus: core.c: create empty functions to keep linking working for hotplug/remove
greybus: ap: start validating the message better
greybus: ap: validate the rest of the svc message buffer sizes
greybus: core: hook up the hotplug message
greybus: fix up coding style issue I caused with the last patch...
greybus: es1: no BUG_ON() code, report an error and recover.
greybus: operation: fix endian issue in the operation message header size field.
greybus: manifest: some minor sparse warning fixups.
greybus: manifest.c: minor sparse cleanup
greybus: connection: properly lock idr
greybus: greybus.h: remove transfer_flags
greybus: greybus_id.h: checkpatch cleanup
greybus: svc_msg.h: add bsd license to file so that firmware can use it.
greybus: greybus_manifest.h: add BSD license so that firmware can share it.
greybus: greybus_manifest.h: fix up class protocol numbers to match the spec.
greybus: gpio-gb: allow it to build properly for all current kernel versions.
greybus: battery-gb: provide accessors for a few more functions
greybus: battery: some hooking up to the greybus core
greybus: add LED protocol numbers
greybus: battery-gb: Add battery communication with the module
greybus: Merge branch 'gregkh_work' into master
greybus: battery-gb.c: fix memory leak found by Viresh
greybus: battery-gb: Allow kernel values to get out of sync with greybus spec
greybus: module: fix double free of module
greybus: hook up greybus to the driver model
greybus: module: enable all sysfs attributes
greybus: i2c: point to the proper parent device
greybus: module: don't create duplicate module ids
greybus: operation: fix some sparse warnings
greybus: gpio-gb: fix some endian sparse warnings that were real.
greybus: gbuf: implement gbuf_kill_gbuf()
greybus: core: check for valid hcd callbacks
greybus: core: make greybus_kill_gbuf not return a value
greybus: operation: make the timeout a per-operation thing, not per-connection
greybus: uart-gb: convert over to the connection interface
greybus: uart-gb: remove global init functions
greybus: FIXME/XXX removals: We have proper reference counting now
greybus: module: remove unneeded XXX comment about module id values
greybus: kernel_ver.h: add ATTRIBUTE_GROUPS() macro for older kernels
greybus: uart-gb: mark some functions static
greybus: battery-gb: remove some #if 0 code
greybus: sdio-gb: convert to the connection interface.
greybus: Merge branch 'master' into driver_model_rework
greybus: #if 0 cleanups
greybus: Remove id_table usages
greybus: es1-ap-usb: document the lack of callback for the outgoing bulk urbs
greybus: connection: fix up error patch logic in gb_connection_create()
greybus: Revert "manifest: improve print message"
greybus: Revert "manifest: remove extra loop for finding module descriptor"
greybus: skeleton for future uevents.
greybus: Greybus UART connection driver
greybus: uart: handle NULL size requests in request_operation()
greybus: greybus_manifest.h: update with full list of protocols
greybus: vibrator-gb: add vibrator driver
greybus: vibrator-gb: fixes based on Marti's review comments.
greybus: vibrator-gb: proper allocate minor numbers
greybus: Merge branch 'master' into vibrator-gb
greybus: vibrator-gb: fix up api changes
greybus: Merge branch 'master' into vibrator-gb
greybus: vibrator-gb.c: fix up incorrect comment
greybus: uart-gb: handle throttle/unthrottle properly
greybus: uart-gb: fix up typo from previous patch moving the status variable around.
greybus: pwm-gb.c: fix up missing { } for else
greybus: add -Wall to the build flags
greybus: operation: create gb_operation_sync for sending "simple" messages
greybus: battery-gb: convert to use gb_operation_sync
greybus: vibrator-gb: convert to use gb_operation_sync
greybus: uart-gb: convert to use gb_operation_sync
greybus: gpio-gb: convert to use gb_operation_sync
greybus: i2c-gb: convert to use gb_operation_sync
greybus: pwm-gb: convert to use gb_operation_sync
greybus: uart-gb: clean up send_line_coding
greybus: usb-gb: import a "buildable" version of the usb-gb.c driver
greybus: operation: fix up sparse warning
greybus: battery-gb.c: add new functions from Greybus spec document.
greybus: greybus_manifest.h: add FIXME for version
greybus: uart-gb.c: don't include module.h
greybus: module versions: remove them
greybus: module: remove obsolete gb_tty pointer
greybus: interface_block: rename module.[c|h] to interface_block.[c|h]
greybus: interface_block: s/gb_module/gb_interface_block/
greybus: interface_block: rename the sysfs files to not have 'module' in them
greybus: sysfs documentation: Document the greybus interface block sysfs files.
greybus: interface_block: move sysfs files into the interface_block.c file
greybus: connection: document the sysfs files
greybus: interface: document sysfs files
greybus: driver matching: Greybus drivers bind to interface blocks, not modules
greybus: bundle: rename interface.[c|h] to bundle.[c|h]
greybus: es1-ap-usb: don't protest when getting -EPROTO USB errors
greybus: bundle: s/gb_interface/gb_bundle/g
greybus: interface_block.c: rename the "interfaces" list "bundles"
greybus: rename interface_block.[c|h] -> interface.[c|h]
greybus: interface: s/gb_interface_block/gb_interface/g
greybus: interface: rename greybus_interface_block_id to greybus_interface_id
greybus: interface.h: remove unused #defines
greybus: greybus_id.h: minor typo fixes
greybus: interface: we really are creating/destroying interfaces not modules.
greybus: greybus_host_device: rename modules -> interfaces
greybus: interface: rename gb_modules_lock -> gb_interfaces_lock
greybus: add module support
greybus: interface: remove global manifest_descs list
greybus: protocol: switch gb_protocol_register() to return an int
greybus: export needed symbols for protocols
greybus: protocol: split binding of prototcols to connections out of init
greybus: i2c-gb: split out into a stand-alone kernel module.
greybus: bundle: create GB_DEVICE_ID_BAD
greybus: protocol: add a module owner to a protocol
greybus: vibrator-gb: move vibrator protocol to a stand-alone module.
greybus: battery-gb: move the battery protocol out to a stand-alone module
greybus: gpb: Create a "GP Bridge" kernel module
greybus: i2c-gb: move i2c protocol into the gpbridge driver
greybus: module: get rid of global list of modules
greybus: protocol: name protocols.
greybus: protocol: fix oops when no protocol is assigned
greybus: sysfs: put a \n at the end of all sysfs files
greybus: Makefile: provide install target
greybus: rename gpbridge.ko to gb-phy.ko
greybus: rename vibrator-gb.ko to gb-vibrator.ko
greybus: rename battery-gb.c to gb-battery.c
greybus: rename es1-ap-usb.ko to gb-es1.ko
greybus: Move the es1_ap_desc.c file to Documentation directory
greybus: es1: no need to assign a variable we return directly
greybus: es2: add ES2 Greybus Host driver
greybus: Revert "protocol.c: fix a kernel panic caused by __gb_protocol_register"
greybus: Revert "protocol: dedup protocol find code"
greybus: ap.c: our workqueue should be ordered
greybus: es1.c: wait until the last possible minute to start the svc messages
greybus: es2: fix USB id to not be the same as ES1
greybus: es1: fix build warning for apb1_log_enable_write
greybus: es1: fix tiny whitespace issues
greybus: es1: use <linux/uaccess.h> and not <asm/uaccess.h>
greybus: es1: no need to check for NULL on debugfs_remove()
greybus: es1: struct file_operations needs to be const
greybus: es1: decimal modes are not what are wanted for debugfs
greybus: es1: move debugfs function to use kstrotoint_from_user()
greybus: es1: fix checkpatch warning about blank lines needed
greybus: es1: separate usb_log enable/disable logic into different functions
greybus: es1: allow the debug log to be stopped
greybus: Merge branch 'es1-fixes' into master
greybus: debugfs: we shouldn't care if debugfs is working or not
greybus: es2: sync up with recent es1.c changes
greybus: loopback: fix build breakage about SZ_4K
greybus: loopback: use the attribute groups, not group
greybus: kernel_ver.h: add sysfs_create_groups() and sysfs_remove_groups()
greybus: Documentation/sysfs: add a proposed sysfs tree for greybus
greybus: module.c: add attributes
greybus: endo: add endo structures and logic
greybus: endo: hook up endos into the device tree
greybus: Documentation/sysfs-bus-greybus: update kernel version and date
greybus: Documentation/sysfs-bus-greybus: document the endo and SVC
greybus: Documentation/sysfs-bus-greybus: document module sysfs files
greybus: gpbridge.h: whitespace cleanups
greybus: gpbridge.h: remove BIT() define
greybus: bundle: add state sysfs file
greybus: MODULE_LICENSE cleanup
greybus: kernel_ver.h: fix leading space coding style issues
greybus: kernel_ver.h: add a ' ' character to KERNEL_VERSION()
greybus: kernel_ver.h: add a blank line after a variable definition
greybus: protocol.h: macros should not have a trailing ';'
greybus: protocol.h: fix up long lines in define_get_version()
greybus: audio: fix some sparse static warnings
greybus: audio: fix a bunch of endian issues
greybus: vibrator: convert idr to be an ida
greybus: connection: remove lock around ida_simple_* functions
greybus: raw: add raw greybus kernel driver
greybus: Merge branch 'master' of github.com:gregkh/greybus
greybus: Merge branch 'master' of github.com:gregkh/greybus
greybus: es?: decrease buffer size to 2k
greybus: remove __init from .h files
greybus: Merge branch alex into Alexandre
greybus: Revert "greybus: reserve host cport id 0"
greybus: Revert "examples: add manifest file for sdio"
greybus: properly cleanup ida and idr structures when shutting down
greybus: connection: prevent oops for protocol_id sysfs file
greybus: loopback: add poll support to the iteration_count sysfs file
greybus: es1: remove svc endpoint message handling
greybus: es2: remove svc endpoint message handling
greybus: greybus.h: remove greybus_svc_in()
greybus: remove submit_svc from the host driver
greybus: interface: make gb_interface_destroy() static
greybus: core: clean up ida memory for host controller
greybus: svc: revert svc changes to keep things working for a while.
greybus: es1: remove svc endpoint message handling
greybus: es2: remove svc endpoint message handling
greybus: greybus.h: remove greybus_svc_in()
greybus: remove submit_svc from the host driver
greybus: interface: make gb_interface_destroy() static
greybus: Merge branch 'master' into svc to keep it up to date.
greybus: Revert "connection: remove special check for svc cport id"
greybus: Merge branch 'master' into svc
greybus: Merge branch 'master' into svc
greybus: Merge branch 'master' into svc
greybus: Merge branch 'master' into branch 'svc'.
greybus: Merge branch 'master' into branch 'svc'.
greybus: gpio: handle api change in generic_handle_irq_desc()
greybus: vibrator: use the bundle struct device instead of the connector
greybus: uart: use the bundle struct device instead of the connector
greybus: spi: use the bundle struct device instead of the connector
greybus: hid: use the bundle struct device instead of the connector
greybus: audio: use the bundle struct device instead of the connector
greybus: firmware: use the bundle struct device instead of the connector
greybus: gpio: use the bundle struct device instead of the connector
greybus: i2c: use the bundle struct device instead of the connector
greybus: pwm: use the bundle struct device instead of the connector
greybus: light : use the bundle struct device instead of the connector
greybus: sdio: use the bundle struct device instead of the connector
greybus: usb: use the bundle struct device instead of the connector
greybus: operation: use the bundle struct device instead of the connector
greybus: control: use the bundle struct device instead of the connector
greybus: raw: use the bundle struct device instead of the connector
greybus: connection: remove 'struct device' from 'struct gb_connection'
greybus: connection: use the bundle struct device instead of the connector
greybus: loopback: use the bundle struct device instead of the connector
greybus: greybus_trace: use the bundle struct device instead of the connector
greybus: protocol: use the bundle struct device instead of the connector
greybus: bundle.h: add a private field to struct gb_bundle
greybus: core: remove uevent handling for gb_connection
greybus: svc: don't trust any struct devices
greybus: es2: use official USB vendor/device id
greybus: hid: hid should not be part of the bridged-phy driver.
greybus: Camera: remove f_dentry usage
greybus: tools: Add tools directory to greybus repo and add loopback
greybus: loopback_test: fix warning about signed/unsigned comparison
greybus: loopback_test: null terminate the dict structure
greybus: tools: don't always build them.
greybus: arche-platform: merge arche-apb-ctrl and arche-platform
greybus: host: provide "generic" apbridge output calls
greybus: APBridge: move APBridge request protocol to a common .h file
greybus: uevent: add GREYBUS_ID to uevent
greybus: Makefile: fix up build test for gb-audio-codec.ko
greybus: Revert "camera: Fix backword compatibility in configure streams"
greybus: firmware: log the name of the firmware being requested
greybus: svc: add ping command
greybus: lsgb: add lsgb shell script
greybus: lsgb: Minor tweaks
greybus: svc: add a "watchdog" to check the network health
greybus: svc: return proper error code on watchdog create error
greybus: svc watchdog: allow it to be enabled/disabled from userspace
greybus: audio_manager: use an 'ida' for the module id
greybus: lsgb: remove it, it's in the gb-utils repo
greybus: fix sparse warning in manifest.c
greybus: only build arche platform driver if usb3613 is enabled
greybus: Revert "gb_loopback: Fix throughput calculations"
greybus: uart: properly calculate max buffer size
greybus: gpio: use bundle device for error messages
greybus: gpio: handle api changes for 4.5 kernel release
greybus: expose full 32 bits of vid/pid to userspace
greybus: gpbridge.h: move protocol init/exit prototypes
greybus: manifest: reserve the Bridged PHY class
greybus: properly annotate struct gb_control_timesync_enable_request
greybus: connection: add functions to get/set private data
greybus: convert drivers to use connection->private set/get
greybus: trivial: add checkpatch.pl to the tree
greybus: scripts: create subdir for checkpatch and spelling.txt
greybus: gpbridge: implement gpbridge "bus" logic
greybus: UART: convert to a gpbridge driver
greybus: PWM: convert to a gpbridge driver
greybus: I2C: convert to a gpbridge driver
greybus: GPIO: convert to a gpbridge driver
greybus: SDIO: convert to a gpbridge driver
greybus: SPI: convert to a gpbridge driver
greybus: USB: convert to a gpbridge driver
greybus: make greybus_gpbdev_type static
greybus: kernel_ver.h: provide pwm_is_enabled()
greybus: Revert "greybus: don't use spin_lock_irq()"
greybus: move all firmware prefix strings to one place
greybus: fix up copyright dates on arpc.h
greybus: Revert "svc: drop all symbol exports"
greybus: es2: remove #if 0 code
greybus: es2: remove struct cport_to_ep
greybus: es2: remove bulk_out array
greybus: es2: remove bulk_in array
greybus: es2: remove unneeded BULK_* #defines
greybus: es2: No need to check before freeing an urb
greybus: es2: fix up usb probe error messages
Merge greybus driver tree into 4.8-rc5
greybus: Add drivers/greybus to the build
greybus: remove local checkpatch.pl copy
greybus: kernel_ver.h: remove lots of stuff
greybus: Documentation: remove sysfs tree
greybus: remove README and LICENSE
greybus: remove .gitignore file
greybus: move the sysfs documentation to Documentation/ABI/testing
greybus: remove old es1 endpoint description
greybus: hid: remove KERNEL_VERSION checks
greybus: vibrator: remove KERNEL_VERSION checks
greybus: gpio: remove KERNEL_VERSION checks
greybus: spi: remove KERNEL_VERSION checks
greybus: sdio: fix min() type check
greybus: remove CONFIG_PM_RUNTIME from kernel_ver.h

Jackson Chang (1):
greybus: SDIO: Add runtime pm support

Jacopo Mondi (17):
greybus: camera: Add support for flags to stream_configure
greybus: camera: Stream config change unipro speed
greybus: camera: Reset link speed on failed config
greybus: camera: Add missing return value
greybus: camera: Add CSI configuration parameters
greybus: camera: Rename clock_mode to flags
greybus: camera: Register capabilities operation
greybus: camera: Early update num_streams and flags
greybus: camera: Fix number of configured streams
greybus: camera: Fix size of configure_streams(0)
greybus: camera: Add bpp to Greybus Format description
greybus: camera: Add wrapper for sync operation with flags
greybus: camera: Update Configure Streams Response
greybus: camera: Configure APB-A with new params
greybus: camera: Update CSI config parameters
greybus: camera: Remove reference to ara subdevice
greybus: camera: Remove support for legacy modules

Jeffrey Carlyle (8):
greybus: Revert "bootrom: Implement timeouts to detect Module failures"
greybus: svc: implement svc_intf_{vsys,refclk,unipro}_{enable,disable} operations
greybus: svc: implement svc_intf_activate
greybus: svc: support status in svc_intf_activate response
greybus: interface: retry enumeration of UniPro-only modules
greybus: Revert "update UniPro Set Interface Power Mode operation to match spec"
greybus: svc: implement connection_quiescing call
greybus: connection: switch to using spin_lock_irqsave/spin_lock_irqrestore excluisvely

Joel Porquet (2):
greybus: add support for the log protocol
greybus: firmware.h: rename TFTF firmware filenames

Johan Hovold (547):
greybus: connection: fix non-atomic allocations under spin lock
greybus: bundle: fix sleep-while-atomic in gb_bundle_destroy
greybus: gpio: fix memory leaks at init and exit
greybus: operation: fix locking issues
greybus: connection: fix locking in gb_hd_connection_find
greybus: pwm: fix memory leak in error path
greybus: vibrator: fix memory leak in error path
greybus: connection: fix oops after failed init
greybus: gpio: fix set-debounce request alignment
greybus: pwm: fix config-request alignment
greybus: uart: remove packed-attribute from line-coding struct
greybus: usb: silence compiler warning
greybus: ap: fix svc handshake protocol check
greybus: ap: fix typo in comment
greybus: ap: clean up svc link management error path
greybus: connection: replace custom error function with dev_err
greybus: operation: use dev_err in gb_operation_sync
greybus: operation: remove unnecessary cast
greybus: gpio: fix truncated debounce times
greybus: gpio: remove incorrect todo comments
greybus: gpio: remove redundant argument verification
greybus: gpio: remove overly defensive argument verification
greybus: gpio: remove unnecessary explicit cast
greybus: gpio: make gb_gpio_controller pointer naming consistent
greybus: gpio: fix error handling
greybus: gpio: use dev_err and dev_warn
greybus: gpio: clean up line-state allocation
greybus: gpio: refuse to set value of input pins
greybus: gpio: add error messages to callbacks not propagating errors
greybus: operation: fix missing symbol exports
greybus: operation: fix typo in comment
greybus: operation: fix callback handling and documentation
greybus: operation: fix use-after-free when sending responses
greybus: operation: fix memory leak in request_send error path
greybus: operation: fix use-after-free and infinite loop on unhandled requests
greybus: operation: fix null-deref on operation cancel
greybus: operation: fix null-deref on operation destroy
greybus: operation: fix incoming request payload size
greybus: operation: replace pr_err with dev_err
greybus: operation: make incomplete-message errors more informative
greybus: gpio: fix null-deref on short irq requests
greybus: gpio: fix null-deref on unexpected irq requests
greybus: gpio: fix missing response on request errors
greybus: hid: replace pr_err with dev_err
greybus: hid: fix success response being sent on errors
greybus: hid: fix null-deref on short report requests
greybus: hid: fix missing input verification of report events
greybus: hid: fix missing response on request errors
greybus: operation: refactor response handling
greybus: es1: drop unnecessary casts
greybus: es1: fix DMA-buffer on stack
greybus: es1: fix buffer-size limit
greybus: es2: sync up with recent es1 changes
greybus: operation: fix unaligned memory accesses in receive path
greybus: remove obsolete buffer-alignment requirement
greybus: operation: move message-header definition to header file
greybus: pass messages to host drivers
greybus: operation: fix potential message corruption
greybus: operation: add explicit padding to message header
greybus: es1: fix transfer-buffer alignment
greybus: es2: sync up with recent es1 changes
greybus: drop host-driver buffer headroom
greybus: loopback: fix 64-bit divisions
greybus: remove unnecessary greybus.h includes
greybus: remove unused prototypes from header
greybus: fix host-device buffer constraints
greybus: operation: allow maximum-sized messages
greybus: core: add lower-limit for host-device buffers
greybus: operation: add helper to retrieve max payload size
greybus: gpbridge: fix section mismatches
greybus: operation: add support for incoming unidirectional operations
greybus: gpio: fix debugfs output
greybus: gpio: remove unused irq-ack operation
greybus: gpio: don't call irq-flow handler directly
greybus: gpio: use irq-domain lookups
greybus: gpio: rename irq mask and unmask callbacks
greybus: gpio: fix atomic sleep when using interrupts
greybus: gpio: fix interrupt protocol
greybus: gpio: update operation types
greybus: gpio: remove unused debounce define
greybus: gpio: add irq-type defines
greybus: esx: fix null-deref on hotplug events
greybus: operation/esx: fix message-cancellation lifetime bugs
greybus: operation: allow atomic operation allocations
greybus: operation: allow atomic request submissions
greybus: operation: make response helper static
greybus: operation: fix cancellation use-after-free
greybus: operation: add incoming-operation flag
greybus: operation: add unidirectional-operation flag
greybus: operation: remove obsolete operation-field comments
greybus: operation: drop redundant oom message
greybus: operation: allocate response before setting result
greybus: operation: fix cancellation of responses
greybus: operation: fix operation-destroy race
greybus: operation: fix use-after-free in response receive path
greybus: operation: fix outgoing-response corruption
greybus: operation: fix incoming-response corruption
greybus: operation: fix another cancellation use-after-free
greybus: operation: clean up create-incoming error path
greybus: operation: add active counter
greybus: operation: make cancellation synchronous
greybus: operation: complete operations on cancellation
greybus: operation: clean up operation work function
greybus: operation: suppress response submission on connection tear down
greybus: connection: add connection-state locking
greybus: operation: fix connection tear down
greybus: connection: fix protocol tear-down race
greybus: operation: fix operation look-up race
greybus: operation: fix response-cancellation race
greybus: operation: split incoming and outgoing cancellation
greybus: operation: allow drivers to define custom timeouts
greybus: operation: add gb_operation_sync_timeout helper
greybus: kernel_ver: add list_last_entry for old kernels
greybus: operation: fix atomic response allocation
greybus: operation: fix atomic message submission
greybus: operation: fix operation ordering
greybus: operation: clean up greybus_message_sent
greybus: connection: fix connection initialisation
greybus: connection: clean up connection creation
greybus: connection: clean up creation error paths
greybus: operation: use per-connection work queues
greybus: operation: add completion work queue
greybus: usb: clean up driver
greybus: usb: renumber operation types
greybus: usb: fix hcd allocation, deregistration and deallocation
greybus: usb: fix hc_driver fields
greybus: usb: implement hub_control callback
greybus: usb: disable protocol driver
greybus: greybus_protocols: fix typo in comment
greybus: svc: fix message packing
greybus: uart: fix message packing
greybus: sdio: fix message packing
greybus: greybus_protocols: use only type attributes for message packing
greybus: firmware: fix potential stack corruption
greybus: endo: fix endo-id allocation flag
greybus: svc: fix device-id allocation flag
greybus: svc: fix hot-plug-state allocation flag
greybus: interface: fix potential attribute-buffer overflow
greybus: pwm: replace pr_err with dev_err
greybus: core: fix hd-creation error path
greybus: es1: fix build-time cport constraint
greybus: fix cport-id defines
greybus: vibrator: fix tear-down race
greybus: sdio: fix tear-down use-after-free
greybus: sdio: fix work-queue leak and use-after-free
greybus: svc: fix ida memory leak
greybus: svc: fix version response
greybus: greybus_protocols: add missing version-request definition
greybus: connection: clean up svc-connection creation
greybus: connection: clean up init error paths
greybus: connection: clean up control-disconnected helper
greybus: connection: add control-connected helper
greybus: connection: add protocol-version helper
greybus: hd: add optional cport enable and disable callbacks
greybus: hd: remove connection-create/destroy callbacks
greybus: es1/2: fix use-after-free in completion callback
greybus: operation: remove gb_operation_destroy
greybus: es1/es2: clean up error messages
greybus: connection: replace pr_err with dev_err
greybus: operation: drop OOM-response FIXME
greybus: operation: clean up error messages
greybus: protocol: warn on bad deregistration
greybus: protocol: warn on protocol put errors
greybus: protocol: make version debug message more informative
greybus: vibrator: add missing protocol-register error handling
greybus: protocol: make protocol-lookup error message more informative
greybus: connection: remove duplicate protocol lookup error message
greybus: build: add pwm to config options to enable
greybus: gpio: handle set_irq_flags api change
greybus: endo: fix use-after-free in error path
greybus: endo: fix device-id allocation
greybus: connection: remove unused time-stamp defines
greybus: control: remove unused request handler
greybus: es2: update obsolete bridge-device comments
greybus: remove unused host-device id
greybus: remove unused connection device type
greybus: connection: use bundle device for bundle error messages
greybus: connection: fix potential null-deref in hd_cport_enable
greybus: connection: fix potential null-deref in connection create
greybus: connection: fix potential null-deref when binding protocol
greybus: connection: kill gb_hd_connections_exit
greybus: endo: fix ida memory leak
greybus: remove obsolete comment
greybus: create host-device compilation unit
greybus: hd: rename host-device structure
greybus: hd: rename host-driver structure
greybus: hd: use common prefix for exported functions
greybus: es2: fix use-after-free at disconnect
greybus: es2: fix endpoint requirement check
greybus: es2: separate urb allocation and submission
greybus: es1: separate urb allocation and submission
greybus: es2: separate stopping and deallocating urbs
greybus: es1: separate stopping and deallocating urbs
greybus: es2: fix debugfs dentry leak
greybus: es1: fix debugfs dentry leak
greybus: es2: add more structure to probe error handling
greybus: es1: add more structure to probe error handling
greybus: hd: fix host-device life time issues
greybus: es2: clean up es2 destructor
greybus: loopback: fix layer violation
greybus: battery: fix class-device parent
greybus: light: fix class-device parent
greybus: interface: fix potential use-after-free at remove
greybus: interface: fix obsolete comment
greybus: use decimal notation for interface and cport ids
greybus: svc: use bit-macro for cport flags
greybus: firmware: fix information leak
greybus: firmware: break long lines
greybus: svc: fix missing version-request sanity checks
greybus: fix bundle-id match macros
greybus: remove unique-id matching
greybus: interface: remove unique id
greybus: fix vendor and product matching
greybus: move id-matching back to core
greybus: add class matching macro
greybus: connection: fix cport-id range
greybus: hd: fix cport-count check
greybus: Documentation/sysfs: update the example sysfs tree
greybus: Documentation/sysfs-bus-greybus: update the bus ABI documentation
greybus: interface: rename vendor and product attributes
greybus: interface: remove device_id attribute
greybus: interface: add interface_id attribute
greybus: bundle: rename class attribute
greybus: bundle: use hexadecimal notation for class attribute
greybus: bundle: add bundle_id attribute
greybus: hd: make host device a device
greybus: connection: drop parent parameter from connection create
greybus: interface: make interfaces children of host devices
greybus: bundle: rename bundle devices
greybus: svc: make svc a device
greybus: svc: clean up svc initialisation
greybus: svc: register svc device at hello
greybus: svc: move endo id and ap interface id to svc
greybus: interface: kill gb_create_bundle_connection
greybus: connection: clean up connection-creation interface
greybus: connection: fix potential null-deref on create
greybus: connection: kill GB_PROTOCOL_SKIP_SVC_CONNECTION
greybus: connection: add name field
greybus: connection: handle static connections
greybus: operation: handle static connections
greybus: protocol: handle static connections
greybus: hd: fix svc-connection handling
greybus: svc: clean up log messages
greybus: loopback: remove endo reference
greybus: kill the endo
greybus: connection: handle bundle-less connections in svc helpers
greybus: control: do not assume a control bundle
greybus: connection: unconditionally enable connections
greybus: manifest: refactor cport-descriptor release
greybus: interface: drop the control bundle
greybus: Documentation/sysfs: rename interface and bundle attributes
greybus: svc: clean up hotplug/unplug request handlers
greybus: svc: clean up deferred hotplug handler
greybus: svc: clean up interface-remove helper
greybus: svc: generalise deferred request handling
greybus: svc: defer processing of hot-unplug requests
greybus: svc: fix racy hotplug handling
greybus: svc: flush workqueue at connection exit
greybus: core: add bus id to uevents
greybus: core: add interface id to interface and bundle uevents
greybus: core: add bundle id to bundle uevents
greybus: svc: add missing boot-status error message
greybus: bundle: remove obsolete function prototype
greybus: bundle: kill gb_bundle_bind_protocols
greybus: connection: fail on missing protocol
greybus: connection: bind protocol at init
greybus: connection: unbind protocol at exit
greybus: connection: separate connection creation and enabling
greybus: hd: initialise device last
greybus: hd: make svc-connection life time coincide with host-device
greybus: svc: create svc along with host device
greybus: use decimal notation for interfaces, bundles and cports
greybus: interface: remove defensive WARN_ON
greybus: bundle: kill the bundle lock
greybus: bundle: use dev_err for bundle-creation errors
greybus: bundle: separate connection disabling and destruction
greybus: bundle: separate bundle creation and registration
greybus: interface: separate manifest parsing from bundle registration
greybus: interface: fix interface-registration race
greybus: interface: clean up error messages
greybus: es2: demote dynamic-urb error message
greybus: interface: clean up control-connection handling
greybus: interface: fix hot-unplug control-connection timeouts
greybus: svc: drop copy-pasted function header
greybus: es2: clean up csi-config request
greybus: camera: fix memory leak in configure-streams error path
greybus: camera: fix memory leak in capture-request handler
greybus: camera: destroy data connection on link-config errors
greybus: core: add drvdata accessors
greybus: core: fix greybus driver registration
greybus: core: fix greybus device matching
greybus: connection: fix version-request error handling
greybus: power_supply: fix lock imbalance in init error path
greybus: connection: fix connection-state handling
greybus: connection: refactor connection enable and disable
greybus: legacy: add legacy-protocol bundle driver
greybus: connection: rename legacy init and exit functions
greybus: connection: remove disable from destructor
greybus: connection: add per-connection request handlers
greybus: connection: always cancel operations on connection disable
greybus: connection: clean up operation cancellation on disable
greybus: connection: disable operations on enable errors
greybus: connection: make connection enable/disable thread safe
greybus: connection: add unidirectional enabled state
greybus: connection: add helper to disable incoming operations
greybus: core: disable incoming operations pre disconnect
greybus: core: add defensive connection disable post disconnect
greybus: firmware: remove skip-disconnected flag
greybus: connection: remove skip-connected legacy protocol flags
greybus: greybus_protocols: remove control-protocol version
greybus: control: drop legacy-protocol dependency
greybus: svc: drop legacy-protocol dependency
greybus: connection: move legacy-protocol handling to legacy driver
greybus: legacy: use protocol pointer to determine state
greybus: core: disable bundle connections on hot-unplug
greybus: svc: store protocol version
greybus: connection: remove broken protocol-version handling
greybus: control: add bundle-version operation
greybus: connection: remove WARN_ON from destroy
greybus: connection: destroy workqueue at unregister
greybus: connection: drop the connection_mutex
greybus: connection: fix lookup race
greybus: connection: serialise connection creation
greybus: connection: make cport lookup thread-safe
greybus: legacy: add private driver data
greybus: core: defer connection creation to driver probe
greybus: manifest: check for duplicate CPort descriptors when parsing
greybus: connection: drop protocol parameter from static interface
greybus: connection: add helper to create control connections
greybus: connection: drop the legacy protocol-id parameter
greybus: connection: simplify connection-creation interface
greybus: connection: rename connection-create interface
greybus: connection: return error-valued pointer on creation errors
greybus: legacy: refactor legacy-connection handling
greybus: legacy: add initialized flag
greybus: connection: remove legacy protocol id from core
greybus: legacy: look up protocol at connection creation
greybus: connection: set request handlers at creation
greybus: hid: clean up init error paths
greybus: hid: convert to bundle driver
greybus: vibrator: convert to bundle driver
greybus: firmware: abort if AP_READY fails
greybus: hd: fix host-device-removal race
greybus: legacy: remove unimplemented classes from id table
greybus: firmware: convert to bundle driver
greybus: manifest: add interface-device prefix to messages
greybus: core: add device prefix to error messages
greybus: i2c: add bundle-device prefix to error messages
greybus: loopback: add missing pr_fmt
greybus: spi: add bundle-device prefix to error messages
greybus: bundle: remove private data field
greybus: raw: fix memory leak on disconnect
greybus: es2: fix cport-count error handling
greybus: Documentation: remove svc unique_id attribute
greybus: uart: add max-payload sanity check
greybus: uart: add missing serial-state sanity check
greybus: uart: fix incomplete receive-data sanity checks
greybus: Documentation/sysfs: add module devices
greybus: Documentation/sysfs: move module 1-4 to position 5
greybus: Documentation/sysfs: make 1-5 a 2x2 module
greybus: operation: add temporary pointer to response handler
greybus: operation: add support for short responses
greybus: loopback: fix double error count
greybus: raw: use hexadecimal notation for request types
greybus: connection: add connection-flag interface
greybus: svc: clean up CPortFlags handling
greybus: connection: generalise CPortFlags handling
greybus: connection: add CSD connection flag
greybus: hd: rename CPort-features callbacks
greybus: greybus_manifest: remove unused AP class and protocol
greybus: greybus_manifest: remove unused SVC class
greybus: interface: remove unused function prototype
greybus: interface: remove unused drvdata helpers
greybus: interface: add comment about early control-connection disable
greybus: svc: refactor interface-route creation
greybus: svc: refactor interface-route destruction
greybus: interface: separate initialisation and registration
greybus: interface: free bundles on initialisation errors
greybus: svc: always register interfaces at hotplug
greybus: interface: disable control connection on initialisation errors
greybus: interface: remove useless spinlock
greybus: interface: move interface-removal helper
greybus: interface: rename initialisation function
greybus: interface: separate disabling from removal
greybus: svc: unexport eject helper
greybus: svc: print an error message on failed eject attempts
greybus: greybus_protocols: remove svc-eject timeout define
greybus: core: fix two container-of macros
greybus: greybus_protocols: align DME-attribute values
greybus: svc: remove bogus interface-reset helper
greybus: greybus_protocols: remove bogus comment about svc bundle
greybus: svc: indent CPort flag defines properly
greybus: interface: move boot-status clearing to interface enable
greybus: interface: fix es2 boot-status mask
greybus: interface: clean up and rename init-status helper
greybus: interface: clean up ES3-bootroom-quirk handling
greybus: interface: move route creation to interface activation
greybus: interface: deactivate interface on enumeration failure
greybus: interface: clean up device-id handling
greybus: greybus_protocols: rename NULL DME selector index
greybus: interface: read DME attributes at activation
greybus: interface: add ES2 init-status quirk flag
greybus: interface: clean up ES2 VID/PID hack
greybus: interface: clean up DME attribute handling
greybus: interface: add Ara serial-number support
greybus: manifest: fix illegal free in error path
greybus: Documentation: move the interface power attributes
greybus: Documentation/sysfs: remove interface unique_id attribute
greybus: Documentation/sysfs: rename the svc eject attribute
greybus: Documentation/sysfs: add example control devices
greybus: interface: disable interface on registration failures
greybus: control: move timesync-operation functions
greybus: core: make the control object be a device
greybus: interface: register control device at hotplug
greybus: interface: move vendor and product strings to control device
greybus: control: return error pointer when failing to create control device
greybus: interface: reduce control-device lifetime
greybus: svc: make sure to deactivate all interfaces on disconnect
greybus: svc: keep interfaces registered during mode switch
greybus: svc: remove interface-remove helper
greybus: svc: keep error messages uniform
greybus: svc: fix pwrmon return value
greybus: svc: fix function-parameter indentation
greybus: svc: use a common prefix for debugfs functions
greybus: Documentation/sysfs: add entry for control device
greybus: Documentation/sysfs: sort entries alphabetically
greybus: svc: refactor interface re-enable
greybus: core: add module abstraction
greybus: module: implement controlled module removal
greybus: interface: add active state flag
greybus: svc: add stub functions for v_sys, refclk and unipro
greybus: svc: add stub interface-activate function
greybus: interface: implement interface activation and power down
greybus: svc: implement module inserted and removed operations
greybus: svc: implement interface mailbox event
greybus: interface: fix broken UniPro flow control
greybus: interface: remove unused prototype
greybus: fix outdated kernel-doc comment
greybus: operation: update gb_operation_request_send() documentation
greybus: operation: add support for initiating unidirectional operations
greybus: operation: add helper functions for unidirectional operations
greybus: control: implement mode-switch operation
greybus: loopback: remove unsupported version request
greybus: svc: define the version request
greybus: operation: fix definition of the invalid type
greybus: interface: fix type in enable error message
greybus: interface: remove unused interface-version quirk
greybus: connection: add no-flow-control connection flag
greybus: connection: add offloaded connection flag
greybus: connection: add helper for creating offloaded connection
greybus: audio: mark the data connection as offloaded
greybus: hd: move CPort allocation to host-device code
greybus: es2: fix probe error handling
greybus: es2: clean up CDSI CPort reservation
greybus: hd: generalise cport allocation
greybus: es2: clean up cport-reset handling
greybus: es2: add support for CDSI1 allocation
greybus: connection: add camera-data connected workaround
greybus: camera: fix data-connection handling
greybus: operation: fix broken activation logic
greybus: svc: fix another pwrmon return value
greybus: audio_apbridgea: fix two return values
greybus: svc: use EREMOTEIO for remote errors
greybus: interface: fix svc-resource error messages
greybus: remove redundant latency-tag sanity checks
greybus: core: avoid I/O to disconnected interfaces
greybus: interface: clean up bootrom quirk handling
greybus: interface: avoid I/O to bootrom during removal
greybus: connection: add control connection flag
greybus: control: implement disconnecting operation
greybus: svc: add stub connection-quiescing operation
greybus: connection: log cport-enable error messages
greybus: es2: reset cports at disable
greybus: connection: rename an error label
greybus: connection: move CPort Buffer configuration out of svc helpers
greybus: connection: remove unused invalid state
greybus: operation: clean up early connection-state check
greybus: operation: restructure activation state handling
greybus: operation: add helper for creating core operations
greybus: connection: implement proper connection closure
greybus: connection: add flush host-device callback
greybus: kernel_ver: backport reinit_completion to pre-3.13
greybus: control: add error message to mode-switch helper
greybus: interface: implement generic mode-switch functionality
greybus: svc: remove deprecated hotplug operations
greybus: fix tracepoint-related whitespace issues
greybus: hd: fix gb_hd_release tracepoint
greybus: fix forced disable of offloaded connections
greybus: hd: add flag argument to cport_enable callback
greybus: connection: prevent drivers from specifying core flags
greybus: connection: add support for high-priority connections
greybus: es2: add support for greybus cport flags
greybus: Revert "connection: switch to using spin_lock_irqsave/spin_lock_irqrestore excluisvely"
greybus: Revert "greybus: gb_connections_lock: don't use spin_lock_irq()"
greybus: Revert "greybus: es2.c: don't use spin_lock_irq()"
greybus: Revert "greybus: uart: don't use spin_lock_irq()"
greybus: es2: fix arpc return value
greybus: es2: fix arpc response lookups
greybus: connection: drop the svc quiescing operation
greybus: interface: add interface-type attribute
greybus: interface: partition attribute group
greybus: interface: make attributes type dependent
greybus: interface: amend interface registration message
greybus: module: suppress activation error message for dummy interfaces
greybus: interface: use an enum for interface type
greybus: interface: do not read DME during reactivation
greybus: interface: clean up ES3 activation-retry hack
greybus: interface: make sure type is invariant during reactivation
greybus: interface: prevent reactivation during removal
greybus: interface: fix power_state documentation
greybus: interface: hibernate UniPro link in activation error path
greybus: interface: fix interface_id attribute group
greybus: control: suppress bundle_activate() for bootrom
greybus: operation: fix broken response error messages
greybus: operation: fix broken response tracepoint
greybus: operation: clean up request handler
greybus: Documentation/sysfs: replace Ara references
greybus: replace Ara references
greybus: es2: fix arpc response-allocation error handling
greybus: es2: fix arpc error message
greybus: es2: fix arpc active-list corruption
greybus: remove unused protocol-version messages
greybus: control: remove some braces
greybus: connection: fix offloaded-connection ping cport id
greybus: es2: clean up ARPC symbol names
greybus: es2: always set result value
greybus: es2: allow ARPC result to be ignored
greybus: es2: add define for ARPC CPort requests
greybus: es2: rename USB vendor-request timeout define
greybus: greybus_protocols: fix apba vendor-request comment
greybus: es2: fix USB vendor-request prefixes
greybus: arpc: move arpc definitions to their own header
greybus: hd/es2: add cport_connected callback and ARPC
greybus: hd/es2: add cport_quiesce callback and ARPC
greybus: hd/es2: add cport_clear callback and ARPC
greybus: hd: add cport_shutdown callback
greybus: control: make disconnecting a core operation
greybus: es2: fix memory leak in probe error path
greybus: svc: drop all symbol exports
greybus: svc: drop unnecessary symbol exports
greybus: es2: implement flush callback
greybus: es2: implement shutdown callback
greybus: connection: implement new connection handling
greybus: hd/es2: remove obsolete callbacks
greybus: es2: remove obsolete cport-reset ARPC
greybus: svc: fix timeout indentation
greybus: greybus_protocols: remove svc key-event type

John Stultz (4):
greybus: Changes required for integrating into the Android build
greybus: build: Add -fno-pic for 32bit arm as well
greybus: Move briged phy structure definitions into gpbridge.h
greybus: gb-audio: Add integrated greybus audio driver

Kris Huang (3):
greybus: lights: Add runtime pm support
greybus: lights: enable multi color LED support
greybus: lights: Control runtime pm suspend/resume on AP side

Laurent Pinchart (25):
greybus: es2: Reserve CPorts 16 and 17
greybus: Add camera protocol definition
greybus: Add driver for the camera class protocol
greybus: camera: Fix endian conversion issues
greybus: svc: Add support for the link config operation
greybus: camera: Configure link speed for the data connection
greybus: es2: Add support for CSI transmitter configuration
greybus: camera: Configure the bridge CSI transmitter
greybus: camera: Set link power mode to HS-G2 with 2 lanes
greybus: camera: Fix remaining endian conversion issues
greybus: es2: Fix endian conversion issues
greybus: es2: Don't use stack memory as USB request data
greybus: camera: Raise the CSI-2 bandwidth
greybus: svc: Replace link config hack with standard operation
greybus: camera: Return the result flags from the configure_streams response
greybus: camera: Factorize link power mode configuration code into a function
greybus: camera: Clean up when AP link power mode configuration failed
greybus: camera: Set power mode after configuring streams
greybus: camera: Don't configure CSI TX in test only mode
greybus: camera: Implement the capabilities operation
greybus: camera: Convert to bundle driver
greybus: camera: Clean up on stream configuration failure
greybus: camera: Fix data connection setup
greybus: camera: Create and destroy data connection on demand
greybus: camera: Hardcode the APB-A CSI-2 TX parameters

Mark A. Greer (11):
greybus: gb-audio: Set clock edges to match rt5647 codec requirements
greybus: gb-audio: Allocate space for 20 configurations
greybus: gb-audio: Clean up codec name generation
greybus: gb-audio: Fix DAI formats and master/slave settings
greybus: gb-audio: cpu_dai.fmt does not exist in v4.1
greybus: gb-audio: Add I2C device for rt5647 codec
greybus: gb-audio: Remove useless comment
greybus: gb-audio: Activate TX CPort in PCM workqueue
greybus: gb-audio: Activate TX connection Bundle CPort ID
greybus: gb-audio: Set I2S Configuration according to ASOC requests
greybus: gb-audio: Set samples per message during init

Mark Greer (16):
greybus: Initial I2S definitions
greybus: gb-audio: Reset sample count when CPort deactivated
greybus: gb-audio: Ensure i2c adapter struct exists before using
greybus: audio: Remove I2S Bridged-PHY Protcol based audio driver
greybus: i2s: Remove deprecated I2S Bridged-PHY Protocol
greybus: audio: Allocate protocol and class values
greybus: audio: Use underscore in file name
greybus: audio: Add Audio Device Class Protocol definitions
greybus: audio: Add Greybus Audio Device Class Protocol helper routines
greybus: audio: Add direct audio streaming control for APBridgeA
greybus: audio: Register CPorts for specific directions
greybus: audio: Split start and stop APBridgeA requests
greybus: audio: Use CSD instead of E2EFC for audio data connections
greybus: audio: apbridgea: Remove GET_TX/RX_DELAY message types
greybus: audio: Remove GET_TX/RX_DELAY message types
greybus: audio: Fix incorrect direction value when enabling RX

Marti Bolivar (4):
greybus: uart-gb.c: replace alloc_tty_driver with tty_alloc_driver
greybus: uart-gb.c: dynamically allocate device numbers
greybus: gb_hd_connection_find(): fix "not found" case
greybus: remove obsolete SVC result codes

Matt Porter (33):
greybus: update svc_msg_header fields and users to match spec
greybus: move versioning from svc message header to handshake function
greybus: update GREYBUS_VERSION_[MAJOR|MINOR] to match spec
greybus: es1-ap-usb: fix svc control pipe flags
greybus: initialize all fields in an SVC handshake message
greybus: update descriptor module_id->module to match spec
greybus: remove serial number descriptor to match spec
greybus: remove unused function descriptor fields and change class->function_type
greybus: update string descriptor length field to __u8 type to match spec
greybus: update descriptor type enums to match renumbering in spec
greybus: es1-ap-usb: adjust SVC buffer size to handle worst case
greybus: remove additional unused fields from the cport descriptor
greybus: fix error message on parse of cport descriptor size
greybus: fix gb_add_module() by enabling the device_add()
greybus: implement core module removal path
greybus: fix manifest parsing problem with descriptor payload
greybus: fix gb_manifest_parse() successful return path
greybus: es1-ap-usb: handle -EPROTO in check_urb_status()
greybus: gpio-gb: remove unused status field from struct gb_gpio_get_value_request
greybus: gpio-gb: fix offset error checking and usage
greybus: ap: add support for the AP Device ID unipro management function message
greybus: module: add gb_module_find()
greybus: interface: add gb_interface_find()
greybus: ap: process the UniPro link up message
greybus: svc: remove unneeded fields from the unipro set route message payload
greybus: ap: add svc_set_route_send() command and use it on a link up event
greybus: svc: remove the DDB function message support
greybus: module: set device_id when initializing an interface
greybus: connection: call connection_init hook after setting the handler
greybus: add pwm protocol driver
greybus: remove unused gb_connection_handler externs
greybus: operation: add missing gb_operation_response_send() export
greybus: gpio: add interrupt handling support

Michael Mogenson (2):
greybus: remove gb_i2c_timeout_operation
greybus: remove gb_i2c_retries_operation

Michael Scott (13):
greybus: build: android: replace hard-coded build destination with variable
greybus: build: android: add all greybus modules to the build
greybus: build: android: Fix script which locates .ko files and moves them into ramdisk
greybus: build: android: replace Linaro build specific logic with AOSP equivalents
greybus: build: android: fix strip module build step
greybus: build: remove Android makefile
greybus: firmware: replace colons with underscore in firmware file request
greybus: arche-platform: ensure wake-detect pin is deasserted
greybus: arche-platform: bring SVC out of reset later in probe
greybus: arche-platform: assert wake-detect to complete WAKE_OUT event
greybus: arche-platform: reduce wait between WAKE_OUT checks
greybus: interface: clear upper 16-bits of version_id and product_id
greybus: adjust kernel version check for led_sysfs_is_disabled

Mitchell Tasman (1):
greybus: svc: reconfig APBridgeA-Switch link to handle required load

Perry Hung (13):
greybus: gb_operation: replace timeout workqueue
greybus: gb_operation: drop operation refcount on cancel
greybus: makefile: fix unused cflags
greybus: battery: fix panic on operation error
greybus: connection: silence warning on unbound protocols
greybus: svc: add route create operation
greybus: svc: create bidirectional routes on hotplug request
greybus: svc: connection: ask SVC to create connections
greybus: svc: add flags and traffic class parameter to connection create op
greybus: svc: add route create operation
greybus: svc: create bidirectional routes on hotplug request
greybus: svc: connection: ask SVC to create connections
greybus: svc: add flags and traffic class parameter to connection create op

Philip Yang (2):
greybus: HID: Add runtime pm support
greybus: power_supply: Add runtime pm support

Phong Tran (12):
greybus: loopback: add more clean up when init connection fails
greybus: svc: Fix endian of hotplug request data
greybus: svc: use macro for init and exit protocol
greybus: audio: Fix typo for macro I2S data version minor
greybus: audio: Remove the MODULE_LICENSE()
greybus: uart: Fix the memory leak in connection init
greybus: endo: move endo id map declaration to endo.h
greybus: uart: remove the redundant unregister chrdev
greybus: uart: fix the clean up while uart initiates connection unsucessfully
greybus: sdio: remove the redefine of sdio major and minor
greybus: sdio: change the order of remove and free mmc host
greybus: sdio: correct the usage of mmc request in work queues handler

Rob Herring (1):
greybus: es2: fix driver name collision with es1

Rui Miguel Silva (90):
greybus: es1: remove useless statement
greybus: es1: release urb on error path
greybus: protocol: dedup protocol find code
greybus: manifest: be coherent with protocol name
greybus: make: check kernel configuration options
greybus: makefile: add MMC to the required option list
greybus: sdio: extend sdio implementation
greybus: sdio: fix defines for older kernels
greybus: kernel_ver: add sg copy operations for kernel < 3.11
greybus: examples: add manifest file for sdio
greybus: sdio: split cmd_flags to there meaning
greybus: sdio: rework of event handler
greybus: sdio: fix return of get_cd and get_ro
greybus: sdio: fix call to stop command if no data exist
greybus: sdio: pass only data pointer to tranfer funtion
greybus: sdio: check number of blocks in transfer
greybus: sdio: add need poll to host caps
greybus: sdio: fix transfer buffer handling and blocks counting
greybus: makefile: add needed config options for lights
greybus: lights: add lights implementation
greybus: makefile: use POSIX functions for kernel cmp
greybus: greybus_protocol: remove unused lights macros
greybus: sdio: fix command type defines
greybus: svc: fix endianness for svc message
greybus: gpio: fix generic_handle_irq_desc api change
greybus: sdio: add field to get_caps response
greybus: sdio: fix card removable detection
greybus: sdio: convert greybus ocr values to mmc ones
greybus: sdio: clarify operator precedence
greybus: sdio: send data block details at command request
greybus: sdio: some cleanups in command function
greybus: battery: move battery file to power_supply
greybus: battery: move implementation to power_supply
greybus: makefile: add power_supply config check
greybus: power_supply: rework and operation changes
greybus: manifest: fix bundle descriptor parse
greybus: spi: add rdwr field to transfer descriptor
greybus: spi: add master and device config operations
greybus: spi: fix transfers bigger than greybus payload
greybus: lights: add v4l2 flash operations
greybus: lights: avoid channel torch double free
greybus: lights: default value for v4l2 flash controls
greybus: spi: move chipselect to one byte size
greybus: spi: rename label to undo operation
greybus: spi: validate spi master register
greybus: spi: unregister master on device add fail
greybus: spi: fix and cleanup spi devices handling
greybus: camera: fix data types of operations
greybus: power_supply: do not release failed supply alloc
greybus: power_supply: fix unregister on error path
greybus: power_supply: free supplies at release
greybus: power_supply: fix error path at supplies setup
greybus: power_supply: fix leak getting string properties
greybus: power_supply: fix use after free of power supply
greybus: power_supply: fix check for configured supply
greybus: svc: add interface eject operation
greybus: svc: add intf_eject attribute
greybus: makefile: add requirement for CONFIG_INPUT
greybus: kernel_ver: add handle for lights in 4.5
greybus: lights: remove sync operation and work queue
greybus: svc: add key event handling
greybus: power_supply: rework get descriptors
greybus: uart: fix double free of tty port
greybus: spi: add device_type field to device config
greybus: lights: remove unnecessary checks
greybus: lights: remove has_flash on failure
greybus: lights: fix check for configured lights
greybus: lights: remove unnecessary check
greybus: spi: fix message transfer over greybus
greybus: spi: use timeout request send operation
greybus: spi: rename rdwr field to xfer_flags
greybus: spi: add inprogress bit to xfer_flags
greybus: sdio: avoid extra memory operation at data transfer
greybus: power_supply: change property values to integer
greybus: power_supply: convert greybus properties to power supply properties
greybus: power_supply: remove references to kernel header
greybus: power_supply: add missing defines present in the specification
greybus: sdio: convert vdd kernel values to greybus
greybus: sdio: add switch voltage operation
greybus: greybus_protocol: fix order of sdio get caps response
greybus: sdio: increase maximum segment size
greybus: power_supply: add callback to handle power supply changes
greybus: power_supply: fix update interval check at request handler
greybus: power_supply: invalidate cache at update request
greybus: power_supply: fix name setting location
greybus: light: remove KERNEL_VERSION checks
greybus: sdio: remove KERNEL_VERSION checks
greybus: power_supply: remove KERNEL_VERSION checks
greybus: makefile: fix dependency of spi to spilib
greybus: Kconfig: enable possibility to select light driver

Ryan Lim (3):
greybus: loopback_test: Cancel only the tests running on selected devices
greybus: loopback_test: Fix -z argument bug
greybus: loopback_test: Add -f argument to cancel all tests

Sachin Pandhare (1):
greybus: manifest: simplify descriptor address calculation

Sandeep Patil (12):
greybus: power_supply: reverse version check for new psy API
greybus: hd: add bus_id attribute
greybus: Documentation/sysfs: add entry for host device bus_id
greybus: Documentation/sysfs: fix sysfs paths
greybus: greybus/core: add MODULE uevent var for all control devices
greybus: gpbridge: add gpbridge device type
greybus: gpbridge: make gpbridge device ids start with 1
greybus: gpbridge: add uevent vars for gpbridge devices
greybus: arche-platform: Fix the MODULE_LICENSE to match with header
greybus: gpbridge: rename 'gpbridge' to 'gbphy' everywhere
greybus: svc: remove input device handling in SVC protocol
greybus: es2: use a single bulk ep pair for all greybus data

Svetlin Ankov (1):
greybus: audio: Add Audio Manager

Vaibhav Agarwal (72):
greybus: Audio: Add skeleton code for GB virtual codec driver
greybus: audio: Build audio module conditionally
greybus: audio: Use greybus connection device for codec registration
greybus: audio: Add topology parser for GB codec
greybus: audio: Add GB Audio class protocol functionality in GB codec DAI ops
greybus: audio: Report uevent on GB codec module insertion/removal
greybus: audio: cleanup unnecessary dev_err messages
greybus: audio: Cleanup GB protocol connections in case of abrupt codec removal
greybus: audio: Enable codec module detection on different slots
greybus: audio_codec: update codec_name as per driver->name
greybus: audio: codec driver cleanup
greybus: audio: use variable 'is_connected' to maintain module state
greybus: audio: Enable support for multiple codec modules
greybus: audio: schedule workqueue to perform codec cleanup on module removal
greybus: audio: return success for stop trigger if device removed
greybus: audio: Use single codec driver registration
greybus: audio: Add module specific driver
greybus: audio: fix to resolve multiple audio module playback issue
greybus: audio: Fix widget pointer update during control parsing
greybus: audio: Added jack support to audio module
greybus: audio: Add I2S_RX path related settings
greybus: audio_manager: Split device type into i/p & o/p devices
greybus: audio: Update device type based on widget types
greybus: audio: acquire wakelock during active playback
greybus: audio: acquire wakelock during active playback
greybus: audio: Changes in response to ASoC cleanup
greybus: audio: Reorder gb_deactivate sequence to avoid protocol error
greybus: audio: Rename widget_type to jack_attrubute
greybus: audio: Identify jack type based on attributes reported
greybus: audio:gb_manager: Use proper locking around kobject_xxx
greybus: audio: Cleanup GB Audio bundle driver.
greybus: audio: Remove redundant lock protection & is_connected field
greybus: audio: Reorganize sequence in GB audio bundle & codec driver
greybus: audio: Reduce codec->lock granularity
greybus: audio: Use standard API to set connections' private data
greybus: audio: gb_manager: Use valid argument while removing ida allocated id.
greybus: audio: Fix memory leak
greybus: hd: Add API to release reserved CPorts
greybus: es2: Release reserved cports CDSI0 and CDSI1
greybus: audio: Report warning in case module is already removed
greybus: audio: Report DISCONNECT event after resource cleanup.
greybus: audio: Ratelimit err messages
greybus: Use mute_stream callback to initiate GB data xfer
greybus: Remove apbridgea_shutdown_xx sequence if already done
greybus: audio: Ratelimit err messages in bundle, topology driver
greybus: audio: topology: Add helper API to map controlid with widget name
greybus: added warning message in case of missing widget
greybus: audio: topology: Use csize while computing next_ptr in parser
greybus: audio: topology: Enable enumerated control support
greybus: audio: Fix incorrect codec state modification
greybus: audio: Maintain proper codec state during shutdown sequence.
greybus: audio: Avoid using ARA keyword
greybus: audio: Remove un-necessary goto statement
greybus: audio: Enable audio path based on control switch state only
greybus: audio: Split helper APIs based on stream direction
greybus: audio: Update dai_driver table with appropriate fields
greybus: audio: Update parameters for gbaudio_module_update API
greybus: audio: Use AIF widget to enable path between module & APB
greybus: audio: Add id to identify data connection
greybus: audio: Find data connection based on id
greybus: Remove unused field from data_connection
greybus: audio: Update pm runtime support in dai_ops callback
greybus: audio: Maintain runtime stream params for each DAI
greybus: audio: Maintain module stream state for each data connection
greybus: audio: Report jack removal along with module removal
greybus: audio: Add check for invalid index while mapping control
greybus: Use valid control pointer while freeing memory
greybus: audio: Remove unnecessary num_jack field from module_info
greybus: audio: Added jack_type support in topology struct
greybus: audio: Fetch jack_mask, button_mask from module's topology data
greybus: audio: Report jack events conditionally
greybus: audio: Avoid reporting spurious button events

Vaibhav Hiremath (67):
greybus: platform: Add platform driver for DB3 AP bridge
greybus: db3(arche)-platform: Remove all APB control code
greybus: arche-platform: Rename db3-platform to arche-platform
greybus: arche-apb-ctrl: Add APB control driver
greybus: arche-apb-ctrl: Assert reset to APB at the end of probe
greybus: arche_platform: Remove child's platform device as part of _remove() fn
greybus: arche-platform: Export gpio (reset & sys_boot) to user
greybus: arche-apb-ctrl: Set wake_detect gpio to low initially
greybus: arche-apb-ctrl: Do not bring APB out of reset in probe
greybus: arche-apb-ctrl: Remove wake_detect gpio and related code
greybus: arche-apb-ctrl: deassert reset at the end of probe
greybus: arche-platform: Add wake/detect support along with handshaking with AP
greybus: arche-apb-ctrl: Enable the clocks after regulator enable
greybus: arche-platform: Disable clock as part of driver remove
greybus: arche-apb-ctrl: Remove extra delay in APB reset
greybus: Revert "arche-apb-ctrl: Remove extra delay in APB reset"
greybus: arche-platform: make apb_state common to both platform drivers
greybus: arche-platform: Introduce coldboot_seq fn
greybus: arche-platform: Cancel delayed_work in driver remove fn
greybus: arche-platform: Rename cleanup fn to poweroff_seq
greybus: arche-platform: Add state variable to driver data
greybus: arche-platform: Pull wake/detect low in poweroff
greybus: arche_platform: Add sysfs to allow user to change state
greybus: arche-platform: Introduce FW_FLASHING state
greybus: arche-apb-ctrl: Re-arrange init sequence
greybus: arche-apb-ctrl: Rename init_seq and cleanup fn
greybus: arche-apb-ctrl: Set default state value to OFF
greybus: arche-apb-ctrl: Pass only platform_device to _seq fns
greybus: arche-apb-ctrl: Add sysfs to allow user to change state
greybus: arche-apb-ctrl: Introduce ara,init-disable property for APB
greybus: arche-apb-ctrl: Rename internal operational state fns
greybus: arche-apb-ctrl: Export operational fns from driver
greybus: arche-platform: Fix boot, poweroff and fw_flashing seq with APBs
greybus: arche-platform: Do not export any gpios
greybus: arche-apb-ctrl: Do not export any gpios
greybus: arche-platform: Control usb3613 from arche-platform
greybus: arche-apb-ctrl: Do not coldboot APBs in probe
greybus: arche-platform: Return immediately if in same state from state change fns
greybus: arche-platform: Avoid doing same thing again in poweroff fn
greybus: arche-apb-ctrl: Return immediately if in same state from state change fns
greybus: arche-platform: Fix exit path in probe fn
greybus: arche-apb-ctrl: Remove extra delay in APB reset
greybus: arche-platform: Convert delayed work to do only hub3613 configuration
greybus: arche-platform: Add wake detect state based on functionality
greybus: arche-platform: Enable interrupt support on wake/detect line
greybus: arche-platform: Assert wake/detect after SVC reset without delay
greybus: arche-platform: Set direction of wake/detect gpio in poweroff fn
greybus: arche-platform: Disable wake/detect interrupt in poweroff
greybus: arche-platform: Make sure APB power cycles on coldboot
greybus: arche-platform: Disable HUB3613 only in APB poweroff fn
greybus: arche-platfrom: Get rid of 2sec delay in USB3613 configuration
greybus: gpbridge: Add gpbridge driver init/exit helper macros
greybus: connection: export gb_connection_disable_rx() fn
greybus: Documentation: Add sysfs information about bridged-phy device
greybus: arche-platform: Rename spinlock variable lock => wake_detect_lock
greybus: arche-platform: Export fn to allow timesync driver to change the state
greybus: arche-platform: Do not assert wake/detect signal to SVC
greybus: arche-platform: Rename assert_wakedetect=>arche_platform_wd_irq_en
greybus: arche-platform: Make fw_flashing_seq() return error
greybus: arche-platform: Enter ACTIVE state only from OFF state
greybus: arche-platform: Enable SVC clock during FW_FLASHING state
greybus: svc: Pass the correct pointer to input_free_device()
greybus: ratelimit errors usually seen on unipro_reset
greybus: arche-platform: Add support for init-off feature
greybus: arche-apb-ctrl: Rename ara,init-disable => arche,init-disable
greybus: arche-platform: Reset SVC & APB only if turned off by SUSPEND_PREPARE
greybus: arche-platform: Add support for SPI bus sharing for Mihi

Viresh Kumar (410):
greybus: Fix parameters of core_param()
greybus: .gitignore: minor updates
greybus: gitignore: few more additions
greybus: manifest: no need to initialize 'result'
greybus: manifest: initialize variable during definition
greybus: manifest: don't free unallocated resources
greybus: Fix missing gb_protocol_exit() on gb_exit()
greybus: don't set ->dev.driver to NULL when it is already NULL
greybus: debug: mark debug messages with pr_debug() instead of printk
greybus: sysfs: generalize gb_module_attr() to capture more cases
greybus: module: free resources properly on failures
greybus: interface: free resources properly on failures
greybus: connection: free resources properly on failures
greybus: manifest: remove extra loop for finding module descriptor
greybus: manifest: improve print message
greybus: core: remove unnecessary braces
greybus: core: use 'drv' instead of dev->driver
greybus: operation: free resources in the reverse order of allocation
greybus: nullify dangling pointers
greybus: connection: try cancelling operations only if list isn't empty
greybus: manifest: make sure manifest_descs list is empty before parsing manifest
greybus: connection: fix duplicating naming in _gb_hd_connection_insert()
greybus: core: re-use gb_module_find() in gb_remove_module()
greybus: module: move gb_module_find() to a more logical location
greybus: module: move module specific code to module.c
greybus: interface: move gb_module_interface_init() to interface.c
greybus: ap: remove extra parameter to convert_ap_message()
greybus: ap: keep all svc function routines together
greybus: Pass '*ptr' to sizeof() wherever possible
greybus: ap: function_id is already set by svc_msg_alloc()
greybus: operation: don't complete operation twice
greybus: Random spell fixes
greybus: es1-ap-usb: don't use 'es1' after it is freed
greybus: Remove "-gb" suffix from .c files
greybus: Remove "gb-" prefix from .c files
greybus: uart: s/REQ/TYPE
greybus: create get_version() routines with the help of a macro
greybus: remove unused version-response structs
greybus: i2c: fix name conflict between function and struct: gb_i2c_transfer_response
greybus: i2c: fix name conflict between function and struct: gb_i2c_transfer_request
greybus: spi: add bridged-PHY spi protocol driver
greybus: spi:fix sparse warnings
greybus: gpb: Fix print mistakes
greybus: hid: add HID class driver
greybus: operation: s/status/result to match field name
greybus: operation: Fix comment mistake
greybus: interface: remove double underscore from fn name
greybus: core: place module_{init|exit}() right below the routines
greybus: hid: don't support OUTPUT report over interrupt channel
greybus: core: Don't initialize greybus if it is disabled
greybus: manifest: descriptor size should be >= header size
greybus: manifest: don't need to check for desc_size == 0 anymore
greybus: Greybus: Place module_init/exit() right after respective routines
greybus: interface: put module->dev on failures
greybus: kernel_ver.h: include <linux/kernel.h> to fix warning
greybus: Unregister devices to get them freed
greybus: interface: Fetch interface id instead of module id during setup
greybus: Add bundle descriptor type
greybus: hid: Use payload-size to get report size
greybus: bundle: Create bundles using bundle descriptors
greybus: bundle: Initialize all bundles on link-up
greybus: manifest: Use interface descriptor instead of module descriptor to get information
greybus: drop module descriptors
greybus: driver corresponds to a bundle, not interface
greybus: bundle: s/class_type/class
greybus: endo: Use a real endo id
greybus: endo: Rename endo's 'type' as 'id'
greybus: Explicitly mark structures as packed
greybus: manifest: Account for padding in string descriptor
greybus: manifest: Warn if descriptor size > expected size
greybus: manifest: Remove vendor, product and unique-id from interface descriptor
greybus: manifest: drop interface-version field
greybus: Remove class descriptor
greybus: Explicitly add pad-bytes to manifest descriptors
greybus: Move id-field before bundle-field in CPort Descriptor.
greybus: endo: Add code to validate Endo ID
greybus: endo: Create modules after validating Endo ID
greybus: raw: include uaccess.h to fix warning
greybus: gpio: fix tab/space mistake
greybus: spi: Move structure definitions into gpbridge.h
greybus: protocol: remove leading underscore from _gb_protocol_find()
greybus: connection: name routines consistently
greybus: endo: name routines consistently
greybus: interface: name routines consistently
greybus: module: name routines consistently
greybus: raw: move module_{init|exit} to the end of functions
greybus: gpbridge: rename gpb.c to gpbridge.c
greybus: protocol: Add gb_gpbridge_protocol_driver()
greybus: Use gb_gpbridge_protocol_init()
greybus: endo: Add missing '\n' sprintf() for sysfs files
greybus: operation: Remove unused variable 'buffer'
greybus: s/bundle_cport_id/intf_cport_id
greybus: Generate greybus wide unique ids for endo devices
greybus: Prefix module-id with endo id
greybus: Tear down devices in the reverse order
greybus: endo: Fix compilation warning
greybus: manifest: Allow bundles/connections list to be non-empty at manifest parsing
greybus: Add control protocol support
greybus: interface: Get manifest using Control protocol
greybus: hotplug function doesn't need to contain manifest now
greybus: connection: send [dis]connected events over control CPort
greybus: control: Warn if non-control cport/bundles have control protocol/classes
greybus: define more greybus classes
greybus: svc: Fix doc-style comment
greybus: svc: Use macro's for major/minor numbers
greybus: Rename gb_gpbridge_protocol_driver() as gb_builtin_protocol_driver()
greybus: control: Use gb_builtin_protocol_driver()
greybus: connection: bind protocol after the connection is operational
greybus: connection: intf_cport_id is local to an interface
greybus: svc: Drop svc_set_route_send()
greybus: interface: device_id belongs to the interface
greybus: bundles: remove gb_bundle(s)_init()
greybus: connection: Exit connection before destroying it
greybus: interface: Fix comment mistake (s/add/init)
greybus: connection: Use connection->dev for printing messages
greybus: svc: SVC is part of greybus core
greybus: svc: save pointer to struct gb_svc in struct gb_interface
greybus: Cleanup connection leftovers
greybus: connections: comment style fix
greybus: interface: drop stale comment
greybus: sync protocol and class definitions
greybus: protocol: move version_response structure to greybus_protocols.h
greybus: Define device ids for AP/SVC/modules
greybus: Define cport/bundle for SVC protocol
greybus: connection: don't send connected/disconnected events for SVC connection
greybus: connection: Create gb_connection_create_range() to specify hd-cport-id range
greybus: connection: Allow a bundle-less connection
greybus: interface: Update gb_create_control_connection() to support SVC protocol
greybus: svc: Add helpers to create AP<->SVC connection
greybus: svc: Implement SVC requests
greybus: svc: No need of a separate version request
greybus: svc: Fix build warning on 64bit systems
greybus: svc: fully initialize the partially initialized connection
greybus: svc: connection is created only once now
greybus: svc: remove interface->svc pointer
greybus: interface: localize gb_interface_destroy()
greybus: connection: compare hd_cport_id for matching SVC protocol
greybus: es1/2: Lets start using svc protocol
greybus: Switch to Cport 0 for svc and control protocol
greybus: get rid of old svc-protocol
greybus: es1: create svc connection early enough
greybus: remove svc_msg.h
greybus: initialize svc connection while creating hd
greybus: es1/2: Lets start using svc protocol
greybus: Switch to Cport 0 for svc and control protocol
greybus: get rid of old svc-protocol
greybus: es1: create svc connection early enough
greybus: remove svc_msg.h
greybus: initialize svc connection while creating hd
greybus: connection: remove special check for svc cport id
greybus: operation: Drop alignment attribute from operation message header
greybus: operation: Move operation header to greybus_protocols.h
greybus: svc: Move '{' to a new line in function definitions
greybus: raw: Print expected/actual payload size on mismatch
greybus: gpio: Print expected/actual payload size on mismatch
greybus: svc: Print expected/actual payload size on mismatch
greybus: svc: Handle hotplug request from a workqueue
greybus: sdio: error out only for smaller payloads received
greybus: hid: spell fix (s/infomation/information)
greybus: battery: Use (already defined) major/minor macros
greybus: gpio: Use (already defined) major/minor macros
greybus: hid: Use (already defined) major/minor macros
greybus: i2c: Use (already defined) major/minor macros
greybus: pwm: Use (already defined) major/minor macros
greybus: spi: Use (already defined) major/minor macros
greybus: uart: Use (already defined) major/minor macros
greybus: usb: Use (already defined) major/minor macros
greybus: vibrator: Use (already defined) major/minor macros
greybus: svc: Remove FIXME for firmware download
greybus: audio: Add '<' to the print message for short messages
greybus: svc: error out only for smaller payloads received
greybus: connection: disconnect connection on failures during initialization
greybus: define greybus wide protocol request numbers
greybus: connection: Save major/minor supported by module
greybus: connection: request protocol version before initializing connection
greybus: audio: Drop get_version support
greybus: battery: Drop get_version support
greybus: control: Drop get_version support
greybus: gpio: Drop get_version support
greybus: hid: Drop get_version support
greybus: i2c: Drop get_version support
greybus: loopback: Drop get_version support
greybus: pwm: Drop get_version support
greybus: raw: Drop get_version support
greybus: sdio: Drop get_version support
greybus: spi: Drop get_version support
greybus: uart: Drop get_version support
greybus: usb: Drop get_version support
greybus: vibrator: Drop get_version support
greybus: svc: preserve major/minor of protocol supported by SVC
greybus: protocol: Drop define_get_version support
greybus: protocol: Remove unnecessary params of gb_protocol_get_version()
greybus: interface: Preserve data received during hotplug event
greybus: protocol: Create request structure from within gb_protocol_get_version()
greybus: Add firmware protocol driver
greybus: connection: Send protocol version for firmware protocol
greybus: protocol: send own protocol version while requesting it
greybus: battery: Move request/response structure/definitions to greybus_protocols.h
greybus: hid: Move request/response structure/definitions to greybus_protocols.h
greybus: raw: Move request/response structure/definitions to greybus_protocols.h
greybus: connection: Destroy wq on failure
greybus: connection: Don't free resources freed by gb_connection_release()
greybus: Drop protocol specific _PROTOCOL_VERSION and _INVALID macros
greybus: operation: print message type on errors
greybus: loopback: Send some sensible data
greybus: loopback: Print error on data mismatch
greybus: operation: Fix wrong order of arguments
greybus: svc: get hd directly from connection
greybus: svc: Include system headers at the top
greybus: svc: reject invalid state requests
greybus: greybus_protocols: svc: Add missing comment
greybus: greybus_protocols: Pack structure as required by the module firmware
greybus: greybus_protocols: Pack all request/response structure
greybus: svc: No need to return errors from [gb_]svc_connection_destroy()
greybus: svc: Kill unnecessary wrapper functions
greybus: svc: unexport few internal functions
greybus: bundle: kill unnecessary forward declaration of routine
greybus: connection: staticize gb_connection_init()
greybus: connection: convert connected dev_warn() to dev_err()
greybus: connection: no need to verify connection->protocol
greybus: connection: Propagate error properly
greybus: connection: call gb_connection_exit() from gb_connection_destroy()
greybus: connection: protocol can be NULL in gb_connection_exit()
greybus: spi: Allow spi-core to allocate bus numbers dynamically
greybus: manifest: don't reject the interface on failing to initialize a cport
greybus: manifest: release cport descriptors to avoid 'excess descriptors' warning
greybus: connection: call gb_svc_connection_create() from gb_connection_init()
greybus: connection: destroy svc connection on connection exit or errors
greybus: connection: Call connection_destroy() from gb_connection_svc_connection_destroy()
greybus: Add flags to struct gb_protocol
greybus: svc: No need of per-direction route-create requests
greybus: svc: destroy the route on module hot-unplug
greybus: connection: Add sysfs 'ap_cport_id' file for connections
greybus: svc: Implement DME peer get/set attributes helpers
greybus: firmware: firmware's file name is 32 characters long
greybus: firmware: Fix incorrect firmware file's name
greybus: firmware: firmware image name has .tftf instead of .fw
greybus: firmware: Send AP-ready operation
greybus: Documentation: Update sysfs-bus-greybus
greybus: svc: Use 'dev' instead '&op->connection->dev'
greybus: svc: Allow consecutive hotplug events for the same module
greybus: svc: Read and clear module's boot status
greybus: interface: Pass interface pointer to gb_interface_remove()
greybus: interface: gb_interface_create() isn't called for existing interfaces
greybus: firmware: drop 'stage' from ready-to-boot request
greybus: firmware: Don't send control-disconnected event for firmware protocol
greybus: svc: skip setting flags for boot over unipro
greybus: bundle: fix double freeing of bundle structure
greybus: interface: fix double freeing of interface structure
greybus: module: fix double freeing of module structure
greybus: endo: move greybus_endo_setup() to endo.c
greybus: db3-platform: Use dev_info for success messages
greybus: es2: Send cport-id in wValue field to usb_control_msg()
greybus: es2: remove fake vendor/product ids
greybus: es1: Remove the (now) unused es1 driver
greybus: firmware: Fetch es2 VID/PID to distinguish module vendors
greybus: Documentation: Fix N-svc directory name
greybus: Documentation: Arrange entries in alphabetical order
greybus: svc: Use -EIO instead of -EINVAL for unipro errors
greybus: don't use %h and %hh for printing short and char variables
greybus: Prefix hexadecimal values with 0x while printing them
greybus: interface: Prefix hexadecimal values with '0x'
greybus: interface: Prefix DDBL1 attributes with ddbl1_ instead of unipro_
greybus: interface: Expose DDBL1 manufacturing and production id in sysfs
greybus: control: Use Macro's instead of direct values for major/minor
greybus: svc: Set interface's hotplug attributes before using them
greybus: interface: Receive serial-number on hotplug event
greybus: interface: Fetch and expose version of interface's firmware
greybus: arche-platform: arche_pdata is guaranteed to be valid
greybus: arche-platform: Export GPIOs after populating APBs
greybus: arche-platform: Put APB in reset if of_platform_populate() fails
greybus: arche-platform: svc_reset_gpio can't be invalid in arche_platform_cleanup()
greybus: arche-platform: propagate errors returned by gpiolib
greybus: arche-apb: Spelling and whitespace fixes
greybus: arche-apb: platform data 'apb' is guaranteed to be valid
greybus: arche-apb: Replace gpio_is_valid() with gpio < 0 checks
greybus: arche-apb: devm_regulator_get() doesn't return NULL
greybus: arche-apb: NULL is a valid regulator
greybus: arche-apb: Properly use dev_err/info/warn
greybus: arche-apb: Don't use gpio after failing to request it
greybus: arche-apb: Do cleanup within apb_ctrl_init_seq() for error cases
greybus: arche-apb: Drop unnecessary checks
greybus: arche: Remove unwanted headers and rearrange others
greybus: svc: Expose and retain VID/PID received from bootrom for ES2
greybus: audio_codec: Free gccodec on codec probe failure
greybus: audio_codec: Free gccodec on dia probe failure
greybus: audio_codec: convert to bundle driver
greybus: audio: Rename Audio class and remove the unused one
greybus: audio: Fix sparse warnings
greybus: control: Fix sparse warnings
greybus: connection: Fix sparse warnings around locking
greybus: raw: Use consistent label names in connection_init()
greybus: raw: Don't use (possibly) uninitialized raw->device in gb_raw_receive()
greybus: raw: convert to bundle driver
greybus: loopback: convert to bundle driver
greybus: lights: Break light setup into two parts
greybus: lights: convert to bundle driver
greybus: power_supply: Break supply setup into two parts
greybus: power_supply: convert to bundle driver
greybus: manifest: Parse cports (within a bundle) in the order from manifest blob
greybus: interface: Add print messages on interface initialization/removal
greybus: hid: Don't disable connection-tx before destroying hid-device
greybus: hid: Replace WARN_ON() with dev_err()
greybus: checkpatch.pl: Mark --no-tree as default option
greybus: firmware: Rename to bootrom protocol
greybus: bootrom: fix typo
greybus: audio-codec: Staticize few routines to fix build warnings
greybus: es2: Allow proper release of greybus host device
greybus: es2: disable cport-in after remove greybus host device
greybus: es2: don't protest when getting -ENOENT/ESHUTDOWN USB errors
greybus: es2: move ap_disconnect() below ap_probe()
greybus: arche-ctrl: Don't expose driver internals to arche-platform driver
greybus: Bundle: Initialize dma_mask for bundle device
greybus: firmware: Add firmware management bundle driver
greybus: firmware: Add firmware-download protocol driver
greybus: fw-download: Create a macro for length of firmware file's name
greybus: bootrom: Implement timeouts to detect Module failures
greybus: Revert "interface: Fetch and expose version of interface's firmware"
greybus: uart: Kill reference_count hack
greybus: fw-download: Manage firmware requests with kref
greybus: fw-download: Introduce timeouts for firmware downloads
greybus: bootrom: Implement timeouts to detect Module failures
greybus: fw-download: Replace timer with delayed-work
greybus: gpbridge: Expose protocol_id in sysfs
greybus: core: Rename greybus_module_match()
greybus: Fix probing of gpbridge devices
greybus: gpbridge: Export few routines
greybus: gpbridge: Create module_gpbridge_driver()
greybus: gpio: Create separate module
greybus: i2c : Create separate module
greybus: pwm: Create separate module
greybus: sdio: Create separate module
greybus: spi: Create separate module
greybus: uart: Create separate module
greybus: usb: Create separate module
greybus: gpbridge: Rename gb-phy.ko module
greybus: gpbridge: Remove (now) unused macro gb_gpbridge_builtin_driver()
greybus: Remove bridge PHY protocol specific classes
greybus: spi: Restructure spi.c to share it with other bundle drivers
greybus: spi: Separate out spilib from spi bridged PHY bundle driver
greybus: fw-management: Add firmware-management protocol driver
greybus: fw-management: Add ioctl to initiate mode-switch
greybus: fw-management: Free fw-mgmt only after all users are gone
greybus: firmware: Add SPI protocol support
greybus: Documentation: Document firmware-management interfaces
greybus: fw-management: Replace double-tabs with space for structures
greybus: fw-management: Fix 'make check' warnings
greybus: fw-management: Update header's license
greybus: fw-core: destroy connections on error
greybus: fw-management: Fix error message's text
greybus: Documentation/sysfs: Rename gpbridge to gbphy
greybus: Documentation/sysfs: gbphy0 is an invalid name
greybus: Remove unused VERSION specific macros
greybus: gbphy: Remove protocol specific version handling
greybus: fw-mgmt: Add hooks to do mode-switch
greybus: control: Mode-switch is a 'core' operation
greybus: interface: Mode switch takes over a second
greybus: Add comment about the mode_switch_started flag
greybus: pwm: Fix compilation with v4.3 kernel
greybus: bootrom: Compile as a separate module
greybus: core: Make greybus_match_one_id() return bool
greybus: Use BIT(2) for GREYBUS_ID_MATCH_CLASS
greybus: Remove legacy suspend/resume callbacks
greybus: hd: Export host device tracepoint from hd.c
greybus: connection: Avoid unnecessary line breaks
greybus: firmware: Fix spelling mistake
greybus: Remove extra blank lines
greybus: connection: Return bool from gb_connection_intf_find()
greybus: camera: Initialize mutex before using it
greybus: svc: disable connection after all its users are gone
greybus: manifest: Disallow reuse of control cport
greybus: firmware: Add license and copyright header to application
greybus: firmware: prefix char-device with 'gb-'
greybus: connection: add trace events before disabling connection
greybus: Revert "greybus: ratelimit errors usually seen on unipro_reset"
greybus: don't use spin_lock_irq()
greybus: uart: don't use spin_lock_irq()
greybus: es2.c: don't use spin_lock_irq()
greybus: gb_connections_lock: don't use spin_lock_irq()
greybus: bootrom: Enhance timeout error message
greybus: bootrom: send timeout in milliseconds to gb_bootrom_set_timeout()
greybus: bootrom: Wait for 10 seconds for mode-switch
greybus: kernel_ver: Add kstrtobool()
greybus: light: Initialize mutex before using it
greybus: Add Component Authentication Protocol support
greybus: Documentation: Document Authentication interfaces
greybus: es2: Fix 'make check' warnings with arpc
greybus: audio_topology: Fix compile warning
greybus: bootrom: Use "s2l" instead of boot stage in package name
greybus: interface: add power_state attribute
greybus: firmware: Improve test application
greybus: spilib: make spilib independent of gbphy
greybus: control: Print bundle-id in print messages
greybus: bootrom: Skip setting timeout in failure path of size request
greybus: bootrom: Don't print duplicate error messages
greybus: bootrom: Set timeout before sending AP_READY
greybus: bootrom: Create gb_bootrom_cancel_timeout()
greybus: bootrom: Rename download_firmware() as find_firmware()
greybus: firmware: Add runtime PM support
greybus: interface: Rename *_NO_PM as *_NO_BUNDLE_ACTIVATE
greybus: interface: Add quirk for no PM for S2 Loader
greybus: firmware: Add new status types for backend updated request
greybus: firmware: Add 'status' byte to backend fw version response
greybus: firmware: Update Documentation and sample application
greybus: firmware: use 'tag' instead of 'firmware_tag'
greybus: firmware: Fix typo in documentation
greybus: firmware: Remove extra parenthesis
greybus: firmware: s/_LEN/_SIZE
greybus: firmware: s/should/must
greybus: firmware: add comment to show size calculations

Vishal Bhoj (1):
greybus: build: android: avoid building for targets that don't have kernel binary

Documentation/ABI/testing/sysfs-bus-greybus | 275 +++
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
.../greybus/Documentation/firmware/authenticate.c | 139 ++
.../Documentation/firmware/firmware-management | 333 +++
drivers/greybus/Documentation/firmware/firmware.c | 262 +++
drivers/greybus/Kconfig | 219 ++
drivers/greybus/Makefile | 96 +
drivers/greybus/arche-apb-ctrl.c | 522 +++++
drivers/greybus/arche-platform.c | 828 +++++++
drivers/greybus/arche_platform.h | 39 +
drivers/greybus/arpc.h | 109 +
drivers/greybus/audio_apbridgea.c | 207 ++
drivers/greybus/audio_apbridgea.h | 156 ++
drivers/greybus/audio_codec.c | 1132 ++++++++++
drivers/greybus/audio_codec.h | 283 +++
drivers/greybus/audio_gb.c | 228 ++
drivers/greybus/audio_manager.c | 184 ++
drivers/greybus/audio_manager.h | 83 +
drivers/greybus/audio_manager_module.c | 258 +++
drivers/greybus/audio_manager_private.h | 28 +
drivers/greybus/audio_manager_sysfs.c | 102 +
drivers/greybus/audio_module.c | 482 +++++
drivers/greybus/audio_topology.c | 1442 +++++++++++++
drivers/greybus/authentication.c | 429 ++++
drivers/greybus/bootrom.c | 524 +++++
drivers/greybus/bundle.c | 253 +++
drivers/greybus/bundle.h | 90 +
drivers/greybus/camera.c | 1400 ++++++++++++
drivers/greybus/connection.c | 938 ++++++++
drivers/greybus/connection.h | 129 ++
drivers/greybus/control.c | 635 ++++++
drivers/greybus/control.h | 65 +
drivers/greybus/core.c | 361 ++++
drivers/greybus/debugfs.c | 31 +
drivers/greybus/devices | 11 +
drivers/greybus/es2.c | 1597 ++++++++++++++
drivers/greybus/firmware.h | 42 +
drivers/greybus/fw-core.c | 312 +++
drivers/greybus/fw-download.c | 465 ++++
drivers/greybus/fw-management.c | 721 +++++++
drivers/greybus/gb-camera.h | 127 ++
drivers/greybus/gbphy.c | 360 ++++
drivers/greybus/gbphy.h | 110 +
drivers/greybus/gpio.c | 767 +++++++
drivers/greybus/greybus.h | 154 ++
drivers/greybus/greybus_authentication.h | 120 ++
drivers/greybus/greybus_firmware.h | 120 ++
drivers/greybus/greybus_id.h | 26 +
drivers/greybus/greybus_manifest.h | 177 ++
drivers/greybus/greybus_protocols.h | 2268 ++++++++++++++++++++
drivers/greybus/greybus_trace.h | 531 +++++
drivers/greybus/hd.c | 257 +++
drivers/greybus/hd.h | 90 +
drivers/greybus/hid.c | 536 +++++
drivers/greybus/i2c.c | 343 +++
drivers/greybus/interface.c | 1316 ++++++++++++
drivers/greybus/interface.h | 88 +
drivers/greybus/light.c | 1359 ++++++++++++
drivers/greybus/log.c | 132 ++
drivers/greybus/loopback.c | 1365 ++++++++++++
drivers/greybus/manifest.c | 535 +++++
drivers/greybus/manifest.h | 16 +
drivers/greybus/module.c | 238 ++
drivers/greybus/module.h | 34 +
drivers/greybus/operation.c | 1239 +++++++++++
drivers/greybus/operation.h | 210 ++
drivers/greybus/power_supply.c | 1141 ++++++++++
drivers/greybus/pwm.c | 338 +++
drivers/greybus/raw.c | 381 ++++
drivers/greybus/sdio.c | 884 ++++++++
drivers/greybus/spi.c | 79 +
drivers/greybus/spilib.c | 565 +++++
drivers/greybus/spilib.h | 24 +
drivers/greybus/svc.c | 1486 +++++++++++++
drivers/greybus/svc.h | 109 +
drivers/greybus/svc_watchdog.c | 198 ++
drivers/greybus/timesync.c | 1357 ++++++++++++
drivers/greybus/timesync.h | 45 +
drivers/greybus/timesync_platform.c | 77 +
drivers/greybus/tools/.gitignore | 1 +
drivers/greybus/tools/Android.mk | 10 +
drivers/greybus/tools/Makefile | 31 +
drivers/greybus/tools/README.loopback | 198 ++
drivers/greybus/tools/lbtest | 168 ++
drivers/greybus/tools/loopback_test.c | 1000 +++++++++
drivers/greybus/uart.c | 1075 ++++++++++
drivers/greybus/usb.c | 247 +++
drivers/greybus/vibrator.c | 249 +++
89 files changed, 37594 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-bus-greybus
create mode 100644 drivers/greybus/Documentation/firmware/authenticate.c
create mode 100644 drivers/greybus/Documentation/firmware/firmware-management
create mode 100644 drivers/greybus/Documentation/firmware/firmware.c
create mode 100644 drivers/greybus/Kconfig
create mode 100644 drivers/greybus/Makefile
create mode 100644 drivers/greybus/arche-apb-ctrl.c
create mode 100644 drivers/greybus/arche-platform.c
create mode 100644 drivers/greybus/arche_platform.h
create mode 100644 drivers/greybus/arpc.h
create mode 100644 drivers/greybus/audio_apbridgea.c
create mode 100644 drivers/greybus/audio_apbridgea.h
create mode 100644 drivers/greybus/audio_codec.c
create mode 100644 drivers/greybus/audio_codec.h
create mode 100644 drivers/greybus/audio_gb.c
create mode 100644 drivers/greybus/audio_manager.c
create mode 100644 drivers/greybus/audio_manager.h
create mode 100644 drivers/greybus/audio_manager_module.c
create mode 100644 drivers/greybus/audio_manager_private.h
create mode 100644 drivers/greybus/audio_manager_sysfs.c
create mode 100644 drivers/greybus/audio_module.c
create mode 100644 drivers/greybus/audio_topology.c
create mode 100644 drivers/greybus/authentication.c
create mode 100644 drivers/greybus/bootrom.c
create mode 100644 drivers/greybus/bundle.c
create mode 100644 drivers/greybus/bundle.h
create mode 100644 drivers/greybus/camera.c
create mode 100644 drivers/greybus/connection.c
create mode 100644 drivers/greybus/connection.h
create mode 100644 drivers/greybus/control.c
create mode 100644 drivers/greybus/control.h
create mode 100644 drivers/greybus/core.c
create mode 100644 drivers/greybus/debugfs.c
create mode 100644 drivers/greybus/devices
create mode 100644 drivers/greybus/es2.c
create mode 100644 drivers/greybus/firmware.h
create mode 100644 drivers/greybus/fw-core.c
create mode 100644 drivers/greybus/fw-download.c
create mode 100644 drivers/greybus/fw-management.c
create mode 100644 drivers/greybus/gb-camera.h
create mode 100644 drivers/greybus/gbphy.c
create mode 100644 drivers/greybus/gbphy.h
create mode 100644 drivers/greybus/gpio.c
create mode 100644 drivers/greybus/greybus.h
create mode 100644 drivers/greybus/greybus_authentication.h
create mode 100644 drivers/greybus/greybus_firmware.h
create mode 100644 drivers/greybus/greybus_id.h
create mode 100644 drivers/greybus/greybus_manifest.h
create mode 100644 drivers/greybus/greybus_protocols.h
create mode 100644 drivers/greybus/greybus_trace.h
create mode 100644 drivers/greybus/hd.c
create mode 100644 drivers/greybus/hd.h
create mode 100644 drivers/greybus/hid.c
create mode 100644 drivers/greybus/i2c.c
create mode 100644 drivers/greybus/interface.c
create mode 100644 drivers/greybus/interface.h
create mode 100644 drivers/greybus/light.c
create mode 100644 drivers/greybus/log.c
create mode 100644 drivers/greybus/loopback.c
create mode 100644 drivers/greybus/manifest.c
create mode 100644 drivers/greybus/manifest.h
create mode 100644 drivers/greybus/module.c
create mode 100644 drivers/greybus/module.h
create mode 100644 drivers/greybus/operation.c
create mode 100644 drivers/greybus/operation.h
create mode 100644 drivers/greybus/power_supply.c
create mode 100644 drivers/greybus/pwm.c
create mode 100644 drivers/greybus/raw.c
create mode 100644 drivers/greybus/sdio.c
create mode 100644 drivers/greybus/spi.c
create mode 100644 drivers/greybus/spilib.c
create mode 100644 drivers/greybus/spilib.h
create mode 100644 drivers/greybus/svc.c
create mode 100644 drivers/greybus/svc.h
create mode 100644 drivers/greybus/svc_watchdog.c
create mode 100644 drivers/greybus/timesync.c
create mode 100644 drivers/greybus/timesync.h
create mode 100644 drivers/greybus/timesync_platform.c
create mode 100644 drivers/greybus/tools/.gitignore
create mode 100644 drivers/greybus/tools/Android.mk
create mode 100644 drivers/greybus/tools/Makefile
create mode 100644 drivers/greybus/tools/README.loopback
create mode 100755 drivers/greybus/tools/lbtest
create mode 100644 drivers/greybus/tools/loopback_test.c
create mode 100644 drivers/greybus/uart.c
create mode 100644 drivers/greybus/usb.c
create mode 100644 drivers/greybus/vibrator.c