107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani/* 235bc51c90d4db20eeae2c2e807f5e045328cb8c2Sachin Bhayare * Copyright (c) 2014,2016, The Linux Foundation. All rights reserved. 307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * 407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * Redistribution and use in source and binary forms, with or without 507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * modification, are permitted provided that the following conditions are 607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * met: 707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * * Redistributions of source code must retain the above copyright 807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * notice, this list of conditions and the following disclaimer. 907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * * Redistributions in binary form must reproduce the above 1007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * copyright notice, this list of conditions and the following 1107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * disclaimer in the documentation and/or other materials provided 1207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * with the distribution. 1307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * * Neither the name of The Linux Foundation nor the names of its 1407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * contributors may be used to endorse or promote products derived 1507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * from this software without specific prior written permission. 1607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * 1707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 1807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 2007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 2107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 2407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 2607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 2707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani */ 2907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 3007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <hwc_qdcm.h> 3107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <hwc_utils.h> 3207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <IQService.h> 3307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <mdp_version.h> 3407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <dlfcn.h> 3507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 3607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniusing namespace android; 3707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniusing namespace qService; 3807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniusing namespace qhwc; 3907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 4007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaninamespace qQdcm { 4107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani//---------------------------------------------------------------------------- 4235bc51c90d4db20eeae2c2e807f5e045328cb8c2Sachin Bhayarevoid qdcmInitContext(hwc_context_t* /*ctx*/) 4307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani{ 4407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani} 4507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 4635bc51c90d4db20eeae2c2e807f5e045328cb8c2Sachin Bhayarevoid qdcmCloseContext(hwc_context_t* /*ctx*/) 4707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani{ 4807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani} 4907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 5035bc51c90d4db20eeae2c2e807f5e045328cb8c2Sachin Bhayarevoid qdcmApplyDefaultAfterBootAnimationDone(hwc_context_t* /*ctx*/) 5107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani{ 5207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani int ret = 0; 5307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani int (*applyMode)(int) = NULL; 5407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani void *modeHandle = NULL; 5507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 5607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani modeHandle = dlopen("libmm-qdcm.so", RTLD_NOW); 5707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani if (modeHandle) { 5807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *(void **)&applyMode = dlsym(modeHandle, "applyDefaults"); 5907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani if (applyMode) { 6007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani ret = applyMode(HWC_DISPLAY_PRIMARY); 6107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani if (ret) 6207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani ALOGE("%s: Not able to apply default mode", __FUNCTION__); 6307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani } else { 6407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani ALOGE("%s: No symbol applyDefaults found", __FUNCTION__); 6507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani } 6607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani dlclose(modeHandle); 6707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani } else { 6807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani ALOGE("%s: Not able to load libmm-qdcm.so", __FUNCTION__); 6907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani } 7007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani} 7107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 7207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani//do nothing in case qdcm legacy implementation. 7335bc51c90d4db20eeae2c2e807f5e045328cb8c2Sachin Bhayarevoid qdcmCmdsHandler(hwc_context_t* /*ctx*/, const Parcel* /*in*/, Parcel* /*out*/) 7407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani{ 7507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani} 7607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 7707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 7807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani} //namespace qQdcm 7907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 80