resource_interface.h revision c8b83d4f19d3b8e8d701d1dc04c1224dbf14985d
1d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin/* 2c8b83d4f19d3b8e8d701d1dc04c1224dbf14985dNaveen Ramaraj* Copyright (c) 2015 - 2016, The Linux Foundation. All rights reserved. 3d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* 4d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* Redistribution and use in source and binary forms, with or without modification, are permitted 5d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* provided that the following conditions are met: 6d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* * Redistributions of source code must retain the above copyright notice, this list of 7d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* conditions and the following disclaimer. 8d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* * Redistributions in binary form must reproduce the above copyright notice, this list of 9d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* conditions and the following disclaimer in the documentation and/or other materials provided 10d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* with the distribution. 11d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* * Neither the name of The Linux Foundation nor the names of its contributors may be used to 12d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* endorse or promote products derived from this software without specific prior written 13d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* permission. 14d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* 15d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 18d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 19d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 21d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin*/ 24d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 25d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#ifndef __RESOURCE_INTERFACE_H__ 26d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define __RESOURCE_INTERFACE_H__ 27d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 28d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#include <core/display_interface.h> 29d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#include "hw_info_types.h" 30d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 31d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinnamespace sdm { 32d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 33d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinclass ResourceInterface { 34d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin public: 35d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError RegisterDisplay(DisplayType type, const HWDisplayAttributes &attributes, 36d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin const HWPanelInfo &hw_panel_info, Handle *display_ctx) = 0; 37d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError UnregisterDisplay(Handle display_ctx) = 0; 38d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual void ReconfigureDisplay(Handle display_ctx, const HWDisplayAttributes &attributes, 39d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin const HWPanelInfo &hw_panel_info) = 0; 40d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError Start(Handle display_ctx) = 0; 41d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError Stop(Handle display_ctx) = 0; 42d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError Acquire(Handle display_ctx, HWLayers *hw_layers) = 0; 43d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError PostPrepare(Handle display_ctx, HWLayers *hw_layers) = 0; 44d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError PostCommit(Handle display_ctx, HWLayers *hw_layers) = 0; 45d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual void Purge(Handle display_ctx) = 0; 46d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError SetMaxMixerStages(Handle display_ctx, uint32_t max_mixer_stages) = 0; 47d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError ValidateScaling(const LayerRect &crop, const LayerRect &dst, 48d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin bool rotate90, bool ubwc_tiled, 49d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin bool use_rotator_downscale) = 0; 50d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError ValidateCursorConfig(Handle display_ctx, const Layer &layer, 51d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin bool is_top) = 0; 52d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError ValidateCursorPosition(Handle display_ctx, HWLayers *hw_layers, 53d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin int x, int y) = 0; 54d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual DisplayError SetMaxBandwidthMode(HWBwModes mode) = 0; 55c8b83d4f19d3b8e8d701d1dc04c1224dbf14985dNaveen Ramaraj virtual DisplayError GetScaleLutConfig(HWScaleLutInfo *lut_info) = 0; 56d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 57d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin protected: 58d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual ~ResourceInterface() { } 59d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin}; 60d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 61d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin} // namespace sdm 62d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 63d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#endif // __RESOURCE_INTERFACE_H__ 64d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 65