Merge "sdm: Add support to change minimum encription level for hdcp"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
cb7c90c76b
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2018, 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
|
||||||
@@ -37,6 +37,7 @@
|
|||||||
#include <drm_res_mgr.h>
|
#include <drm_res_mgr.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
@@ -290,5 +291,31 @@ void HWTVDRM::DumpHDRMetaData(HWHDRLayerInfo::HDROperation operation) {
|
|||||||
hdr_metadata_.white_point_x, hdr_metadata_.white_point_y, hdr_metadata_.eotf);
|
hdr_metadata_.white_point_x, hdr_metadata_.white_point_y, hdr_metadata_.eotf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DisplayError HWTVDRM::OnMinHdcpEncryptionLevelChange(uint32_t min_enc_level) {
|
||||||
|
DisplayError error = kErrorNone;
|
||||||
|
int fd = -1;
|
||||||
|
char data[kMaxStringLength] = {'\0'};
|
||||||
|
|
||||||
|
snprintf(data, sizeof(data), "/sys/devices/virtual/hdcp/msm_hdcp/min_level_change");
|
||||||
|
|
||||||
|
fd = Sys::open_(data, O_WRONLY);
|
||||||
|
if (fd < 0) {
|
||||||
|
DLOGE("File '%s' could not be opened. errno = %d, desc = %s", data, errno, strerror(errno));
|
||||||
|
return kErrorHardware;
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(data, sizeof(data), "%d", min_enc_level);
|
||||||
|
|
||||||
|
ssize_t err = Sys::pwrite_(fd, data, strlen(data), 0);
|
||||||
|
if (err <= 0) {
|
||||||
|
DLOGE("Write failed, Error = %s", strerror(errno));
|
||||||
|
error = kErrorHardware;
|
||||||
|
}
|
||||||
|
|
||||||
|
Sys::close_(fd);
|
||||||
|
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace sdm
|
} // namespace sdm
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without modification, are permitted
|
* Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||||
* provided that the following conditions are met:
|
* provided that the following conditions are met:
|
||||||
@@ -48,6 +48,7 @@ class HWTVDRM : public HWDeviceDRM {
|
|||||||
virtual DisplayError Standby();
|
virtual DisplayError Standby();
|
||||||
virtual DisplayError Commit(HWLayers *hw_layers);
|
virtual DisplayError Commit(HWLayers *hw_layers);
|
||||||
virtual void PopulateHWPanelInfo();
|
virtual void PopulateHWPanelInfo();
|
||||||
|
virtual DisplayError OnMinHdcpEncryptionLevelChange(uint32_t min_enc_level);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DisplayError UpdateHDRMetaData(HWLayers *hw_layers);
|
DisplayError UpdateHDRMetaData(HWLayers *hw_layers);
|
||||||
|
|||||||
Reference in New Issue
Block a user