580 Commits

Author SHA1 Message Date
Alexandre Bailon
59e3344461 greybus: Dump log from APB1
On AP module (form factor), we don't have access to APBridge JTAG or UART.
But sometime, we still need to get log from APBridge. Add a new request in control endpoint
to get APBridge logs.
Logs can be accessed using debugfs (greybus/apb1_log).

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-03-24 19:49:47 +01:00
Viresh Kumar
337b068722 greybus: core: Don't initialize greybus if it is disabled
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-03-24 15:53:45 +01:00
Johan Hovold
792c17e643 greybus: gpio: add error messages to callbacks not propagating errors
Add error messages on failures to deactivate, set and get operation
handlers as any errors would not be detected by the upper layers (either
because the callbacks are declared void or expected to return a boolean
value).

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:30:38 +01:00
Johan Hovold
7bfa078140 greybus: gpio: refuse to set value of input pins
Add warning and refuse to set output value for pin configured as input,
as the result of such an operation is undefined.

Remove incorrect todo-comment suggesting that the driver could
implicitly switch direction as part of the call.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:30:38 +01:00
Johan Hovold
64d2f4e5f9 greybus: gpio: clean up line-state allocation
Clean up allocation of line-state array.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:30:38 +01:00
Johan Hovold
e5032d8511 greybus: gpio: use dev_err and dev_warn
Use the more informative dev_err and dev_warn for messages, and make the
messages more uniform.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:30:38 +01:00
Johan Hovold
86c6816158 greybus: gpio: fix error handling
Make sure to propagate any errors detected up the call chain.

This specifically means that we will detect failed connection init,
something which is now handled more gracefully by greybus core.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:30:38 +01:00
Johan Hovold
8aff1aceb2 greybus: gpio: make gb_gpio_controller pointer naming consistent
Rename all struct gb_gpio_controller-pointer variables "ggc" for
consistency and readability reason.

This also fixes a bunch of lines that exceeded the 80 columns limit.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:29:40 +01:00
Johan Hovold
bda7e2d112 greybus: gpio: remove unnecessary explicit cast
Remove unnecessary explicit cast of line value.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:29:40 +01:00
Johan Hovold
83d9cddb85 greybus: gpio: remove overly defensive argument verification
Remove overly defensive argument verification in gpio-chip callbacks. We
should trust gpiolib to get this right (or we would not even get any
callback) just like the other gpio drivers do.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:29:40 +01:00
Johan Hovold
65f5a5f161 greybus: gpio: remove redundant argument verification
Remove redundant verification of gpio numbers (which have already been
verified in the gpio-chip callbacks) from greybus-operation helpers.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:29:40 +01:00
Johan Hovold
56c2da1873 greybus: gpio: remove incorrect todo comments
The module reference count is incremented by gpiolib when a gpio is
requested, and the driver callbacks certainly do sleep.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:29:40 +01:00
Johan Hovold
c2a6610686 greybus: gpio: fix truncated debounce times
Fix set_debounce, which silently truncated the time argument to 255us
even though we support 16-bit values.

Also remove the unnecessary explicit cast when verifying the argument.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:29:40 +01:00
Johan Hovold
c0d209a07b greybus: operation: remove unnecessary cast
Remove unnecessary cast of the message size in gb_connection_recv.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:28:19 +01:00
Johan Hovold
ee8f81b096 greybus: operation: use dev_err in gb_operation_sync
Use the more informative dev_err in gb_operation_sync, which includes
the connection device name in the error message (which in turn encodes
the module, interface, bundle and cport ids).

Add missing braces to conditional-construct branches while at it.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:28:19 +01:00
Johan Hovold
25eb732954 greybus: connection: replace custom error function with dev_err
Remove custom connection error function and replace it with dev_err.

The standard error function provides more information in the message
prefix (e.g. includes the interface id), has a well-known semantics
(e.g. does does not add newlines to messages), and is even somewhat
shorter to type.

Note that some uses of the custom function were already adding double
newlines due to the non-standard semantics.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:28:19 +01:00
Johan Hovold
fe4c0e548a greybus: ap: clean up svc link management error path
Return immediately on bundle-init failure when processing SVC link up.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:27:08 +01:00
Johan Hovold
69bae8910e greybus: ap: fix typo in comment
Fix typo in svc_hotplug comment.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:27:08 +01:00
Johan Hovold
0b7534b86d greybus: ap: fix svc handshake protocol check
Fix incorrect SVC handshake protocol check, which would only bail out if
both major and minor protocol versions supported by the SVC differed.

Since we currently only support one version of the protocol, upgrade the
debug message to warning and bail unless the protocol versions match
perfectly for now.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:27:08 +01:00
Johan Hovold
c020d568f5 greybus: usb: silence compiler warning
This driver is being rewritten, but let's silence a pointer-to-int-cast
compiler warning meanwhile.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 17:27:08 +01:00
Viresh Kumar
292cca99fb greybus: hid: don't support OUTPUT report over interrupt channel
There is no interrupt channel as such and so no need to support
->output_report().

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 15:03:47 +01:00
Viresh Kumar
d71aaf288f greybus: core: place module_{init|exit}() right below the routines
To follow coding guidelines a bit :)

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 15:02:28 +01:00
Viresh Kumar
9ee2b61df1 greybus: interface: remove double underscore from fn name
Also bring * closer to gb_interface_get_drvdata :)

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 15:02:28 +01:00
Viresh Kumar
3b6cf2ee3b greybus: operation: Fix comment mistake
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 15:02:28 +01:00
Viresh Kumar
183f872eb1 greybus: operation: s/status/result to match field name
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 15:02:28 +01:00
Alexandre Bailon
e8f824b658 greybus: Export greybus debugfs folder
Add gb_debugfs_get method to access to gb_debug_root dentry,
in order to use it from other greybus modules.

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-19 15:02:28 +01:00
Johan Hovold
afcf8c715e greybus: uart: remove packed-attribute from line-coding struct
Remove packed-attribute from line-coding struct, whose members are all
naturally aligned.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-17 22:34:44 +01:00
Johan Hovold
b41caa99a2 greybus: pwm: fix config-request alignment
Fix alignment of the duty and period-fields in the config request,
which should follow the which-field without any inserted padding.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-17 22:34:43 +01:00
Johan Hovold
fcc4356de4 greybus: gpio: fix set-debounce request alignment
Fix alignment of the usec-field in the set-debounce request, which
should follow the which-field without any inserted padding.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-17 22:34:43 +01:00
Johan Hovold
44538397e7 greybus: connection: fix oops after failed init
Make sure not to call connection_exit for connections that have never
been initialised (e.g. due to failure to init).

This fixes oopses due to null-dereferences and use-after-free in
connection_exit callbacks (e.g. trying to remove a gpio-chip that has
never been added) when the bundle and interface are ultimately
destroyed.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-17 22:32:58 +01:00
Johan Hovold
deeb57f5bd greybus: vibrator: fix memory leak in error path
Fix memory leak in connection_init error path.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-17 22:32:58 +01:00
Johan Hovold
6a80ed4d2c greybus: pwm: fix memory leak in error path
Fix memory leak in connection_init error path.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-17 22:32:58 +01:00
Viresh Kumar
96eab779e1 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>
2015-03-16 20:29:44 +01:00
Viresh Kumar
b908dec468 greybus: gpb: Fix print mistakes
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>
2015-03-12 22:07:51 +01:00
Johan Hovold
8f5eadb7ea greybus: connection: fix locking in gb_hd_connection_find
Fix unconditional re-enabling of interrupts in gb_hd_connection_find,
which can be called with local interrupts disabled from the USB
completion handler.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-02 21:03:19 -08:00
Alexandre Bailon
d1b20d72ae greybus: gpio.c: fix a bad irq number
When it receive an interrupt, the function gb_gpio_request_recv doesn't
use the good gpio number to get the irq number. Then, the expected irq is never fired.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-02 08:54:20 -08:00
Johan Hovold
184ab534de greybus: operation: fix locking issues
Fix unconditional re-enabling of interrupts in various operation
functions that can all be called with local interrupts disabled from USB
completion handlers.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-02 08:52:59 -08:00
Greg Kroah-Hartman
2bf4c87605 greybus: es2: fix USB id to not be the same as ES1
We don't want to bind to the ES1 device, that would be bad.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-03-02 08:52:07 -08:00
Johan Hovold
35a64f2c49 greybus: gpio: fix memory leaks at init and exit
Fix three related memory leaks in the init an exit callbacks, where the
gpio-lines array was never freed at all and the controller data wasn't
freed in the init error path.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-02-17 16:31:27 -08:00
Matt Porter
036aad9d02 greybus: gpio: add interrupt handling support
Adds gpio interrupt handling support using an irqchip/irqdomain
instantiation inside the GB GPIO driver. This implementation works
on older kernels such as 3.10 that do not have the gpiolib irqchip
helpers. Any line on a Greybus gpiochip may be configured as an
interrupt. Once configured, IRQ event messages received from a
module fire off the registered interrupt handler.

Signed-off-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-02-17 16:28:28 -08:00
Johan Hovold
48d7077c00 greybus: bundle: fix sleep-while-atomic in gb_bundle_destroy
Make sure to release the spin lock protecting the interface bundle lists
before tearing down the connections and removing the bundle device,
which are operations that may sleep.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-02-14 21:30:13 +08:00
Johan Hovold
067f3b6bfa greybus: connection: fix non-atomic allocations under spin lock
Use GFP_ATOMIC for IDA memory allocations under spin lock, which must
not sleep.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-02-12 11:42:26 +08:00
Matt Porter
5f345a5d39 greybus: operation: add missing gb_operation_response_send() export
Export gb_operation_response_send() for other modules

Signed-off-by: Matt Porter <mporter@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-02-03 18:24:23 -08:00
Viresh Kumar
f4e6c817b3 greybus: spi:fix sparse warnings
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-01-27 14:50:23 -08:00
Michael Scott
b3b983c2ee greybus: build: android: Fix script which locates .ko files and moves them into ramdisk
- Fixed incorrect use of $$GREYBUS_SRC_PATH variable
- Added quotes around find pattern to stop shell expansion of "*"

Signed-off-by: Michael Scott <michael.scott@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-01-27 14:49:04 -08:00
Viresh Kumar
15d651b0db 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>
2015-01-23 22:58:02 +08:00
Greg Kroah-Hartman
45a706368d greybus: es1.c: wait until the last possible minute to start the svc messages
When initializing the USB device, we were starting up the svc message
queue before the cport urbs were allocated.  This might not be an issue
for "slower" machines, but not having any allocated urbs for a cport
might be an issue if we were to handle svc messages.

So wait until everything is properly initialized and allocated before
starting the svc urb.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-01-23 22:55:57 +08:00
Greg Kroah-Hartman
e0b179ee78 greybus: ap.c: our workqueue should be ordered
SVC messages come in in an "order", so don't mess them up by processing
them out of order.  Fix this by making our work queue ordered, which
should keep everything in line.

Reported-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-01-23 22:55:57 +08:00
Michael Scott
58b978c48b greybus: build: android: add all greybus modules to the build
We now have several modules generated by the greybus build.
Let's add any *.ko files we find to the buid.

Signed-off-by: Michael Scott <michael.scott@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-01-23 10:18:06 +08:00
Michael Scott
65760032f5 greybus: build: android: replace hard-coded build destination with variable
Make sure destination for greybus modules is consistent and easier to maintain

Signed-off-by: Michael Scott <michael.scott@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2015-01-23 10:18:06 +08:00