_pthread_mutex_lock(&private_display->lock);
if (private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC) {
+ TDM_ERR("output(%p) support HWC. Use HWC functions", private_output);
*count = 0;
_pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_NONE;
+ return TDM_ERROR_BAD_REQUEST;
}
*count = 0;
if (private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC) {
_pthread_mutex_unlock(&private_display->lock);
+ TDM_ERR("output(%p) support HWC. Use HWC functions", private_output);
if (error)
- *error = TDM_ERROR_INVALID_PARAMETER;
+ *error = TDM_ERROR_BAD_REQUEST;
return NULL;
}
if (private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)
hwc_window = (tdm_hwc_window *)tdm_hwc_window_create_internal(private_output, error);
- else
+ else {
+ TDM_ERR("output(%p) not support HWC", private_output);
if (error)
*error = TDM_ERROR_BAD_REQUEST;
+ }
_pthread_mutex_unlock(&private_display->lock);
_pthread_mutex_lock(&private_display->lock);
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_BAD_REQUEST;
+ }
+
func_output = &private_display->func_output;
if (!func_output->output_hwc_validate) {
_pthread_mutex_lock(&private_display->lock);
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_BAD_REQUEST;
+ }
+
/* there's no reason to allow this */
if (private_output->need_validate.hndl) {
_pthread_mutex_lock(&private_display->lock);
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_BAD_REQUEST;
+ }
+
func_output = &private_display->func_output;
if (!func_output->output_hwc_get_changed_composition_types) {
_pthread_mutex_lock(&private_display->lock);
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_BAD_REQUEST;
+ }
+
func_output = &private_display->func_output;
if (!func_output->output_hwc_validate) {
_pthread_mutex_lock(&private_display->lock);
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ if (error)
+ *error = TDM_ERROR_BAD_REQUEST;
+ _pthread_mutex_unlock(&private_display->lock);
+ return NULL;
+ }
+
func_output = &private_display->func_output;
if (!func_output->output_hwc_get_target_buffer_queue) {
_pthread_mutex_lock(&private_display->lock);
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_BAD_REQUEST;
+ }
+
if (tdm_debug_dump & TDM_DUMP_FLAG_WINDOW) {
char str[TDM_PATH_LEN];
static int i;
TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED);
- if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC))
- return TDM_ERROR_NONE;
+ if (!(private_output->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC)) {
+ TDM_ERR("output(%p) not support HWC", private_output);
+ return TDM_ERROR_BAD_REQUEST;
+ }
/* build in eventfd fds into event_loop listened & handled by the tdm-thread */
fd = eventfd(0, 0);