diff options
| author | Andrew Jiang <andrewj@nvidia.com> | 2018-06-04 13:35:48 -0400 |
|---|---|---|
| committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-06-26 21:32:51 -0400 |
| commit | fb47ce0408a451b2d1bb7b6fc708d3df9826461a (patch) | |
| tree | c79509234033bed301ea7a547e6507e0a966d8d2 /include/media/capture_isp.h | |
| parent | 8835b72ded37eb90a779b89f931eb69aaa21add3 (diff) | |
media: tegra: camera: Combined requests support
UMD will now send a combined request that potentially contains both
process request parameters as well as program request parameters.
We expect the process request parameters to always be present, but
presence of the program request parameters are optional. Therefore,
add isp_capture_request_ex to handle the new struct.
Note: This simply reduces the number of ioctl calls from UMD to KMD
from 2 to 1; we are still making 2 IVC calls to RCE for the process
and program requests respectively.
Bug 200391468
Change-Id: I4cf5881335f0fb076c7537945e2cd3c76ff09fa9
Signed-off-by: Andrew Jiang <andrewj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1739342
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Sudhir Vyas <svyas@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ian Kaszubski <ikaszubski@nvidia.com>
Reviewed-by: Bhanu Murthy V <bmurthyv@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/media/capture_isp.h')
| -rw-r--r-- | include/media/capture_isp.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/media/capture_isp.h b/include/media/capture_isp.h index b4a03e53a..d6e0ca1ca 100644 --- a/include/media/capture_isp.h +++ b/include/media/capture_isp.h | |||
| @@ -74,6 +74,12 @@ struct isp_program_req { | |||
| 74 | struct capture_isp_reloc isp_program_relocs; | 74 | struct capture_isp_reloc isp_program_relocs; |
| 75 | } __ISP_CAPTURE_ALIGN; | 75 | } __ISP_CAPTURE_ALIGN; |
| 76 | 76 | ||
| 77 | struct isp_capture_req_ex { | ||
| 78 | struct isp_capture_req capture_req; | ||
| 79 | struct isp_program_req program_req; | ||
| 80 | uint32_t __pad[4]; | ||
| 81 | } __ISP_CAPTURE_ALIGN; | ||
| 82 | |||
| 77 | int isp_capture_init(struct tegra_isp_channel *chan); | 83 | int isp_capture_init(struct tegra_isp_channel *chan); |
| 78 | void isp_capture_shutdown(struct tegra_isp_channel *chan); | 84 | void isp_capture_shutdown(struct tegra_isp_channel *chan); |
| 79 | int isp_capture_setup(struct tegra_isp_channel *chan, | 85 | int isp_capture_setup(struct tegra_isp_channel *chan, |
| @@ -91,4 +97,6 @@ int isp_capture_status(struct tegra_isp_channel *chan, | |||
| 91 | int isp_capture_program_request(struct tegra_isp_channel *chan, | 97 | int isp_capture_program_request(struct tegra_isp_channel *chan, |
| 92 | struct isp_program_req *req); | 98 | struct isp_program_req *req); |
| 93 | int isp_capture_program_status(struct tegra_isp_channel *chan); | 99 | int isp_capture_program_status(struct tegra_isp_channel *chan); |
| 100 | int isp_capture_request_ex(struct tegra_isp_channel *chan, | ||
| 101 | struct isp_capture_req_ex *capture_req_ex); | ||
| 94 | #endif | 102 | #endif |
