History log of /linux-master/drivers/staging/greybus/Makefile
Revision Date Author Comments
# c9a57edd 09-Jul-2020 Vaibhav Agarwal <vaibhav.sr@gmail.com>

staging: greybus: audio: Enable GB codec, audio module compilation.

Currently you can't enable the Gey Bus Audio Codec because there is no
entry for it in the Kconfig file. Originally the config name was going
to be AUDIO_MSM8994 but that's not correct because other types of
hardware are supported now. I have chosen the name AUDIO_APB_CODEC
instead. Also I had to update the dependencies for GREYBUS_AUDIO to
make the compile work.

Signed-off-by: Vaibhav Agarwal <vaibhav.sr@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/2b50959ccffe5a4372880d27e79ef3be1873372c.1594290158.git.vaibhav.sr@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 510e340e 09-Jul-2020 Vaibhav Agarwal <vaibhav.sr@gmail.com>

staging: greybus: audio: Add helper APIs for dynamic audio modules

Greybus Codec driver allows modules to be dynamically added and removed,
which further requires updating the DAPM configurations as well.

With current snd_soc architecture, dynamic audio modules is not yet
supported. This patch provides helper APIs to update DAPM configurations
in response to modules which are dynamically added or removed. The
source is primarily based on snd_dapm.c

Signed-off-by: Vaibhav Agarwal <vaibhav.sr@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/35e1baaae10a3f2162e71be4c2f75a701584f0e6.1594290158.git.vaibhav.sr@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# b81beec9 24-Aug-2019 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

staging: greybus: move es2 to drivers/greybus/

The es2 Greybus host controller has long been stable, so move it out of
drivers/staging/ to drivers/greybus/

Cc: Johan Hovold <johan@kernel.org>
Cc: greybus-dev@lists.linaro.org
Cc: linux-kernel@vger.kernel.org
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Alex Elder <elder@kernel.org>
Link: https://lore.kernel.org/r/20190825055429.18547-10-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 8465def4 24-Aug-2019 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

staging: greybus: move the greybus core to drivers/greybus

The Greybus core code has been stable for a long time, and has been
shipping for many years in millions of phones. With the advent of a
recent Google Summer of Code project, and a number of new devices in the
works from various companies, it is time to get the core greybus code
out of staging as it really is going to be with us for a while.

Cc: Johan Hovold <johan@kernel.org>
Cc: linux-kernel@vger.kernel.org
Cc: greybus-dev@lists.linaro.org
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Alex Elder <elder@kernel.org>
Link: https://lore.kernel.org/r/20190825055429.18547-9-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# b2441318 01-Nov-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

License cleanup: add SPDX GPL-2.0 license identifier to files with no license

Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.

By default all files without license information are under the default
license of the kernel, which is GPL version 2.

Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.

This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.

How this work was done:

Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,

Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.

The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.

The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.

Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if <5
lines).

All documentation files were explicitly excluded.

The following heuristics were used to determine which SPDX license
identifiers to apply.

- when both scanners couldn't find any license traces, file was
considered to have no license information in it, and the top level
COPYING file license applied.

For non */uapi/* files that summary was:

SPDX license identifier # files
---------------------------------------------------|-------
GPL-2.0 11139

and resulted in the first patch in this series.

If that file was a */uapi/* path one, it was "GPL-2.0 WITH
Linux-syscall-note" otherwise it was "GPL-2.0". Results of that was:

SPDX license identifier # files
---------------------------------------------------|-------
GPL-2.0 WITH Linux-syscall-note 930

and resulted in the second patch in this series.

- if a file had some form of licensing information in it, and was one
of the */uapi/* ones, it was denoted with the Linux-syscall-note if
any GPL family license was found in the file or had no licensing in
it (per prior point). Results summary:

SPDX license identifier # files
---------------------------------------------------|------
GPL-2.0 WITH Linux-syscall-note 270
GPL-2.0+ WITH Linux-syscall-note 169
((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) 21
((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 17
LGPL-2.1+ WITH Linux-syscall-note 15
GPL-1.0+ WITH Linux-syscall-note 14
((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) 5
LGPL-2.0+ WITH Linux-syscall-note 4
LGPL-2.1 WITH Linux-syscall-note 3
((GPL-2.0 WITH Linux-syscall-note) OR MIT) 3
((GPL-2.0 WITH Linux-syscall-note) AND MIT) 1

and that resulted in the third patch in this series.

- when the two scanners agreed on the detected license(s), that became
the concluded license(s).

- when there was disagreement between the two scanners (one detected a
license but the other didn't, or they both detected different
licenses) a manual inspection of the file occurred.

- In most cases a manual inspection of the information in the file
resulted in a clear resolution of the license that should apply (and
which scanner probably needed to revisit its heuristics).

- When it was not immediately clear, the license identifier was
confirmed with lawyers working with the Linux Foundation.

- If there was any question as to the appropriate license identifier,
the file was flagged for further research and to be revisited later
in time.

In total, over 70 hours of logged manual review was done on the
spreadsheet to determine the SPDX license identifiers to apply to the
source files by Kate, Philippe, Thomas and, in some cases, confirmation
by lawyers working with the Linux Foundation.

Kate also obtained a third independent scan of the 4.13 code base from
FOSSology, and compared selected files where the other two scanners
disagreed against that SPDX file, to see if there was new insights. The
Windriver scanner is based on an older version of FOSSology in part, so
they are related.

Thomas did random spot checks in about 500 files from the spreadsheets
for the uapi headers and agreed with SPDX license identifier in the
files he inspected. For the non-uapi files Thomas did random spot checks
in about 15000 files.

In initial set of patches against 4.14-rc6, 3 files were found to have
copy/paste license identifier errors, and have been fixed to reflect the
correct identifier.

Additionally Philippe spent 10 hours this week doing a detailed manual
inspection and review of the 12,461 patched files from the initial patch
version early this week with:
- a full scancode scan run, collecting the matched texts, detected
license ids and scores
- reviewing anything where there was a license detected (about 500+
files) to ensure that the applied SPDX license was correct
- reviewing anything where there was no detection but the patch license
was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied
SPDX license was correct

This produced a worksheet with 20 files needing minor correction. This
worksheet was then exported into 3 different .csv files for the
different types of files to be modified.

These .csv files were then reviewed by Greg. Thomas wrote a script to
parse the csv files and add the proper SPDX tag to the file, in the
format that the file expected. This script was further refined by Greg
based on the output to detect more types of files automatically and to
distinguish between header and source .c files (which need different
comment types.) Finally Greg ran the script using the .csv files to
generate the patches.

Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 2eccd4aa 16-May-2017 Johan Hovold <johan@kernel.org>

staging: greybus: enable compile testing of arche driver

Add Arche platform-driver config option and allow the driver to be
compile tested also without the out-of-tree usb3613 driver.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# bdfb95c4 05-Jan-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

staging: greybus: remove timesync protocol support

While the timesync protocol was a great idea, it never ended up getting
implemented by any known hardware devices. It's also a bit
"interesting" in how it ties into the platform controller.

So, just remove it for now. It's not needed, no one uses it, and it's a
stumbling block in getting the greybus core code merged out of the
staging tree. If anyone wants it in the future, reverting this patch is
a great place to start from.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Alex Elder <elder@kernel.org>
Acked-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# b04f56c6 08-Sep-2016 Rui Miguel Silva <rui.silva@linaro.org>

staging: greybus: makefile: fix dependency of spi to spilib

Greybus SPI driver depends on gb-spilib and we need to state that at
makefile to make it link correctly.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# d4f56b47 19-Sep-2016 Greg Kroah-Hartman <gregkh@google.com>

staging: greybus: Add drivers/staging/greybus to the build

This adds a proper Kconfig file for drivers/staging/greybus and fixes up
the Makefile to work correctly within the kernel build system (modules
depend on the .config options, etc.)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# e3eda54d 30-Jun-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: Add Component Authentication Protocol support

This patch adds Component Authentication Protocol support in greybus.
The purpose of the CAP protocol is to authenticate the Module hardware,
and it can only be used when it is present as part of the
firmware-management bundle, on a separate CPort.

Compile tested only.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Jun Li <li_jun@projectara.com>
Tested-by: Jun Li <li_jun@projectara.com>
Signed-off-by: Alex Elder <elder@linaro.org>


# c0e65d02 24-Jun-2016 Joel Porquet <porquet_joel@projectara.com>

greybus: add support for the log protocol

Add support for the new Log class/protocol. This protocol allows modules
to send their internal logging messages to the AP in order to make
module debugging easier.

The protocol is, for now, composed a single module-initiated request.
This request contains a message and associated length. The message is
integrated in the kernel log with dev_dbg(). In order to be displayed
with 'dmesg', the following command needs to be entered first:

$ echo "file log.c +p" > /sys/kernel/debug/dynamic_debug/control

The major portion of this file was initially written by Greg KH.

Signed-off-by: Joel Porquet <porquet_joel@projectara.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# aa62b5e4 09-Jun-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: bootrom: Compile as a separate module

User space doesn't break anymore with new greybus modules and its time
to make bootrom a separate module.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 970dc85b 05-Jun-2016 Bryan O'Donoghue <bryan.odonoghue@linaro.org>

greybus: timesync: Add timesync core driver

This patch adds the core timesync functionality.

0. arche-platform.c/arche-apb-ctrl.c
Modifies the platform layer to hook the incoming TIME_SYNC signal up to
the timesync strobe IRQ handler. If the arche-platform driver can't
satisfy the request for the wake-detect line, it will return -EAGAIN and
the calling work-queue must reschedule the attempt to get exclusive
access to the wake-detect pin logic. A private data field is added to
the arche-platform driver to enable passing of a timesync pointer to the
ISR responsible for synchronizing time.

1. timesync.c
A new file added which contains all of the logic associated with sending
greybus commands to SVC, APBx or Interfaces to enable, disable and
disseminate timing information.

2. timesync_platform.c
Any platform/arch specific code goes into timesync_platform.c.
Originally the idea was to keep the x86 and ARM arch dependencies in a
timesync_platform_arch.c file - however with further refinement that's
currently not necessary however just-in-case it becomes necessary to
resuscitate arch or platform specific methods for accessing timer
resources that access shouldn't be part of the core timesync.c logic and
so for the moment we access these timer resources through a thin access
layer in timesync_platform.c. Expect this to go away long term ideally.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Acked-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 038405db 20-May-2016 David Lin <dtwlin@google.com>

greybus: legacy: remove protocol.o from the makefile

Commit 0917cba11 ("legacy: remove legacy driver support")
removed protocol.c, however, the corresponding target in the Makefile
was not removed therefore broken the build.

Testing Done:
- Build & boot on EVT1.5

Signed-off-by: David Lin <dtwlin@google.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 428888a2 20-May-2016 David Lin <dtwlin@google.com>

greybus: legacy: remove legacy driver support

This patch removes the greybus legacy driver support

Signed-off-by: David Lin <dtwlin@google.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# e54b106d 19-May-2016 Sandeep Patil <patil_sandeep@projectara.com>

greybus: gpbridge: rename 'gpbridge' to 'gbphy' everywhere

The 'gpbridge' name didn't relaly reflect what the bus is; which
is a bus for bridged-phy devices. So, rename all instances
of 'gpbridge' to more appropriate 'gbphy'

Testing Done:
Build and boot tested. 'lsgb' will stop displaying 'GPBridge' devices
until I change the library to reflect this change.

Signed-off-by: Sandeep Patil <patil_sandeep@projectara.com>
Suggested-by: Greg Kroah-Hartman <gregkh@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 013e6653 14-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: fw-management: Add firmware-management protocol driver

This patch adds Firmware Management Protocol support to firmware core,
which allows the AP to manage firmware on an Interface.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Jun Li <li_jun@projectara.com>
Tested-by: Karthik Ravi Shankar <karthikrs@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 8888b963 14-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: spi: Separate out spilib from spi bridged PHY bundle driver

spilib can be used by multiple bridge drivers implementing different
bundle classes. Separate out bridged PHY bundle drivers parts.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 4c412921 14-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: spi: Restructure spi.c to share it with other bundle drivers

This patch restructures spi.c as spilib core, so that the same logic can
be reused for SPI connections implemented as part of different bundle
types. This is required for Firmware Management Bundle.

Note that the 'struct gb_protocol' and its callback aren't moved to
a separate file in this commit to make its reviews easier. That will be
done by a following patch.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# a4b9a098 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: gpbridge: Rename gb-phy.ko module

Rename gb-phy.ko module as gb-gpbridge.ko.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# ea7c4777 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: usb: Create separate module

Create separate module for usb gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 66b9e09e 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: uart: Create separate module

Create separate module for uart gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# bebc013b 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: spi: Create separate module

Create separate module for spi gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 3d64730e 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: sdio: Create separate module

Create separate module for sdio gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# dca8060d 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: pwm: Create separate module

Create separate module for pwm gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# d6046b44 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: i2c : Create separate module

Create separate module for i2c gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 7c0925eb 09-May-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: gpio: Create separate module

Create separate module for gpio gpbridge driver.

Tested on EVT 1.5 by inserting GP test module, all the devices were
enumerated correctly.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# cca22207 27-Apr-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: firmware: Add firmware-download protocol driver

This patch adds Firmware Download Protocol support to firmware core,
which allows an Interface to download a firmware package over Unipro.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Jun Li <li_jun@projectara.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 9e04fb7b 25-Apr-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: firmware: Add firmware management bundle driver

All firmware packages on the Modules or Interfaces are now managed by a
special Firmware Management Protocol. The Interface Manifest shall
at least contain the Firmware Management Bundle and a Firmware
Management Protocol CPort within it.

The bundle may contain additional CPorts based on the extra
functionality required to manage firmware packages.

For example, this is how the Firmware Management Bundle of the Interface
Manifest may look like:

; Firmware Management Bundle (Bundle 1):
[bundle-descriptor 1]
class = 0x16

; (Mandatory) Firmware Management Protocol on CPort 1
[cport-descriptor 1]
bundle = 1
protocol = 0x18

; (Optional) Firmware Download Protocol on CPort 2
[cport-descriptor 2]
bundle = 1
protocol = 0x17

; (Optional) SPI protocol on CPort 3
[cport-descriptor 3]
bundle = 1
protocol = 0x0b

; (Optional) Component Authentication Protocol (CAP) on CPort 4
[cport-descriptor 4]
bundle = 1
protocol = 0xXX //TBD

This patch adds the basic firmware-management bundle driver, which just
creates a firmware-management connection. Support for individual
protocols will be added separately.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 2b8c2b51 21-Apr-2016 Vaibhav Agarwal <vaibhav.agarwal@linaro.org>

greybus: audio: Changes in response to ASoC cleanup

Update Makefile in response to SND_SOC_DYNAMIC_DAILINK cflag
removal.

Update files for msm-dynamic-dailink.h header file removal.

Update in response to API name changes. Also, acquire sound card
controls_rwsem before adding kcontrols to avoid deadlock.

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# b15d97d7 23-Apr-2016 Johan Hovold <johan@kernel.org>

greybus: core: add module abstraction

Add Greybus module abstraction that will be used to implement controlled
module removal (eject) and represent module geometry.

Greybus module devices correspond to physical modules and have one or
more interfaces. Modules have an id that is identical to the id of their
primary interface, which in turn is the interface with lowest numbered
id. The module name is constructed from the bus and module id:

<bus_id>-<module_id>

Interfaces, bundles, and control devices are consequently renamed as

<bus_id>-<module_id>.<interface_id>
<bus_id>-<module_id>.<interface_id>.<bundle_id>
<bus_id>-<module_id>.<interface_id>.ctrl

As before, interface ids (and therefore in a sense now also module ids)
correspond to physical interface positions on the frame.

Modules have the following attributes:

module_id
num_interfaces

where module_id is the id of the module and num_interface the number of
interfaces the module has.

Note that until SVC module-size detection has been implemented, all
interfaces are considered to be part of 1x2 modules. Specifically, the
two interfaces of a 2x2 module will be presented as two 1x2 modules for
now.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 5a53e02e 02-Apr-2016 Viresh Kumar <viresh.kumar@linaro.org>

greybus: firmware: Rename to bootrom protocol

Align with Greybus specifications and rename Firmware Protocol driver as
Bootrom Protocol driver.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 5793227c 29-Mar-2016 Vaibhav Agarwal <vaibhav.agarwal@linaro.org>

greybus: audio: Add module specific driver

Use seperate driver to process GB Audio modules plugged-in.
It'll use helper function register_module to attach itself
to gbaudio-codec driver.

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: Mark Greer <mark.greer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 7d0493d1 15-Feb-2016 Greg Kroah-Hartman <gregkh@google.com>

greybus: only build arche platform driver if usb3613 is enabled

The build is broken if you try to build the arche platform driver
without the usb3163 driver enabled at the same time, so specify that
dependency in the greybus Makefile.

Testing done: built inside and outside of the build system against
many different kernel versions.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Michael Scott <michael.scott@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 7030f924 25-Jan-2016 Greg Kroah-Hartman <gregkh@google.com>

greybus: camera: only build module against msm kernel

The camera driver currently does not build against anything other than
the msm kernel, due to cross-dependancies, so enable that here so that
we can build against other kernels without failing the build.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Tested-by: Marti Bolivar <mbolivar@leaflabs.com>
Acked-by: Laurent Pinchart <laurent.pinchart@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# ed7279ae 20-Jan-2016 Greg Kroah-Hartman <gregkh@google.com>

greybus: svc: add a "watchdog" to check the network health

Now that we have a svc ping command, let's add a watchdog to call it
every so often (1 second at the moment.) If it finds something went
wrong, post a stern message to the kernel log and call:
start unipro_reset
to reset the whole greybus hardware subsystem.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 5dda7e5a 18-Jan-2016 Johan Hovold <johan@kernel.org>

greybus: legacy: add legacy-protocol bundle driver

Add the first Greybus bundle driver that will be used when transitioning
from legacy Greybus protocols to bundle drivers.

The legacy-protocol driver initially binds to all current bundle classes.

In order to avoid having to update current module-loading scripts, keep
this driver internal to greybus core at least until modalias support is
added. Note that this prevents unloading any protocol drivers without
first tearing down the host device due to a circular module dependency.

Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 6339d232 13-Jan-2016 Vaibhav Agarwal <vaibhav.agarwal@linaro.org>

greybus: audio: Add topology parser for GB codec

For each GB codec module inserted, DAPM widgets, kcontrols, routes
and DAIs can be fetched through greybus in a binary chunk and parsed
locally to create & populate DAPM graph for the specific module.

It is required by each codec module to populate a minimum set of
kcontrols with fixed names to support basic audio usecase.
To support advanced features of codec module, the same can be polpulated
with existing topology parser. However, to use them for different usecase
separate mechanism (may be via MSP) is required to inform userspace about
their configuration value & enable/disable sequence.

ToDos:
Currently, support for enumerated kcontrol/dapm control is hardcoded.
Need to add complete logic within the parser.

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 86a685dd 13-Jan-2016 Greg Kroah-Hartman <gregkh@google.com>

greybus: Makefile: fix up build test for gb-audio-codec.ko

We really only want to build the module if the config is set, not all
the time like the current code does.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 7885342c 13-Jan-2016 Vaibhav Agarwal <vaibhav.agarwal@linaro.org>

greybus: audio: Build audio module conditionally

Added CONFIG_XXX flag check before compiling audio module.
Once we add dynamic DAI link registration from audio driver,
this check wil be required to avoid compilation failures with
other kernel revisions.

Also, renamed header file to better align with .c file name.

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 8db00736 13-Jan-2016 Svetlin Ankov <ankov_svetlin@projectara.com>

greybus: audio: Add Audio Manager

This is a simple module that keeps a list of connected GB audio
modules.

Whenever a device is attached, an appropriate uevent is sent to
userspace:

UDEV [4941.803215] add /kernel/gb_audio_manager/0 (gb_audio_manager)
ACTION=add
CPORT=99
DEVICES=0x10
DEVPATH=/kernel/gb_audio_manager/0
NAME=naim
PID=64
SEQNUM=1828
SLOT=2
SUBSYSTEM=gb_audio_manager
USEC_INITIALIZED=802416
VID=128

And whenever removed:

UDEV [4941.836588] remove /kernel/gb_audio_manager/0 (gb_audio_manager)
ACTION=remove
DEVPATH=/kernel/gb_audio_manager/0
SEQNUM=1833
SUBSYSTEM=gb_audio_manager
USEC_INITIALIZED=835681

The API consists of functions for adding, removing and inspecting
added device module descriptions (struct gb_audio_module):

int gb_audio_manager_add(struct gb_audio_module_descriptor *desc);
int gb_audio_manager_remove(int id);
int gb_audio_manager_remove_all(void);
struct gb_audio_module* gb_audio_manager_get_module(int id);
void gb_audio_manager_put_module(struct gb_audio_module *module);
int gb_audio_manager_dump_module(int id);
void gb_audio_manager_dump_all(void);

Devices can be inspected through sysfs in /sys/kernel/gb_audio_manager/{id}/*

If GB_AUDIO_MANAGER_SYSFS is exported as 'true', managing devices can be done
via the SYSFS as well. For instance:

echo name=naim slot=2 vid=128 pid=64 cport=99 devices=0x10 > /sys/kernel/gb_audio_manager/add
echo all > /sys/kernel/gb_audio_manager/dump
echo 2 > /sys/kernel/gb_audio_manager/dump
echo 2 > /sys/kernel/gb_audio_manager/remove

Signed-off-by: Svetlin Ankov <ankov_svetlin@projectara.com>
Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 4dbf5056 13-Jan-2016 Mark Greer <mgreer@animalcreek.com>

greybus: audio: Add direct audio streaming control for APBridgeA

The latest audio architecture does not stream audio data over the
USB link between the AP and APBridgeA. Instead, audio data is
streamed directly over the I2S link between the two.

To support the Greybus audio driver in setting up the I2S port and
controling packeting/depacketizing of audio data to/from Greybus
audio messages, define a set of commands and their parameters.
These commands and parameters will be placed into a request and sent
over the USB control channel to APBridgeA. A corresponding driver
on APBridgeA will receive and process the requests.

Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 184992e3 13-Jan-2016 Mark Greer <mgreer@animalcreek.com>

greybus: audio: Add Greybus Audio Device Class Protocol helper routines

Add helper routines to make communicating with audio modules easier.

Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# fd8f9e12 13-Jan-2016 Mark Greer <mgreer@animalcreek.com>

greybus: audio: Use underscore in file name

For consistency with most other files in the Greybus repository,
change 'audio-codec.c' to use an underscore instead of a hyphen
in its name.

Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 14006ab2 13-Jan-2016 Rui Miguel Silva <rui.silva@linaro.org>

greybus: makefile: add requirement for CONFIG_INPUT

To support key events coming from the svc (ara key) it is needed to add
the input core as an required config option.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 1e5dd1f8 30-Dec-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: arche-platform: merge arche-apb-ctrl and arche-platform

No need to have two separate arche platform drivers, that's just crazy,
so merge them both together to be only one kernel module.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Tested-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>


# 5a781787 16-Dec-2015 Vaibhav Hiremath <vaibhav.hiremath@linaro.org>

greybus: arche-apb-ctrl: Add APB control driver

It was messy to integrate both SVC, APB (and any other arche
platform specific control) into one single driver. Especially
due to cross-dependency.

AP first needs to bringup SVC, as SVC should enable clock to APB.
APB should come up before HUB, as due to some reason HUB wouldn't
enumerate APB's is APB comes up later.
And on top of that we should have clean picture of hardware description
in DT file.

So this patch introduces APB control driver. Mostly copied from original
arche-platform driver + fixed boot sequence.

Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 7fa60654 16-Dec-2015 Vaibhav Hiremath <hiremath_vaibhav@projectara.com>

greybus: arche-platform: Rename db3-platform to arche-platform

With multiple platforms getting rolled into ara,
db3 name is confusing. And this driver is applicable
to all arche platforms, so make sense to rename it to
arche-platform.c. Also rename all internal functions
accordingly.

Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 70b3b3e7 17-Dec-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: tools: don't always build them.

This breaks the kernel-only build as it can't find any userspace headers
with the cross-compiler, so don't build the tools by "default" unless
you ask for them.

Reported-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 6b0658f6 15-Dec-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: tools: Add tools directory to greybus repo and add loopback

Move the loopback test to the greybus main repo, as we will be adding
more tests over time and it doesn't need to be burried in the gbsim
repo.

This moves the latest version from gbsim to this repo and fixes up the
Makefile to be a bit more "smart" when building the code.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 3265edaf 14-Dec-2015 Laurent Pinchart <laurent.pinchart@ideasonboard.com>

greybus: Add driver for the camera class protocol

Integration with the V4L2 camera drivers isn't available yet, a debugfs
interface is exposed instead to call the camera Greybus operations.

The debugfs interface will be kept for module testing purpose in order
to exercise all the protocol operations with various valid and invalid
parameters.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 0f37860d 25-Nov-2015 Johan Hovold <johan@kernel.org>

greybus: kill the endo

Remove the now unused endo and module code.

Note that the never-implemented serial and version attributes of the
endo can be implemented as svc attributes if needed.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# d3d2af51 23-Nov-2015 Vaibhav Agarwal <vaibhav.agarwal@linaro.org>

greybus: Audio: Add skeleton code for GB virtual codec driver

This patch adds gb-codec driver with static information for
DAPM widgets, controls & dapm_routes.

Including some changes in kernel code(machine driver):
- Able to register codec and glue it with existing sound card successfully.
- Able to view & modify mixer controls:
(volume/mute[left/right][input/output])
- Able to view DAPM widgets registered via /debug interface.
- Able to establish DAPM path for playback.

Since, FE<->BE path not yet verified with default jetson build,
registering GB DAI as normal DAI link to verify GB virtual codec
specific DAPM path.

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# e3c25930 12-Nov-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: es1: Remove the (now) unused es1 driver

This was used by gbsim earlier, but not anymore. Lets remove it.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 783e373a 12-Nov-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: makefile: add power_supply config check

Add check for POWER_SUPPLY config option to guarantee that it is enabled.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 46488841 12-Nov-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: battery: move battery file to power_supply

Rename the battery.c to power_supply.c and update the makefile as the
Greybus protocol is being renamed from battery to power_supply.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# c9e9de26 04-Nov-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: hid: hid should not be part of the bridged-phy driver.

HID is a stand-alone greybus protocol, not part of the bridged-phy
protocols, so make it a stand-alone kernel module.

Note, some hard-coded android init script might need to be changed to
load the gb-hid.ko kernel module now.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>


# ddc88eff 04-Nov-2015 Mark Greer <mgreer@animalcreek.com>

greybus: audio: Remove I2S Bridged-PHY Protcol based audio driver

The Greybus I2S Bridged-PHY Protocol is now deprecated so remove
the audio driver that is based on it.

CC: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 7bc6faac 03-Nov-2015 Johan Hovold <johan@kernel.org>

greybus: create host-device compilation unit

Move everything host-device related to hd.c and hd.h.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# d517f274 21-Oct-2015 Vaibhav Hiremath <vaibhav.hiremath@linaro.org>

greybus: platform: Add platform driver for DB3 AP bridge

With DB3, we now have AP as a master as far as AP bridges are concerned.
SVC will talk only to AP and AP will control bridges; unlike other
module interfaces.

So AP supposed to manage/control bridges in all power states including
power on reset.

During power on reset AP should follow below sequence -

Sequence (treated as a Cold Boot)

Stage-1
=======
AP:
- Power On (Power up from PMIC to AP)
- AP start booting
Since power to AP bridges are controlled through gpio, power is gated
to APB1 & 2
No ref_clk to APB available (under SVC's control)
- AP configures USB hub to enable HSIC interface to APB
- As part of platform driver probe, AP follow below sequence
- Set the pinctrl in default state
- Hold APBs in reset by pulling down reset pin
- Enable power to APB by enabling regulator and switches
- De-assert (set 'low') 'boot_ret' signal
- AP will assert (set 'high') the wake_detect signal, triggering
connect/detect event to the SVC
- AP waits for wake pulse from SVC

SVC:
- Power On (power up from PMIC to SVC)
- SVC starts booting
- SVC will de-assert reset signal to unipro switch
- Switch starts booting
- SVC confirms switch boot status using SPI (or something)
- SVC waits for 300 msec (ES2 known issue)
- SVC waits for detect/connect event from AP

Stage-2
=======
SVC:
- ON connect/detect event, SVC send back wake pulse (cold boot)
to AP over wake_detect pin, if SVC boot is completed.

AP:
- On wake pulse from SVC (for cold boot), AP de-asserts (set high')
reset signal to APB 1 and/or 2
- Bridges starts booting
- Eventually Unipro linkup occurs

Testing:

- Build tested against Helium kernel
- Due to unavailability of MSM and DB3 platform, only minimal testing
has been done.
- Code has been modified for validation on Helium + SDB platform.
Mostly dts changes for gpio numbers
And debug messages to check gpio values
- On Helium + SDB platform, with addition of debug messages validated
the sequence.

TODO list:

- Currently _only_ supports power on sequence (cold boot).
Both warm and cold boot support. Cold and Warm boot is
differentiated based on pulse width of wake_detect signal
>=5 msec = Cold boot else Warm boot
- No support for Power management
So the "power-down", "power-off", "wake_in" and "wake_out"
signals are not explored/implemented.
- Support for Work thread
repetitive wake signal if no response from peer
May required for PM support, as we have delays in the sequences
- pinctrl states, specially to make sure we enable right pullup or pulldown
when we set wake_detect pin to input
- Convert gpio list into an array, and associated xxx-gpio-name property

Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 650f38e3 13-Oct-2015 Johan Hovold <johan@kernel.org>

greybus: build: add pwm to config options to enable

Add PWM to the kernel config options that shall be enabled.

When PWM is not enabled connection init will fail with

greybus endo0:3:4:9:9: failed to register PWM: -22

when using the default manifest.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 5c8ad599 18-Sep-2015 Bryan O'Donoghue <bryan.odonoghue@linaro.org>

greybus: operation, core: hook tracepoints into message opertions

This patch hooks tracepoints for greybus messages

- trace_gb_message_send
- trace_gb_message_recv_request
- trace_gb_message_recv_response
- trace_gb_message_cancel_outgoing
- trace_gb_message_cancel_incoming

It provides standard tracepoints at

/sys/kernel/debug/tracing/events/greybus/gb_message_send
/sys/kernel/debug/tracing/events/greybus/gb_message_recv_response
/sys/kernel/debug/tracing/events/greybus/gb_message_recv_request
/sys/kernel/debug/tracing/events/greybus/gb_message_cancel_outgoing
/sys/kernel/debug/tracing/events/greybus/gb_message_cancel_incoming

Giving outputs like

gb_message_recv_request: greybus:1-1.1:0 op=0001 if_id=0000 hd_id=0000 l=2
gb_message_send: greybus:1-1.1:0 op=0001 if_id=0000 hd_id=0000 l=2

Similarly perf events can be viewed with standard perf tools e.g.

root@beaglebone:~# perf list 'greybus:*'
greybus:gb_message_send [Tracepoint event]
greybus:gb_message_recv_request [Tracepoint event]
greybus:gb_message_recv_response [Tracepoint event]
greybus:gb_message_cancel_outgoing [Tracepoint event]
greybus:gb_message_cancel_incoming [Tracepoint event]

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 1ab2e891 15-Aug-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: makefile: use POSIX functions for kernel cmp

[[, == and echo -e are bash/zsh-ism and not POSIX, so when using a POSIX
shell the kernel_cmp can issue some warnings and not work properly.

Use only POSIX operators for kernel version compare.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 2870b52b 14-Aug-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: lights: add lights implementation

This patch adds lights implementation for Greybus Lights class, it
allows multiplexing of lights devices using the same connection. Also
adds two sysfs entries to led class (color, fade) which are commonly
used in several existing LED devices.

It support 2 major class of devices (normal LED and flash type), for
the first it registers to led_classdev, for the latest it registers in
the led_classdev_flash and v4l2_flash, depending on the support of the
kernel version.

Each Module can have N light devices attach and each light can have
multiple channel associated:
glights
|->light0
| |->channel0
| |->channel1
| | ....
| |->channeln
|->...
|->lightn
|->channel0
|->channel1
| ....
|->channeln

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 13fcfbb6 14-Aug-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: makefile: add needed config options for lights

Add a function to check kernel versions and append the necessary
options to support LEDS_CLASS, LEDS_CLASS_FLASH and V4L2_FLASH_LED_CLASS
depending of the kernel version.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 90f1b617 11-Aug-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: Add firmware protocol driver

This adds firmware protocol driver based on the latest specs available
on mailing lists. This uses the firmware framework present in kernel.

Refer Documentation/firmware_class/README on how it works.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 38e7b48b 24-Jul-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: get rid of old svc-protocol

Its not used anymore as we have more sophisticated svc protocol in
place, lets get rid of earlier code.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 3eac885d 29-Jul-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: svc: revert svc changes to keep things working for a while.

The firmware for the svc changes isn't quite ready, so revert the whole
set of patches in one hunk to get things back to a working state for the
other firmware developers. The svc patches will be added back in a
separate branch.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 0af72688 24-Jul-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: get rid of old svc-protocol

Its not used anymore as we have more sophisticated svc protocol in
place, lets get rid of earlier code.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# ab69c4ce 03-Jul-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: svc: SVC is part of greybus core

Its an essential part of greybus core and shouldn't be present as a
separate module. Make it part of greybus.ko module.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 3a97cddf 02-Jul-2015 Perry Hung <perry@leaflabs.com>

greybus: makefile: fix unused cflags

The ccflags variable was spelled wrong, so no extra compilation flags
could be specified.

The proper flag is 'ccflags-y.'

Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# cdee4f75 22-Jun-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: Add control protocol support

Add control protocol driver that is responsible for handling operations
on control CPort. The AP also needs to support incoming requests on its
control port. Features not implemented yet are marked as TODO for now.

NOTE: This also fixes cport-bundle-id to 0 and cport-id to 2 for control
protocol.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 656f22e9 22-Jun-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: makefile: add MMC to the required option list

Add MMC to the list of options that shall be enable.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 30c6d9d7 22-May-2015 Alex Elder <elder@linaro.org>

greybus: introduce SVC protocol

This patch adds support for the Greybus SVC protocol. We may want
to rearrange protocol numbers at some point, since this is a pretty
fundamental protocol.

Note: It has only been compile tested; no SVC CPorts have yet been
defined, so this code is not yet exercised.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# f5db53b4 20-May-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: gpbridge: rename gpb.c to gpbridge.c

That's what followed for .h, etc.. Rename for better consistency.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# e806c7fb 08-May-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: raw: add raw greybus kernel driver

This adds a driver that implements the greybus Raw protocol as
specified.

It preserves the message boundries by only allowing a read to receive
a "full" message, and any write() call also is passed in a single
greybus request.

Totally untested, given that we have no raw firmware or gbsim code yet.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>


# 65cac604 13-May-2015 Rui Miguel Silva <rui.silva@linaro.org>

greybus: make: check kernel configuration options

Add checks for options that shall be enabled in the kernel config
and for options that shall be disable.

To add options to list append them to CONFIG_OPTIONS_ENABLE or
CONFIG_OPTIONS_DISABLE respectively.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 68fff960 07-May-2015 Bryan O'Donoghue <bryan.odonoghue@linaro.org>

greybus: Support building greybus on host PC

Introduce INSTALL_MOD_PATH to allow for building and installing of the
greybus modules from a different location.

This lets you build the greybus modules on a PC and then install the
modules to an SD card in the appropriate location relative to the SD such
as /media/sdcard/lib/modules/version and subsequent running of depmod in
the same location. If INSTALL_MOD_PATH isn't specified the default
behaviour of installing and depmoding to /lib/modules/version is
maintained.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# a4749bbe 08-May-2015 John Stultz <john.stultz@linaro.org>

greybus: gb-audio: Add integrated greybus audio driver

So here's the current greybus audio driver, which I
wanted to send out for more serious review and
consideration for merging.

I've tried to integrate much of the feedback from the
last round and most of the hotplug issues that I've found
have been resolved. I've tested this via gbsim, and the
Android ARA HAL layer seems to work with it.

Mark has also successfully played audio with this driver,
adding a few hacks to get the codec's i2c connection to
probe.

Current issues:
* Hotplug problem - When gbsim is killed, or the module
removed, the greybus driver gets stuck since the android
mediaserver process is holding the audio device open.
Killing the mediaserver allows things to clean up and
allows greybus to accept new gbsim connections. I have
a workaround patch to the soc-core.c logic which converts
the snd_card_free() call to snd_card_free_when_closed()
which allows the greybus connection cleanup to finish.

Remaining todos:
* Probably need to break apart the mgmt_setup function
to integrate better with the constraint logic. I took
a really basic stab at this, but more is probably
needed.
* Figure out how to properly find and tie in the
codec's I2C bus-id to the driver.

This code requires that the kernel support the following
config options, which I've enabled in a separate kernel
patch:
CONFIG_SND_SIMPLE_CARD
CONFIG_SND_SOC_SPDIF
CONFIG_SND_SOC_RT5645

I really can't calim to be the sole author of this, since
many many fixes and tweaks that have been folded in have
come from Mark Greer. His analsysis and debugging is really
what has made this dummy-framework driver evolve into an
actual audio driver. So much credit and thanks to Mark!

Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>


# 0f035acd 07-Apr-2015 Greg Kroah-Hartman <gregkh@google.com>

greybus: endo: add endo structures and logic

This adds endo.c and endo.h and provides functions to create an endo and
the initial 0x0555 set of modules.

But, it doesn't hook this logic up into the running code yet, that comes
next.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 355a7058 31-Mar-2015 Alexandre Bailon <abailon@baylibre.com>

greybus: Add loopback protocol

Add a simple Greybus protocol in order to stress USB and Greybus.
This protocol currently support 2 requests: ping and transfer.

ping request is useful to measure latency.
Kernel send a ping request and firmware should respond with a ping.

The transfer request request is useful to stress Greybus and USB.
Kernel can send data from 0 to 4k and the firmware must send back the data to kernel.

This behaviour of gb-loopback module is controlled via sysfs.
Curently, connection sysfs folder is updated with new entries:
- type: Type of loopback message to send
* 0 => Don't send message
* 1 => Send ping message continuously (message without payload)
* 2 => Send transer message continuously (message with payload)
- size: Size of transfer message payload: 0-4096 bytes
- ms_wait: Time to wait between two messages: 0-1024 ms

Module also export some statistics about connection:
- latency: Time to send and receive one message
- frequency: Number of packet sent per second on this cport
- throughput: Quantity of data sent and received on this cport
- error
All this statistics are cleared everytime type, size or ms_wait entries are updated.

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 96eab779 16-Mar-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: hid: add HID class driver

This adds HID transport layer driver for Greybus. Most of the stuff is
implemented, but is untested.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 15d651b0 23-Jan-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: spi: add bridged-PHY spi protocol driver

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 98abb414 21-Jan-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: Remove "gb-" prefix from .c files

Some files are still prefixed with "gb-" with the reasoning that the modules
would be named so, i.e. gb-*.ko. But this can be done by playing a bit in
Makefile instead and keep uniform naming of .c files.

Lets try it.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 5357cf32 21-Jan-2015 Viresh Kumar <viresh.kumar@linaro.org>

greybus: Remove "-gb" suffix from .c files

Some files are prefixed with "gb-" and some are suffixed with "-gb". The
rationale behind the first one is that the modules would be named so, i.e.
gb-*.ko. But there is no reason to keep the "-gb" suffix in the second case.

Remove the unnecessary suffix.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# f587027e 20-Jan-2015 Greg Kroah-Hartman <greg@kroah.com>

greybus: es2: add ES2 Greybus Host driver

This is just a copy of ES1 for now, things will start to diverge soon.
Any common functionality will be factored out over time.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 60a7ad7c 14-Jan-2015 Greg Kroah-Hartman <greg@kroah.com>

greybus: rename es1-ap-usb.ko to gb-es1.ko

Use the "gb-" prefix for the ES1 Host controller driver.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 347fedb7 14-Jan-2015 Greg Kroah-Hartman <greg@kroah.com>

greybus: rename battery-gb.c to gb-battery.c

Use the "gb" prefix for module names, not a suffix.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 419a8cf1 14-Jan-2015 Greg Kroah-Hartman <greg@kroah.com>

greybus: rename vibrator-gb.ko to gb-vibrator.ko

Use the "gb" prefix for module names, not a suffix.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 71479f6c 14-Jan-2015 Greg Kroah-Hartman <greg@kroah.com>

greybus: rename gpbridge.ko to gb-phy.ko

This module provides the Bridged PHY protocols, so name the thing
properly.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 025677de 14-Jan-2015 Greg Kroah-Hartman <greg@kroah.com>

greybus: Makefile: provide install target

Provide an install Makefile target for those that want to install the
kernel modules.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>

--
v3: resend to list, somehow this thread got taken private and v2 never
made it there.

v2: add -a option to depmod, thanks to Mitchell


# 2c07817e 24-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: i2c-gb: move i2c protocol into the gpbridge driver

The i2c protocol belongs in the gpbridge driver, so move it
there.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# e1308c1f 24-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: gpb: Create a "GP Bridge" kernel module

This bundles together the existing GP Bridged PHY protocols that were
part of the Greybus core: USB, UART, SDIO, PWM, and GPIO. This is now a
stand-alone kernel module. More logic will be moving here in the future
to handle bridged devices.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 7dd26263 24-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: battery-gb: move the battery protocol out to a stand-alone module

This moves the battery class protocol to be a stand-alone kernel module.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 66b676fd 24-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: vibrator-gb: move vibrator protocol to a stand-alone module.

We can't use the gb_protocol_driver() macro here as we need to do some
init and exit logic when loading and removing, so "open code" the module
init and exit functions.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 900ceba9 23-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: i2c-gb: split out into a stand-alone kernel module.

This splits the i2c-gb protocol into a stand-alone kernel module.

It's not going to stay in this fashion for long, this was done to test
the "can a protcol be loaded later" logic. Future refactoring is going
to move the gpbridge protocols to a separate kernel module, where this
protocol is going to live.

But for now, split it out, it is good to test with, and shows a bug in
gbsim at the moment.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# df671553 21-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: add module support

Modules in the greybus system sit above the interface, so insert them
early in the sysfs tree. We dynamically create them when we have an
interface that references a module, as we don't get a "module create"
message directly. They also dynamically go away when the last interface
associated with a module is removed.

Naming scheme for modules/interfaces/bundles/connections is bumped up by
one ':', and now looks like the following:

/sys/bus/greybus $ tree
.
├── devices
│   ├── 7 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/7
│   ├── 7:7 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/7/7:7
│   ├── 7:7:0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/7/7:7/7:7:0
│   └── 7:7:0:1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/7/7:7/7:7:0/7:7:0:1
├── drivers
├── drivers_autoprobe
├── drivers_probe
└── uevent

6 directories, 3 files
/sys/bus/greybus $ grep . devices/*/uevent
devices/7/uevent:DEVTYPE=greybus_module
devices/7:7/uevent:DEVTYPE=greybus_interface
devices/7:7:0/uevent:DEVTYPE=greybus_bundle
devices/7:7:0:1/uevent:DEVTYPE=greybus_connection

We still have some "confusion" about interface ids and module ids, which
will be cleaned up later when the svc control protocol changes die down,
right now we just name a module after the interface as we don't have any
modules that have multiple interfaces in our systems.

This has been tested with gbsim.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# a93938a2 19-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: rename interface_block.[c|h] -> interface.[c|h]

Interface_block is being renamed to interface, so move the file first.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 3bdec699 12-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: bundle: rename interface.[c|h] to bundle.[c|h]

We are renameing the "interface" term to "bundle" so rename the files
before we start changing structure names to make it easier for people to
see what really is happening in the changes.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# ab88eb58 11-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: interface_block: move sysfs files into the interface_block.c file

No need to keep these out in sysfs.c, move them into the
interface_block.c file so that we can see them easier, and remove some
variable definitions by taking advantage of the attribute group macro.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# e5052220 11-Dec-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: interface_block: rename module.[c|h] to interface_block.[c|h]

"modules" in the driver model here, are really "interface blocks" as
that is what they are physically tied to. So rename the files before we
start changing the code to make it obvious what is going on.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 615772aa 25-Nov-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: usb-gb: import a "buildable" version of the usb-gb.c driver

Based on Fabien's original driver, this version is converted (mostly) to
the new greybus operation apis. Lots of things still to do, not the
least being hooking up proper responses...

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 7486dfd1 19-Nov-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: add -Wall to the build flags

In an attempt to turn on as many options as we can to catch warnings
early, let's enable -Wall.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 374e6a26 17-Nov-2014 Alex Elder <elder@linaro.org>

greybus: kill off the last of gbuf.c

Only three functions remain in "gbuf.c". Move one of them into
"connection.c" and the other two into "operation.c".

Some more cleanup is coming that will further straighten out gbufs
but for now there's no sense in drawing this out any longer.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# ac4029fb 17-Nov-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: vibrator-gb: add vibrator driver

This driver implements the Greybus vibrator protocol, as defined in the
Greybus protocol specification. It interacts to userspace with a single
sysfs file, "timeout", and a separate "class" called "vibrator". That
interface can/should be changed in the future depending on what Android
wants for its HAL, but for now should be good enough to test with.

There are some changes needed to kernel_ver.h to support some
sysfs/driver core changes that happened after the 3.10 kernel was
released to try to make the code simpler. Even with those changes,
there are #ifdefs in the code to do different things depending on the
kernel version to implement the same userspace api.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 34c6507c 13-Nov-2014 Matt Porter <mporter@linaro.org>

greybus: add pwm protocol driver

Add a PWM driver that implements the Greybus PWM protocol.

Signed-off-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 8d598979 06-Nov-2014 Alex Elder <elder@linaro.org>

greybus: kill test_sink.c

This file is an artifact of some early testing, but it is otherwise
unused. So get rid of it.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 4ccb6b7a 28-Oct-2014 Alex Elder <elder@linaro.org>

greybus: introduce protocol abstraction

Define a protocol structure that will allow protocols to be
registered dynamically. For now we just introduce a bookkeeping
data structure. Upcoming patches will move protocol-related methods
into the protocol structure, and will start registering protocol
handlers dynamically.

A list of connections using a given protocol is maintained so we can
tell when a protocol is no longer in use. This may not be necessary
(we could use a kref instead) but it may turn out to be a good way
to clean things up.

The interface is gb_protocol_get() and gb_protocol_put() for a
connection, allowing the protocol to be looked up and the connection
structure to be inserted into its list.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# cd345074 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: get rid of functions now...

We decided yesterday that we would no longer support the notion of a
"function." Instead, a connection will simply exist between the AP
and an interface on a module (and a CPort Id on each end). What
was previously considered the "function type" will now be handled
as the "protocol" associated with the connection.

Update gb_connection_create() to take just the interface and a cport
id associated with that interface.

Right now every module points back to a host device, so for now
we'll establish the connection back to that.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# b09c94a1 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: start improving manifest parsing

Currently the module manifest parsing code is sort of representative
only and is not really very useful.

This patch begins doing "real" parsing of the module manifest.
It scans the module manifest to identify the descriptors it holds.
It then verifies there's only one module descriptor found, and
initializes new some fields in the gb_module structure based on what
it contains (converting what's found to native byte order).
Note that if anything unexpected is found or other errors occur when
parsing the manifest, the parse fails.

Because we now save this converted information when it's parsed we
no longer have a greybus_descriptor_module struct within a struct
gb_module. And because we've already converted these values, we can
do a little less work displaying values in sysfs. (We also now show
vendor, product, and version values in the right byte order.) This
eliminates the need for greybus_string(), so get rid of it.

It also slightly simplifies the greybus module matching code.

Move some existing parsing code into a new file, "manifest.c".

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# e88afa58 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: introduce an operation abstraction

This patch defines a new "operation" abstraction. An operation is a
request from by one end of a connection to the function (or AP) on
the other, coupled with a matching response returned to the requestor.
The request indicates some action to be performed by the target of
the request (such as "read some data"). Once the action has
completed the target sends back an operation response message.
Additional data can be supplied by the sender with its request,
and/or by the target with its resposne message.

Each request message has a unique id, generated by the sender.
The sender recognizes the matching response by the presence
of this id value. Each end of a connection is responsible
for creating unique ids for the requests it sends.

An operation also has a type, whose interpretation is dependent on
the function type on the end of the connection opposite the sender.
It is up to the creator of an operation to fill in the data (if any)
to be sent with the request.

Note that not all requests are initiated by the AP. Incoming data
on a module function can result in a request message being sent from
that function to the AP to notify of the data's arrival. Once the
AP has processed this, it sends a response to the sender.

Every operation response contains a status byte. If it's value
is 0, the operation was successful. Any other value indicates
an error.

Add a defintion of U16_MAX to "kernel_ver.h".

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# c68adb2f 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: introduce a connection abstraction

Within a UniPro network a pair of CPorts can be linked to form a
UniPro Connection. This patch creates a new abstraction to
represent an AP CPort that is connected with a CPort used by a
function within a Greybus module.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# ef0d2ba2 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: define greybus function abstraction

Define new source files "function.h" and "function.c" to contain the
definitions of the Greybus function abstraction. A Greybus function
represents an active entity connected to a CPort implemented by a
Greybus interface. A Greybus function has a type, which defines the
protocol to be used to interact with the function. A Greybus
interface normally has at least two functions, but potentially many
more.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 8c12cde3 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: define greybus interface abstraction

Define new source files "interface.h" and "interface.c" to contain
the definitions of the Greybus interface abstraction. A Greybus
interface represents a UniPro device present in a UniPro module.
For Project Ara, each interface block on a module implements a
UniPro interface.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# e1e9dbdd 01-Oct-2014 Alex Elder <elder@linaro.org>

greybus: isolate greybus module code

Define new source files "module.h" and "module.c" to separate the
definitions of the Greybus module abstraction from other code.

Rename "greybus_module" to be "gb_module", for brevity. Do the same
for a few other symbols with "greybus_module" in their names. A few
(like greybus_module_id) are more visible outside this kernel module
so we'll keep their names more descriptive.

Add a definition for U8_MAX in "kernel_ver.h" (it appeared in 3.14).

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


# 13c8d9cd 14-Sep-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: add test_sink driver


# ac7171ea 13-Sep-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: Makefile: add 'check' option to run sparse with endian checks enabled


# 33ea3a3f 07-Sep-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: add battery module


# 06340efb 01-Sep-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: split sysfs functions out to separate file.


# de536e30 31-Aug-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: ap message loop added.


# 27fb8310 31-Aug-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: register the bus with the driver core and add framework for debugfs files.


# ba4468d4 30-Aug-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: initial framework for ES1 usb AP driver


# db6e1fd2 30-Aug-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: hook up sdio, gpio, and tty into the greybus core.


# 199d68d4 30-Aug-2014 Greg Kroah-Hartman <greg@kroah.com>

greybus: start moving the function types into the greybus core


# 79c822be 15-Aug-2014 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

greybus: uart framework added, doesn't build


# c16854c3 11-Aug-2014 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

greybus: gpio driver


# d5d1903d 11-Aug-2014 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

greybus: add framework for 'struct gbuf'

This is the equlivant of sk_buf or urbs for Greybus.


# 83ddaaab 11-Aug-2014 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

greybus: Greybus SD/MMC host driver

Need to add specifics, but this should be enough to hook up to the mmc
framework.


# c8a797a9 11-Aug-2014 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

greybus: Import most recent greybus code to new repo.