displayconfig: Add support for AllowIdleFallback interface
Change-Id: Ibe07e550faa33bf68bc12bcd0ae5ffc1ffdf4a20 CRs-Fixed: 2928557
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
bf1eb9996d
commit
5b6eff8fb6
@@ -42,6 +42,7 @@
|
|||||||
// client code will automatically get compiled.
|
// client code will automatically get compiled.
|
||||||
#define DISPLAY_CONFIG_API_LEVEL_0
|
#define DISPLAY_CONFIG_API_LEVEL_0
|
||||||
#define DISPLAY_CONFIG_API_LEVEL_1
|
#define DISPLAY_CONFIG_API_LEVEL_1
|
||||||
|
#define DISPLAY_CONFIG_API_LEVEL_2
|
||||||
|
|
||||||
namespace DisplayConfig {
|
namespace DisplayConfig {
|
||||||
|
|
||||||
@@ -324,6 +325,7 @@ class ConfigInterface {
|
|||||||
bool* /* supported */) DEFAULT_RET
|
bool* /* supported */) DEFAULT_RET
|
||||||
virtual int GetDisplayType(uint64_t /* physical_disp_id */,
|
virtual int GetDisplayType(uint64_t /* physical_disp_id */,
|
||||||
DisplayType* /* disp_type */) DEFAULT_RET
|
DisplayType* /* disp_type */) DEFAULT_RET
|
||||||
|
virtual int AllowIdleFallback() DEFAULT_RET
|
||||||
virtual int DummyDisplayConfigAPI() DEFAULT_RET
|
virtual int DummyDisplayConfigAPI() DEFAULT_RET
|
||||||
|
|
||||||
// deprecated APIs
|
// deprecated APIs
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ int ClientImpl::GetDisplayType(uint64_t physical_disp_id, DisplayType *disp_type
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ClientImpl::AllowIdleFallback() {
|
||||||
|
int error = 0;
|
||||||
|
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
|
||||||
|
error = err;
|
||||||
|
};
|
||||||
|
if (display_config_) {
|
||||||
|
display_config_->perform(client_handle_, kAllowIdleFallback, {}, {}, hidl_cb);
|
||||||
|
}
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
void ClientCallback::ParseNotifyCWBBufferDone(const ByteStream &input_params,
|
void ClientCallback::ParseNotifyCWBBufferDone(const ByteStream &input_params,
|
||||||
const HandleStream &input_handles) {
|
const HandleStream &input_handles) {
|
||||||
const int *error;
|
const int *error;
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ class ClientImpl : public ClientInterface {
|
|||||||
virtual int ControlIdleStatusCallback(bool enable);
|
virtual int ControlIdleStatusCallback(bool enable);
|
||||||
virtual int IsSupportedConfigSwitch(uint32_t disp_id, uint32_t config, bool *supported);
|
virtual int IsSupportedConfigSwitch(uint32_t disp_id, uint32_t config, bool *supported);
|
||||||
virtual int GetDisplayType(uint64_t physical_disp_id, DisplayType *disp_type);
|
virtual int GetDisplayType(uint64_t physical_disp_id, DisplayType *disp_type);
|
||||||
|
virtual int AllowIdleFallback();
|
||||||
virtual int DummyDisplayConfigAPI();
|
virtual int DummyDisplayConfigAPI();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -851,6 +851,11 @@ void DeviceImpl::DeviceClientContext::ParseGetDisplayType(const ByteStream &inpu
|
|||||||
_hidl_cb(error, output_params, {});
|
_hidl_cb(error, output_params, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeviceImpl::DeviceClientContext::ParseAllowIdleFallback(perform_cb _hidl_cb) {
|
||||||
|
int32_t error = intf_->AllowIdleFallback();
|
||||||
|
_hidl_cb(error, {}, {});
|
||||||
|
}
|
||||||
|
|
||||||
Return<void> DeviceImpl::perform(uint64_t client_handle, uint32_t op_code,
|
Return<void> DeviceImpl::perform(uint64_t client_handle, uint32_t op_code,
|
||||||
const ByteStream &input_params, const HandleStream &input_handles,
|
const ByteStream &input_params, const HandleStream &input_handles,
|
||||||
perform_cb _hidl_cb) {
|
perform_cb _hidl_cb) {
|
||||||
@@ -1019,6 +1024,9 @@ Return<void> DeviceImpl::perform(uint64_t client_handle, uint32_t op_code,
|
|||||||
case kGetDisplayType:
|
case kGetDisplayType:
|
||||||
client->ParseGetDisplayType(input_params, _hidl_cb);
|
client->ParseGetDisplayType(input_params, _hidl_cb);
|
||||||
break;
|
break;
|
||||||
|
case kAllowIdleFallback:
|
||||||
|
client->ParseAllowIdleFallback(_hidl_cb);
|
||||||
|
break;
|
||||||
case kDummyOpcode:
|
case kDummyOpcode:
|
||||||
_hidl_cb(-EINVAL, {}, {});
|
_hidl_cb(-EINVAL, {}, {});
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are
|
* modification, are permitted provided that the following conditions are
|
||||||
@@ -125,6 +125,7 @@ class DeviceImpl : public IDisplayConfig, public android::hardware::hidl_death_r
|
|||||||
perform_cb _hidl_cb);
|
perform_cb _hidl_cb);
|
||||||
void ParseIsSupportedConfigSwitch(const ByteStream &input_params, perform_cb _hidl_cb);
|
void ParseIsSupportedConfigSwitch(const ByteStream &input_params, perform_cb _hidl_cb);
|
||||||
void ParseGetDisplayType(const ByteStream &input_params, perform_cb _hidl_cb);
|
void ParseGetDisplayType(const ByteStream &input_params, perform_cb _hidl_cb);
|
||||||
|
void ParseAllowIdleFallback(perform_cb _hidl_cb);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigInterface *intf_ = nullptr;
|
ConfigInterface *intf_ = nullptr;
|
||||||
|
|||||||
@@ -82,7 +82,8 @@ enum OpCode {
|
|||||||
kControlIdleStatusCallback = 46,
|
kControlIdleStatusCallback = 46,
|
||||||
kIsSupportedConfigSwitch = 47,
|
kIsSupportedConfigSwitch = 47,
|
||||||
kGetDisplayType = 48,
|
kGetDisplayType = 48,
|
||||||
kDummyOpcode = 49,
|
kAllowIdleFallback = 49,
|
||||||
|
kDummyOpcode = 50,
|
||||||
|
|
||||||
kDestroy = 0xFFFF, // Destroy sequence execution
|
kDestroy = 0xFFFF, // Destroy sequence execution
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user