Skip to content

Commit

Permalink
Merge tag 'LA.QSSI.12.0.r1-05800.02-qssi.0' of https://source.codeaur…
Browse files Browse the repository at this point in the history
…ora.org/quic/la/platform/vendor/qcom-opensource/display-commonsys into HEAD

"LA.QSSI.12.0.r1-05800.02-qssi.0"

* tag 'LA.QSSI.12.0.r1-05800.02-qssi.0' of https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/display-commonsys:
  commonsys: services: upgrade IDC 2.0 for backward compatible

Change-Id: I394f57568d69a3a845f2b181b939a1500bacf503
  • Loading branch information
palaych committed Jan 29, 2022
2 parents f3efc56 + dd4c49c commit 7d819b8
Show file tree
Hide file tree
Showing 5 changed files with 268 additions and 18 deletions.
138 changes: 126 additions & 12 deletions services/config/src/client_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,21 @@ int ClientImpl::SetCameraLaunchStatus(uint32_t on) {
return error;
}

int ClientImpl::SetCameraSmoothInfo(CameraSmoothOp op, uint32_t fps) {
CameraSmoothInfo input = {op, fps};
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&input),
sizeof(CameraSmoothInfo));
int error = 0;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};

display_config_->perform(client_handle_, kSetCameraSmoothInfo, input_params, {}, hidl_cb);

return error;
}

int ClientImpl::DisplayBWTransactionPending(bool *status) {
const bool *output;
ByteStream output_params;
Expand Down Expand Up @@ -849,6 +864,19 @@ int ClientImpl::ControlIdleStatusCallback(bool enable) {
return error;
}

int ClientImpl::ControlCameraSmoothCallback(bool enable) {
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&enable), sizeof(bool));
int32_t error = 0;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};

display_config_->perform(client_handle_, kControlCameraSmoothCallback, input_params, {}, hidl_cb);

return error;
}

int ClientImpl::SendTUIEvent(DisplayType dpy, TUIEventType event_type) {
struct TUIEventParams input = {dpy, event_type};
ByteStream input_params;
Expand All @@ -863,6 +891,18 @@ int ClientImpl::SendTUIEvent(DisplayType dpy, TUIEventType event_type) {
return error;
}

int ClientImpl::DummyDisplayConfigAPI() {
int error = 0;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};
display_config_->perform(client_handle_, kDummyOpcode, {}, {}, hidl_cb);
if (error) {
return -EINVAL;
}
return error;
}

int ClientImpl::GetDisplayHwId(uint32_t disp_id, uint32_t *display_hw_id) {
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&disp_id), sizeof(uint32_t));
Expand Down Expand Up @@ -934,18 +974,6 @@ int ClientImpl::IsRCSupported(uint32_t disp_id, bool *supported) {
return error;
}

int ClientImpl::DummyDisplayConfigAPI() {
int error = 0;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};
display_config_->perform(client_handle_, kDummyOpcode, {}, {}, hidl_cb);
if (error) {
return -EINVAL;
}
return error;
}

int ClientImpl::IsSupportedConfigSwitch(uint32_t disp_id, uint32_t config, bool *supported) {
struct SupportedModesParams input = {disp_id, config};
ByteStream input_params;
Expand Down Expand Up @@ -1033,6 +1061,16 @@ void ClientCallback::ParseNotifyQsyncChange(const ByteStream &input_params) {
qsync_data->qsync_refresh_rate);
}

void ClientCallback::ParseNotifyCameraSmooth(const ByteStream &input_params) {
if (callback_ == nullptr || input_params.size() == 0) {
return;
}

const uint8_t *data = input_params.data();
const CameraSmoothInfo *camera_info = reinterpret_cast<const CameraSmoothInfo*>(data);
callback_->NotifyCameraSmoothInfo(camera_info->op, camera_info->fps);
}

void ClientCallback::ParseNotifyIdleStatus(const ByteStream &input_params) {
const bool *is_idle;
if (callback_ == nullptr || input_params.size() == 0) {
Expand All @@ -1044,6 +1082,79 @@ void ClientCallback::ParseNotifyIdleStatus(const ByteStream &input_params) {
callback_->NotifyIdleStatus(*is_idle);
}

int ClientImpl::GetDisplayTileCount(uint64_t physical_disp_id, uint32_t *num_h_tiles,
uint32_t *num_v_tiles) {
if (!num_h_tiles || !num_v_tiles) {
return -EINVAL;
}
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&physical_disp_id), sizeof(uint64_t));
int error = 0;
ByteStream output_params;
auto hidl_cb = [&error, &output_params] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
output_params = params;
};

display_config_->perform(client_handle_, kGetDisplayTileCount, input_params, {}, hidl_cb);

if (!error) {
const uint32_t *data = reinterpret_cast<const uint32_t*>(output_params.data());
*num_h_tiles = data ? *data : 0;
*num_v_tiles = data ? *(data + 1) : 0;
}

return error;
}

int ClientImpl::SetPowerModeTiled(uint64_t physical_disp_id, PowerMode power_mode,
uint32_t tile_h_loc, uint32_t tile_v_loc) {
struct PowerModeTiledParams input = {physical_disp_id, power_mode, tile_h_loc, tile_v_loc};
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&input),
sizeof(struct PowerModeTiledParams));
int error = 0;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};

display_config_->perform(client_handle_, kSetPowerModeTiled, input_params, {}, hidl_cb);

return error;
}

int ClientImpl::SetPanelBrightnessTiled(uint64_t physical_disp_id, uint32_t level,
uint32_t tile_h_loc, uint32_t tile_v_loc) {
struct PanelBrightnessTiledParams input = {physical_disp_id, level, tile_h_loc, tile_v_loc};
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&input),
sizeof(struct PanelBrightnessTiledParams));
int error = 0;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};

display_config_->perform(client_handle_, kSetPanelBrightnessTiled, input_params, {}, hidl_cb);

return error;
}

int ClientImpl::SetWiderModePreference(uint64_t physical_disp_id, WiderModePref mode_pref) {
struct WiderModePrefParams input = {physical_disp_id, mode_pref};
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&input),
sizeof(struct WiderModePrefParams));
int error = 0;
ByteStream output_params;
auto hidl_cb = [&error] (int32_t err, ByteStream params, HandleStream handles) {
error = err;
};

display_config_->perform(client_handle_, kSetWiderModePref, input_params, {}, hidl_cb);

return error;
}

Return<void> ClientCallback::perform(uint32_t op_code, const ByteStream &input_params,
const HandleStream &input_handles) {
switch (op_code) {
Expand All @@ -1056,6 +1167,9 @@ Return<void> ClientCallback::perform(uint32_t op_code, const ByteStream &input_p
case kControlIdleStatusCallback:
ParseNotifyIdleStatus(input_params);
break;
case kSetCameraSmoothInfo:
ParseNotifyCameraSmooth(input_params);
break;
default:
break;
}
Expand Down
10 changes: 10 additions & 0 deletions services/config/src/client_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class ClientCallback: public IDisplayConfigCallback {
void ParseNotifyCWBBufferDone(const ByteStream &input_params, const HandleStream &input_handles);
void ParseNotifyQsyncChange(const ByteStream &input_params);
void ParseNotifyIdleStatus(const ByteStream &input_params);
void ParseNotifyCameraSmooth(const ByteStream &input_params);
ConfigCallback *callback_ = nullptr;
};

Expand All @@ -89,6 +90,7 @@ class ClientImpl : public ClientInterface {
virtual int SetIdleTimeout(uint32_t value);
virtual int GetHDRCapabilities(DisplayType dpy, HDRCapsParams *caps);
virtual int SetCameraLaunchStatus(uint32_t on);
virtual int SetCameraSmoothInfo(CameraSmoothOp op, uint32_t fps);
virtual int DisplayBWTransactionPending(bool *status);
virtual int SetDisplayAnimating(uint64_t display_id, bool animating);
virtual int ControlIdlePowerCollapse(bool enable, bool synchronous);
Expand Down Expand Up @@ -127,6 +129,14 @@ class ClientImpl : public ClientInterface {
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 AllowIdleFallback();
virtual int GetDisplayTileCount(uint64_t physical_disp_id, uint32_t *num_h_tiles,
uint32_t *num_v_tiles);
virtual int SetPowerModeTiled(uint64_t physical_disp_id, PowerMode power_mode,
uint32_t tile_h_loc, uint32_t tile_v_loc);
virtual int SetPanelBrightnessTiled(uint64_t physical_disp_id, uint32_t level,
uint32_t tile_h_loc, uint32_t tile_v_loc);
virtual int SetWiderModePreference(uint64_t physical_disp_id, WiderModePref mode_pref);
virtual int ControlCameraSmoothCallback(bool enable);
virtual int DummyDisplayConfigAPI();

private:
Expand Down
Loading

0 comments on commit 7d819b8

Please sign in to comment.