| /* |
| * Copyright © 2021 The Fuchsia Authors |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining a |
| * copy of this software and associated documentation files (the "Software"), |
| * to deal in the Software without restriction, including without limitation |
| * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| * and/or sell copies of the Software, and to permit persons to whom the |
| * Software is furnished to do so, subject to the following conditions: |
| * |
| * The above copyright notice and this permission notice (including the next |
| * paragraph) shall be included in all copies or substantial portions of the |
| * Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
| * IN THE SOFTWARE. |
| * |
| */ |
| |
| #include "mos_bufmgr.h" |
| #include "mos_bufmgr_priv.h" |
| #include <assert.h> |
| #include <stdio.h> |
| |
| #define LOG_VERBOSE(msg, ...) do { \ |
| if (true) \ |
| fprintf(stderr, "%s:%d " msg "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ |
| fflush(stderr); \ |
| } while (0) |
| |
| int mos_gem_bo_wait(struct mos_linux_bo *bo, int64_t timeout_ns) |
| { |
| LOG_VERBOSE("mos_gem_bo_wait unimplemented"); |
| return 0; |
| } |
| |
| void mos_bufmgr_gem_enable_reuse(struct mos_bufmgr *bufmgr) |
| { |
| LOG_VERBOSE("mos_bufmgr_gem_enable_reuse unimplemented"); |
| } |
| |
| struct mos_linux_bo * mos_bo_gem_create_from_name(struct mos_bufmgr *bufmgr, |
| const char *name, |
| unsigned int handle) |
| { |
| LOG_VERBOSE("mos_bo_gem_create_from_name unimplemented"); |
| return NULL; |
| } |
| |
| int mos_gem_bo_map_wc(struct mos_linux_bo *bo) { |
| LOG_VERBOSE("mos_gem_bo_map_wc unimplemented"); |
| return 0; |
| } |
| |
| struct mos_linux_bo *mos_bo_gem_create_from_prime(struct mos_bufmgr *bufmgr, int prime_fd, int size) |
| { |
| LOG_VERBOSE("mos_bo_gem_create_from_prime unimplemented"); |
| return 0; |
| } |
| |
| int mos_gem_bo_map_gtt(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("mos_gem_bo_map_gtt unimplemented"); |
| return 0; |
| } |
| |
| int mos_gem_bo_map_unsynchronized(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("mos_gem_bo_map_unsynchronized unimplemented"); |
| return 0; |
| } |
| |
| void mos_gem_bo_start_gtt_access(struct mos_linux_bo *bo, int write_enable) |
| { |
| LOG_VERBOSE("mos_gem_bo_start_gtt_access unimplemented"); |
| } |
| |
| int mos_gem_bo_unmap_gtt(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("mos_gem_bo_unmap_gtt unimplemented"); |
| return 0; |
| } |
| |
| int mos_query_device_blob(int fd, MEDIA_SYSTEM_INFO* gfx_info) |
| { |
| LOG_VERBOSE("mos_query_device_blob unimplemented"); |
| return -1; |
| } |
| |
| int mos_query_engines_count(struct mos_bufmgr *bufmgr, |
| unsigned int *nengine) |
| |
| { |
| LOG_VERBOSE("mos_query_engines_count unimplemented"); |
| return 0; |
| } |
| |
| int mos_query_engines(struct mos_bufmgr *bufmgr, |
| __u16 engine_class, |
| __u64 caps, |
| unsigned int *nengine, |
| struct i915_engine_class_instance *ci) |
| { |
| LOG_VERBOSE("mos_query_engines unimplemented"); |
| return 0; |
| } |
| |
| int mos_get_context_param(struct mos_linux_context *ctx, |
| uint32_t size, |
| uint64_t param, |
| uint64_t *value) |
| { |
| LOG_VERBOSE("mos_get_context_param unimplemented"); |
| return 0; |
| } |
| |
| int mos_set_context_param(struct mos_linux_context *ctx, |
| uint32_t size, |
| uint64_t param, |
| uint64_t value) |
| { |
| LOG_VERBOSE("mos_set_context_param unimplemented"); |
| return 0; |
| } |
| |
| struct mos_linux_context *mos_gem_context_create_ext(struct mos_bufmgr *bufmgr, __u32 flags) |
| { |
| LOG_VERBOSE("mos_gem_context_create_ext unimplemented"); |
| return NULL; |
| } |
| |
| struct drm_i915_gem_vm_control* mos_gem_vm_create(struct mos_bufmgr *bufmgr) |
| { |
| LOG_VERBOSE("mos_gem_vm_create unimplemented"); |
| return NULL; |
| } |
| |
| struct mos_linux_context * |
| mos_gem_context_create_shared(struct mos_bufmgr *bufmgr, mos_linux_context* ctx, __u32 flags) |
| { |
| LOG_VERBOSE("mos_gem_context_create_shared unimplemented"); |
| return NULL; |
| } |
| |
| int |
| mos_get_reset_stats(struct mos_linux_context *ctx, |
| uint32_t *reset_count, |
| uint32_t *active, |
| uint32_t *pending) |
| { |
| LOG_VERBOSE("mos_get_reset_stats unimplemented"); |
| return 0; |
| } |
| |
| void mos_gem_vm_destroy(struct mos_bufmgr *bufmgr, struct drm_i915_gem_vm_control* vm) |
| { |
| LOG_VERBOSE("mos_gem_vm_destroy unimplemented"); |
| } |
| |
| int mos_gem_bo_unmap_wc(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("mos_gem_bo_unmap_wc unimplemented"); |
| return 0; |
| } |
| |
| int mos_get_context_param_sseu(struct mos_linux_context *ctx, |
| struct drm_i915_gem_context_param_sseu *sseu) { |
| LOG_VERBOSE("mos_get_context_param_sseu unimplemented"); |
| return 0; |
| } |
| |
| unsigned int mos_hweight8(uint8_t w) |
| { |
| LOG_VERBOSE("mos_hweight8 unimplemented"); |
| return 0; |
| } |
| |
| uint8_t mos_switch_off_n_bits(uint8_t in_mask, int n) |
| { |
| LOG_VERBOSE("mos_switch_off_n_bits unimplemented"); |
| return 0; |
| } |
| |
| int mos_set_context_param_sseu(struct mos_linux_context *ctx, |
| struct drm_i915_gem_context_param_sseu sseu) { |
| LOG_VERBOSE("mos_set_context_param_sseu unimplemented"); |
| return 0; |
| } |
| |
| int mos_set_context_param_load_balance(struct mos_linux_context *ctx, |
| struct i915_engine_class_instance *ci, |
| unsigned int count) |
| { |
| LOG_VERBOSE("mos_set_context_param_load_balance unimplemented"); |
| return 0; |
| } |
| |
| int mos_set_context_param_bond(struct mos_linux_context *ctx, |
| struct i915_engine_class_instance master_ci, |
| struct i915_engine_class_instance *bond_ci, |
| unsigned int bond_count) |
| { |
| LOG_VERBOSE("mos_set_context_param_bond unimplemented"); |
| return 0; |
| } |
| |
| int mos_set_context_param_parallel(struct mos_linux_context *ctx, |
| struct i915_engine_class_instance *ci, |
| unsigned int count) |
| { |
| LOG_VERBOSE("mos_set_context_param_parallel unimplemented"); |
| return 0; |
| } |
| |
| bool mos_gem_bo_is_exec_object_async(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("mos_gem_bo_is_exec_object_async unimplemented"); |
| return 0; |
| } |
| |
| int mos_gem_bo_context_exec3(struct mos_linux_bo **bo, int num_bo, struct mos_linux_context *ctx, |
| struct drm_clip_rect *cliprects, int num_cliprects, int DR4, |
| unsigned int flags, int *fence) |
| { |
| LOG_VERBOSE("mos_gem_bo_context_exec3 unimplemented"); |
| return 0; |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////////////////////////// |
| |
| int bufmgr_bo_get_subdata(struct mos_linux_bo *bo, unsigned long offset, |
| unsigned long size, void *data) |
| { |
| LOG_VERBOSE("bufmgr_bo_get_subdata not implemented"); |
| return 0; |
| } |
| |
| void bufmgr_bo_wait_rendering(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("bufmgr_bo_wait_rendering not implemented"); |
| } |
| |
| int bufmgr_bo_pad_to_size(struct mos_linux_bo *bo, uint64_t pad_to_size) |
| { |
| LOG_VERBOSE("bufmgr_bo_pad_to_size not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_emit_reloc(struct mos_linux_bo *bo, uint32_t offset, |
| struct mos_linux_bo *target_bo, uint32_t target_offset, |
| uint32_t read_domains, uint32_t write_domain) |
| { |
| LOG_VERBOSE("bufmgr_bo_emit_reloc not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_emit_reloc2(struct mos_linux_bo *bo, uint32_t offset, |
| struct mos_linux_bo *target_bo, uint32_t target_offset, |
| uint32_t read_domains, uint32_t write_domain, |
| uint64_t presumed_offset) |
| { |
| LOG_VERBOSE("bufmgr_bo_emit_reloc2 not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_emit_reloc_fence(struct mos_linux_bo *bo, uint32_t offset, |
| struct mos_linux_bo *target_bo, |
| uint32_t target_offset, |
| uint32_t read_domains, uint32_t write_domain) |
| { |
| LOG_VERBOSE("bufmgr_bo_emit_reloc_fence not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_pin(struct mos_linux_bo *bo, uint32_t alignment) |
| { |
| LOG_VERBOSE("bufmgr_bo_pin not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_unpin(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("bufmgr_bo_unpin not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_get_tiling(struct mos_linux_bo *bo, uint32_t * tiling_mode, |
| uint32_t * swizzle_mode) |
| { |
| LOG_VERBOSE("bufmgr_bo_get_tiling not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_set_tiling(struct mos_linux_bo *bo, uint32_t * tiling_mode, |
| uint32_t stride) |
| { |
| LOG_VERBOSE("bufmgr_bo_set_tiling not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_flink(struct mos_linux_bo *bo, uint32_t * name) |
| { |
| LOG_VERBOSE("bufmgr_bo_flink not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_exec2(struct mos_linux_bo *bo, int used, |
| drm_clip_rect_t *cliprects, int num_cliprects, |
| int DR4) |
| { |
| LOG_VERBOSE("bufmgr_bo_exec2 not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_mrb_exec2(struct mos_linux_bo *bo, int used, |
| drm_clip_rect_t *cliprects, int num_cliprects, int DR4, |
| unsigned int flags) |
| { |
| LOG_VERBOSE("bufmgr_bo_mrb_exec2 not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_busy(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("bufmgr_bo_busy not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_madvise(struct mos_linux_bo *bo, int madv) |
| { |
| LOG_VERBOSE("bufmgr_bo_madvise not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_check_aperture_space(struct mos_linux_bo **bo_array, int count) |
| { |
| LOG_VERBOSE("bufmgr_check_aperture_space not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_disable_reuse(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("bufmgr_bo_disable_reuse not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_is_reusable(struct mos_linux_bo *bo) |
| { |
| LOG_VERBOSE("bufmgr_bo_is_reusable not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_get_pipe_from_crtc_id(struct mos_bufmgr *bufmgr, int crtc_id) |
| { |
| LOG_VERBOSE("bufmgr_get_pipe_from_crtc_id not implemented"); |
| return 0; |
| } |
| |
| int bufmgr_bo_references(struct mos_linux_bo *bo, struct mos_linux_bo *target_bo) |
| { |
| LOG_VERBOSE("bufmgr_bo_references not implemented"); |
| return 0; |
| } |