commonsys-intf: Smomo support for multi-display
Change-Id: Ibde69a017f5cbde116aa17bc415deeb8812d88e0
This commit is contained in:
@@ -27,6 +27,42 @@
|
|||||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Changes from Qualcomm Innovation Center are provided under the following license:
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted (subject to the limitations in the
|
||||||
|
* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
|
||||||
|
* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
|
||||||
|
* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __COMPOSER_EXTN_INTF_H__
|
#ifndef __COMPOSER_EXTN_INTF_H__
|
||||||
#define __COMPOSER_EXTN_INTF_H__
|
#define __COMPOSER_EXTN_INTF_H__
|
||||||
|
|
||||||
@@ -34,6 +70,7 @@
|
|||||||
#include "frame_scheduler_intf.h"
|
#include "frame_scheduler_intf.h"
|
||||||
#include "display_extn_intf.h"
|
#include "display_extn_intf.h"
|
||||||
#include "phase_offset_extn_intf.h"
|
#include "phase_offset_extn_intf.h"
|
||||||
|
#include "smomo_interface.h"
|
||||||
|
|
||||||
#define COMPOSER_EXTN_REV_MAJOR (1)
|
#define COMPOSER_EXTN_REV_MAJOR (1)
|
||||||
#define COMPOSER_EXTN_REV_MINOR (0)
|
#define COMPOSER_EXTN_REV_MINOR (0)
|
||||||
@@ -50,6 +87,8 @@ class ComposerExtnIntf {
|
|||||||
virtual void DestroyDisplayExtn(DisplayExtnIntf *intf) = 0;
|
virtual void DestroyDisplayExtn(DisplayExtnIntf *intf) = 0;
|
||||||
virtual int CreatePhaseOffsetExtn(PhaseOffsetExtnIntf **intf) = 0;
|
virtual int CreatePhaseOffsetExtn(PhaseOffsetExtnIntf **intf) = 0;
|
||||||
virtual void DestroyPhaseOffsetExtn(PhaseOffsetExtnIntf *intf) = 0;
|
virtual void DestroyPhaseOffsetExtn(PhaseOffsetExtnIntf *intf) = 0;
|
||||||
|
virtual bool CreateSmomoExtn(smomo::SmomoIntf **intf, smomo::DisplayInfo info) = 0;
|
||||||
|
virtual void DestroySmomoExtn(smomo::SmomoIntf *intf) = 0;
|
||||||
protected:
|
protected:
|
||||||
virtual ~ComposerExtnIntf() { }
|
virtual ~ComposerExtnIntf() { }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -22,6 +22,42 @@
|
|||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Changes from Qualcomm Innovation Center are provided under the following license:
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted (subject to the limitations in the
|
||||||
|
* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
|
||||||
|
* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
|
||||||
|
* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
|
||||||
|
*/
|
||||||
|
|
||||||
/*! @file smomo.h
|
/*! @file smomo.h
|
||||||
@brief Interface file for SmoMo which defines the public interface exposed to SmoMo clients.
|
@brief Interface file for SmoMo which defines the public interface exposed to SmoMo clients.
|
||||||
|
|
||||||
@@ -74,6 +110,17 @@ struct SmomoBufferStats {
|
|||||||
int64_t key; // buffer identity
|
int64_t key; // buffer identity
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum DisplayType {
|
||||||
|
kBuiltin,
|
||||||
|
kPluggable,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct DisplayInfo {
|
||||||
|
int32_t display_id;
|
||||||
|
DisplayType type;
|
||||||
|
bool is_primary;
|
||||||
|
};
|
||||||
|
|
||||||
/*! @brief SmoMo interface implemented by SmoMo library.
|
/*! @brief SmoMo interface implemented by SmoMo library.
|
||||||
|
|
||||||
@details This class declares prototype for SmoMo public interfaces which must be
|
@details This class declares prototype for SmoMo public interfaces which must be
|
||||||
@@ -227,6 +274,16 @@ class SmomoIntf {
|
|||||||
@return \link bool \endlink
|
@return \link bool \endlink
|
||||||
*/
|
*/
|
||||||
virtual bool LowLatencyMode() = 0;
|
virtual bool LowLatencyMode() = 0;
|
||||||
|
|
||||||
|
/*! @brief Enable/Disable Refresh Rate change.
|
||||||
|
|
||||||
|
@details This function is called by SmoMo clients used to control
|
||||||
|
refresh rate change.
|
||||||
|
|
||||||
|
@return \link void \endlink
|
||||||
|
*/
|
||||||
|
virtual void SetRefreshRateChangeStatus(bool enable) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef bool (*CreateSmomoInterface)(uint16_t version, SmomoIntf **interface);
|
typedef bool (*CreateSmomoInterface)(uint16_t version, SmomoIntf **interface);
|
||||||
|
|||||||
Reference in New Issue
Block a user