Commit graph

6 commits

Author SHA1 Message Date
Ravi Aravamudhan
6d9c18d9e9 diag: Modify diag to support multiple hsic instances
The debugfs implementation and diag code interfacing with the
diag userspace library currently only supports one instance
of diag bridge using hsic.  Make changes to support multiple
instances of diag bridge using hsic.

Change-Id: I58b37006d652338392527fd46985c44f31accec6
Signed-off-by: Shalabh Jain <shalabhj@codeaurora.org>
2013-03-15 17:07:46 -07:00
Ravi Aravamudhan
38351d4a0a diag: Add support for mutiple HSIC instances
On a future target, applications processor will talk to
two MDMs simultaneously. This change will enable multiple
HSIC connections towards this configuration.

Change-Id: I2138b1d458936eddb8276a12e92916a4893d922b
Signed-off-by: Ravi Aravamudhan <aravamud@codeaurora.org>
2013-03-15 17:05:18 -07:00
Dixon Peterson
3bf1a685c4 diag: Add diag changes to bring diag up to date
diag on the A-Family mainline is out of date. Create a commit
to bring diag up to date.

Change-Id: Ie24780b4b83a3cb378326357d70785a590167447
Signed-off-by: Dixon Peterson <dixonp@codeaurora.org>
2013-03-07 15:25:31 -08:00
Dixon Peterson
21bc5513e9 diag: fix hsic concurrency issue when in MEMORY_DEVICE_MODE
When the logging mode changes to MEMORY_DEVICE_MODE, an array
is used to house the pointers to the data read from the hsic
until the data can be copied to user space. Since the storing
and copying actions access this array in different threads,
access to this array can result in concurrent access by these
threads. Note that the storing access to the array happens in
interrupt context and the copying access happens in process
context.  Use spin_locks to protect agains this concurrency
issue.

Also, there is unnecessary queuing of the hsic read work function
on the work queue. Add checks to remove this unnecessary queuing.

Signed-off-by: Dixon Peterson <dixonp@codeaurora.org>

Change-Id: I8f45d1e88317e2da1f9498cce8b5e8666e58dd2e
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
2013-03-07 15:23:41 -08:00
Mekala Natarajan
dd00842196 diag: Increase HSIC throughput by implementing multiple simultaneous
reads

The HSIC implementation has been found to be too slow causing
the dropping of logs. The HSIC implementation is using a one-in-one-out
read buffer strategy. This strategy coupled with the high latency of
callbacks is leading to poor throughput, and thus the dropping of
logs. Modify the implementation to queue up multiple simultaneous
read requests on the HSIC. Manage these read buffers using a memory
pool.

Change-Id: I7cf334f54ebc41d0e222732e4cf68e158f015c67
CRs-Fixed: 373328
Signed-off-by: Dixon Peterson <dixonp@codeaurora.org>
2013-03-04 12:45:20 -08:00
Stephen Boyd
6640ed7230 char: Add DIAG driver
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-02-25 11:29:25 -08:00