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