display: Add APIs to capture concurrent writeback output
- Add IDisplayConfig APIs to specify cropping rectangle, post processed buffer attributes and capture concurrent writeback output. - Add IDisplayConfig APIs to configure bit clock dynamically. CRs-Fixed: 2476553 Change-Id: I9a33f9683fd3c374f8cda5a35d47cf80742abd94
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
b8d9147605
commit
cceeb64b2a
50
display/config/1.10/IDisplayCWBCallback.hal
Normal file
50
display/config/1.10/IDisplayCWBCallback.hal
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
* * Neither the name of The Linux Foundation. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package vendor.display.config@1.10;
|
||||||
|
|
||||||
|
interface IDisplayCWBCallback {
|
||||||
|
/*
|
||||||
|
* Notifies the client that display has filled concurrent writeback
|
||||||
|
* in the associated buffer successfully.
|
||||||
|
*
|
||||||
|
* @param buffer buffer where concurrent writeback output is written.
|
||||||
|
*/
|
||||||
|
@callflow(next="*")
|
||||||
|
oneway onBufferReady(handle buffer);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Notifies the client that display could not process concurrent writeback
|
||||||
|
* in the associated buffer and buffer is returned without any change.
|
||||||
|
*
|
||||||
|
* @param buffer buffer where concurrent writeback output failed to write.
|
||||||
|
*/
|
||||||
|
@callflow(next="*")
|
||||||
|
oneway onBufferError(handle buffer);
|
||||||
|
};
|
||||||
99
display/config/1.10/IDisplayConfig.hal
Normal file
99
display/config/1.10/IDisplayConfig.hal
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
* * Neither the name of The Linux Foundation. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package vendor.display.config@1.10;
|
||||||
|
|
||||||
|
import @1.9::IDisplayConfig;
|
||||||
|
import IDisplayCWBCallback;
|
||||||
|
|
||||||
|
interface IDisplayConfig extends @1.9::IDisplayConfig {
|
||||||
|
struct Rect {
|
||||||
|
uint32_t left;
|
||||||
|
uint32_t top;
|
||||||
|
uint32_t right;
|
||||||
|
uint32_t bottom;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the output buffer to be filled with the contents of the next
|
||||||
|
* composition performed for this display. Client can specify cropping
|
||||||
|
* rectangle for the partial concurrent writeback.
|
||||||
|
* Buffer must be ready for writeback before this API is called.
|
||||||
|
* If hardware protected content is displayed in next composition cycle,
|
||||||
|
* CWB output buffer will be returned as failure in callback and without
|
||||||
|
* any change in buffer.
|
||||||
|
*
|
||||||
|
* @param callback is the IDisplayCWBCallback object.
|
||||||
|
* @param disp_id display id where concurrent writeback shall be captured.
|
||||||
|
* @param post_processed whether to capture post processed or mixer output.
|
||||||
|
* @param rect cropping rectangle which shall be applied on blended output.
|
||||||
|
* @param buffer buffer where concurrent writeback output shall be written.
|
||||||
|
*
|
||||||
|
* @return error is NONE upon success.
|
||||||
|
*/
|
||||||
|
@callflow(next="*")
|
||||||
|
setCWBOutputBuffer(IDisplayCWBCallback callback,
|
||||||
|
uint32_t disp_id,
|
||||||
|
Rect rect,
|
||||||
|
bool post_processed,
|
||||||
|
handle buffer)
|
||||||
|
generates (int32_t error);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get supported bit clock values.
|
||||||
|
*
|
||||||
|
* @param disp_id display id.
|
||||||
|
*
|
||||||
|
* @return bit_clks vector of bit clock values.
|
||||||
|
*/
|
||||||
|
@callflow(next="*")
|
||||||
|
getSupportedDSIBitClks(uint32_t disp_id)
|
||||||
|
generates (vec<uint64_t> bit_clks);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve current bit clock value.
|
||||||
|
*
|
||||||
|
* @param disp_id display id.
|
||||||
|
*
|
||||||
|
* @return current bit clock value.
|
||||||
|
*/
|
||||||
|
@callflow(next="*")
|
||||||
|
getDSIClk(uint32_t disp_id) generates (uint64_t bit_clk);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve current bit clock value.
|
||||||
|
*
|
||||||
|
* @param disp_id display id.
|
||||||
|
* @param bit_clk desired bit clock value.
|
||||||
|
*
|
||||||
|
* @return error is NONE upon success.
|
||||||
|
*/
|
||||||
|
@callflow(next="*")
|
||||||
|
setDSIClk(uint32_t disp_id, uint64_t bit_clk) generates (int32_t error);
|
||||||
|
};
|
||||||
@@ -45,3 +45,5 @@ bff30d77ca2327e719a4bd6938bad222c5f1a87f0517b8baf9ef5c3edd0bdc35 vendor.display.
|
|||||||
ccf20944596b1cd140769257bdb93d10244b256d47e296ec84d41ed1261c1089 vendor.display.config@1.7::IDisplayConfig
|
ccf20944596b1cd140769257bdb93d10244b256d47e296ec84d41ed1261c1089 vendor.display.config@1.7::IDisplayConfig
|
||||||
a34b984a4eee8b76a123390002843f050288a92f0f0c6b8d576930f738858f4c vendor.display.config@1.8::IDisplayConfig
|
a34b984a4eee8b76a123390002843f050288a92f0f0c6b8d576930f738858f4c vendor.display.config@1.8::IDisplayConfig
|
||||||
fd36f8dbe80403d93f0e94651ae4efa1aa22053351e7783f5d99457cff9dbacc vendor.display.config@1.9::IDisplayConfig
|
fd36f8dbe80403d93f0e94651ae4efa1aa22053351e7783f5d99457cff9dbacc vendor.display.config@1.9::IDisplayConfig
|
||||||
|
f78bba2991501438ad9ca1a0812f6a2a3991cb178bec4c00bd8eec841777d8d9 vendor.display.config@1.10::IDisplayConfig
|
||||||
|
50369a070405a1f0cac44648f39ca32864c1339896d6eb16524b32fff9e95f03 vendor.display.config@1.10::IDisplayCWBCallback
|
||||||
Reference in New Issue
Block a user