Commit Graph

1176 Commits

Author SHA1 Message Date
Viresh Kumar 782c3b7328 greybus: gpio: Print expected/actual payload size on mismatch
Print (expected-payload-size actual-payload-size), when the size doesn't
match for requests received by the module. This gives more details
required for debugging the issue.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-10 17:28:30 -07:00
Viresh Kumar 7fea641c94 greybus: raw: Print expected/actual payload size on mismatch
Print (expected-payload-size actual-payload-size), when the size doesn't
match for requests received by the module. This gives more details
required for debugging the issue.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-10 17:28:30 -07:00
Alex Elder 47a96858b5 greybus: kernel_ver.h: define U32_MAX and U64_MAX
These were not defined, and I just posted patches that use them.

Signed-off-by: Alex Elder <elder@linaro.org>
Tested-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-04 12:46:37 -07:00
Alex Elder 1fb807cf6d greybus: loopback: fix connection cleanup paths
The error paths in gb_loopback_connection_init() are kind of screwed
up--not in proper order, and the label naming convention seems a
little inconsistent.

Fix this, ensuring each error cleans up the setup that's been done
up to that point.  Use the convention that the label indicates the
first thing that needs to be cleaned up.

Reorder the statements in gb_loopback_connection_exit() to match
the order of cleanup in gb_loopback_connection_init().

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:13:19 -07:00
Alex Elder ff71d395f3 greybus: loopback: compute average stats on demand only
Stop recording and updating the average every time a sample
is recorded.  Instead, compute it from the sum and count only
when it's required.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:12:50 -07:00
Alex Elder 7a135a965c greybus: loopback: use separate attribute macro for average
Define a separate macro for displaying the average of the samples
collected.  This will be used so we can calculate the average only
when requested, rather than every time a new value gets recorded.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:12:50 -07:00
Alex Elder 19c2a443c9 greybus: loopback: all read-only attributes are unsigned
The only values passed to the gb_loopback_ro_attr() macro are
unsigned 32-bit values.  So there's no need to pass a "type"
format specifier.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:12:50 -07:00
Alex Elder b937aa9e2a greybus: loopback: error is an unsigned attribute
The error count is unsigned, so fix the format specifier used in its
attribute definition.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:12:50 -07:00
Alex Elder e13fc28f72 greybus: loopback: use a 32-bit count
The count of statistical samples recorded is currently a 64-bit
value.  32 bits is sufficient, and in fact anything more than
that won't work for the do_div() call it's pass to anyway.  So make
the count field be 32 bits.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:49 -07:00
Alex Elder e051c82b2b greybus: loopback: record 32-bit min and max
The minimum and maximum values for stats values are always 32 bits.
Change the type for these fields to reflect this.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:49 -07:00
Alex Elder a6e7e53548 greybus: loopback: use u32 for stats update
The only values supplied to gb_loopback_update_stats() are 32-bits,
so change the type of the second argument to reflect that.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:49 -07:00
Alex Elder 3320e78455 greybus: loopback: use U64_MAX for initialization
Use the largest representable value when initializing the "min"
field when resetting loopback statistics.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:49 -07:00
Alex Elder 3f12c3ed21 greybus: loopback: drop unneeded casts for void pointers
There is no need to cast a void pointer to a particular type.
Drop the casts used in this way, mainly in the attribute definition
macros.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:49 -07:00
Alex Elder 006335a026 greybus: looback: fix two typos
Fix two misspellings.  And add spaces around a '%' operator.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:49 -07:00
Alex Elder bfb287a17e greybus: interface: declare gb_interface_destroy()
Add a public declaration for gb_interface_destroy(), matching
gb_interface_create().

It's not yet used outside "interface.c" but I suppose it
could be, and its scope is currently public.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:11:48 -07:00
Viresh Kumar 03cb4fa92a greybus: svc: Move '{' to a new line in function definitions
That's the style we follow for kernel code.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:09:00 -07:00
Greg Kroah-Hartman 7f69e5990f greybus: Merge branch 'master' into svc
Handle some merge conflicts in greybus_protocols.h due to changes on the
same structure in both branches.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:06:10 -07:00
Johan Hovold 5b559e6457 greybus: greybus_protocols: use only type attributes for message packing
For consistency reasons, use only type attributes for message packing.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:00:41 -07:00
Johan Hovold 8bbd9edcb7 greybus: sdio: fix message packing
Add missing packed attributes to prevent implicit structure padding.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:00:41 -07:00
Johan Hovold cfc5f2c6de greybus: uart: fix message packing
Add missing packed attributes to prevent implicit structure padding.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:00:41 -07:00
Johan Hovold 2130f09871 greybus: svc: fix message packing
Add missing packed attributes to prevent implicit structure padding.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:00:41 -07:00
Johan Hovold 46d26c5d57 greybus: greybus_protocols: fix typo in comment
Fix misspelled variable name in comment.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 20:00:41 -07:00
Viresh Kumar e34fae58f6 greybus: operation: Move operation header to greybus_protocols.h
This should be exposed to external users (like gbsim). Move it to
greybus_protocols.h.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 19:57:40 -07:00
Viresh Kumar f47c1b023e greybus: operation: Drop alignment attribute from operation message header
The buffers allocated for message header is already 64 bit aligned and
we have explicit pad bytes in the header structure, to 64 bit align the
operation specific data.

And so there is no need to add the aligned attribute to the operation
message header. Drop it.

Suggested-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-08-03 19:57:40 -07:00
Greg Kroah-Hartman b86b64e9a7 greybus: Merge branch 'master' into svc
Get the USB driver fixes in this branch to prevent oopses from happening
when the USB host driver protocol is found in a manifest.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:58:00 -07:00
Johan Hovold a96493560c greybus: usb: disable protocol driver
The USB bridged-PHY protocol driver currently depends on changes to USB
core that are not yet upstream.

Disable for now.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:49:49 -07:00
Johan Hovold a422ecd28e greybus: usb: implement hub_control callback
Implement the hub_control callback.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:49:49 -07:00
Johan Hovold b1e4a1f851 greybus: usb: fix hc_driver fields
Fix hc_driver description, product_desc and flags fields.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:49:49 -07:00
Johan Hovold cc9bd53eb1 greybus: usb: fix hcd allocation, deregistration and deallocation
Fix allocation, deregistration and deallocation of USB HCD, and update
the hcd_priv helper functions.

The HCD private data was not allocated correctly, something which would
lead to a crash when accessed in hcd_start. The HCD was neither
reregistered or deallocated on connection tear down.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:49:49 -07:00
Johan Hovold 583804f713 greybus: usb: renumber operation types
Renumber the current operation types.

NOTE: Protocol change.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:49:49 -07:00
Johan Hovold 3a6b5aeec7 greybus: usb: clean up driver
Remove unused, broken or unneeded code and constructs.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 13:49:49 -07:00
Greg Kroah-Hartman 32574ff3e4 greybus: Revert "connection: remove special check for svc cport id"
This reverts commit 60b1d71fdfc2c5266051a1297df01ea0b1f3ba99 as we want
the port number to be correct in the svc branch.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 12:22:09 -07:00
Greg Kroah-Hartman fff494340e greybus: Merge branch 'master' into svc to keep it up to date.
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 12:21:33 -07:00
Viresh Kumar 48ed3f6e42 greybus: connection: remove special check for svc cport id
This is required to get things working for now, after the latest revert
of svc protocol is done.

Currently svc's cport id is set to 2 and that hd cport id will be used
for the third connection we make. And that protocol (which is i2c in one
of the cases), may not work as the (dis)connected event isn't sent for
it.

Fix this by getting rid of svc protocol check from (dis)connected
events for now. This must be reverted later, once svc protocol is
included again.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Mark Greer <mgreer@animalcreek.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-30 12:21:12 -07:00
Viresh Kumar e75b82bfc7 greybus: initialize svc connection while creating hd
Its really part of initializing the host device and is required for
every 'hd' that is created. Lets move the call to do basic
initialization of svc connection to greybus_create_hd().

Also add a comment to specify why we need to do it that early.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:21 -07:00
Viresh Kumar ca539a67c6 greybus: remove svc_msg.h
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Viresh Kumar 0b161d0a92 greybus: es1: create svc connection early enough
The svc connection needs to be ready before creating the URBs, otherwise
the svc version request might come in before the AP was ready to parse
them.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Greg Kroah-Hartman d45b1b8674 greybus: interface: make gb_interface_destroy() static
The function is only called locally, so mark it static to make sparse
happy.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Greg Kroah-Hartman 260998ebc6 greybus: remove submit_svc from the host driver
The callback is never used anymore, so remove it from struct
greybus_host_driver as well as from the es1 and es2 drivers.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Greg Kroah-Hartman 8476ec60e1 greybus: greybus.h: remove greybus_svc_in()
The function is gone, remove it from the header file as well.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Perry Hung 0b22649755 greybus: svc: add flags and traffic class parameter to connection create op
The AP needs to be able to specify L4 CPort flags and traffic class
parameters on a connection-by-connection basis. Extend the connection
create operation to accept these. Since there's no policy to decide
these, fix them at TC0 with end-to-end-flow control, controlled segment
dropping, and CPort safety valve enabled.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Perry Hung 75a60ed20d greybus: svc: connection: ask SVC to create connections
Ask the SVC to do all the necessary bits for creating a new connection.
This is skipped for the initial SVC connection.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Perry Hung 7e275465fa greybus: svc: create bidirectional routes on hotplug request
Upon receiving a hotplug request, we need to prepare the routing table
to allow packets to flow between the AP interface and the newly detected
interface.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Perry Hung e08aaa49df greybus: svc: add route create operation
Implement the SVC Protocol Route Create Operation.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Viresh Kumar 38e7b48b0c 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>
2015-07-29 10:06:18 -07:00
Greg Kroah-Hartman b767ee4020 greybus: es2: remove svc endpoint message handling
We have switched over to use the "new" svc messages, no more need to
have a special USB endpoint to handle them, they come through the normal
CPort messages.

Based on a patch from Viresh.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Greg Kroah-Hartman 1a95812d46 greybus: es1: remove svc endpoint message handling
We have switched over to use the "new" svc messages, no more need to
have a special USB endpoint to handle them, they come through the normal
CPort messages.

Based on a patch from Viresh.

Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2015-07-29 10:06:18 -07:00
Viresh Kumar ef5d949a8b greybus: Switch to Cport 0 for svc and control protocol
Initially we fixed it to Cport 2, but its changed to Cport 0 now. Lets
switch that in code as well.

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>
2015-07-29 10:06:18 -07:00
Viresh Kumar 619dccd27b greybus: es1/2: Lets start using svc protocol
All bits and pieces are in place now. Lets start using svc protocol
instead of stuff present in ap.c.

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>
2015-07-29 10:06:17 -07:00
Greg Kroah-Hartman 3eac885de2 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>
2015-07-29 10:05:09 -07:00