diff options
author | Mitchell Tasman <tasman@leaflabs.com> | 2016-05-04 17:30:23 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-05-04 18:41:05 -0700 |
commit | ee2f2074fdb20d4939c943d0372f3751d833dedf (patch) | |
tree | 676eb9aceb5d0ea2f6e97f53bfea3a7af1d8cf30 /drivers/staging/greybus/camera.c | |
parent | 3e29bcf4b148b8983dcb30faec0b59f681eabe9e (diff) | |
download | linux-ee2f2074fdb20d4939c943d0372f3751d833dedf.tar.gz linux-ee2f2074fdb20d4939c943d0372f3751d833dedf.tar.bz2 linux-ee2f2074fdb20d4939c943d0372f3751d833dedf.zip |
greybus: svc: reconfig APBridgeA-Switch link to handle required load
SW-4894, SW-4389, and share a common root cause, namely that
the power-on reset configuration of the APBridgeA-Switch link of PWM
Gear 1, 1 Lane, Slow Auto, is insufficient to handle some required
traffic loads, such as 3 audio streams plus boot-over-UniPro or 4 audio
streams.
The correct long-term solution is to implement a UniPro Power Mode
Manager as in that considers the demands placed on the network,
and adjusts power modes accordingly.
The present commit implements a short-term, brute-force hack to allow
continued system testing:
- Upon receiving an SVC HELLO request, schedule deferred work to
reconfigure the APB1-Switch link to PWM G2, 1 lane, Slow Auto
- When the Camera driver transitions a White Camera module from active to
inactive, return the APB1-Switch link to PWM G2, 1 lane, Slow Auto
The Camera driver already steps up the APBridgeA-Camera link speed while a
camera module is active, which affords sufficient margin for simultaneous
audio and hotplug activity, and the Camera driver already steps down the
link speed thereafter: the change made by the present patch is simply to
tweak the stepped-down power mode to match the new baseline configuration.
Signed-off-by: Mitchell Tasman <tasman@leaflabs.com>
Tested-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/camera.c')
-rw-r--r-- | drivers/staging/greybus/camera.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c index 956fbf05b8e0..ba76f5633256 100644 --- a/drivers/staging/greybus/camera.c +++ b/drivers/staging/greybus/camera.c @@ -131,9 +131,9 @@ static int gb_camera_set_intf_power_mode(struct gb_camera *gcam, u8 intf_id, ret = gb_svc_intf_set_power_mode(svc, intf_id, GB_SVC_UNIPRO_HS_SERIES_A, GB_SVC_UNIPRO_SLOW_AUTO_MODE, - 1, 2, + 2, 1, GB_SVC_UNIPRO_SLOW_AUTO_MODE, - 1, 2, + 2, 1, 0, 0); return ret; |