/* * Copyright 2013 Advanced Micro Devices, Inc. * All Rights Reserved. * * 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, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS 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. * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * Authors: Christian König <[email protected]> */ #include <linux/firmware.h> #include "radeon.h" #include "radeon_asic.h" #include "sid.h" #include "vce.h" #define VCE_V1_0_FW_SIZE … #define VCE_V1_0_STACK_SIZE … #define VCE_V1_0_DATA_SIZE … struct vce_v1_0_fw_signature { … }; /** * vce_v1_0_get_rptr - get read pointer * * @rdev: radeon_device pointer * @ring: radeon_ring pointer * * Returns the current hardware read pointer */ uint32_t vce_v1_0_get_rptr(struct radeon_device *rdev, struct radeon_ring *ring) { … } /** * vce_v1_0_get_wptr - get write pointer * * @rdev: radeon_device pointer * @ring: radeon_ring pointer * * Returns the current hardware write pointer */ uint32_t vce_v1_0_get_wptr(struct radeon_device *rdev, struct radeon_ring *ring) { … } /** * vce_v1_0_set_wptr - set write pointer * * @rdev: radeon_device pointer * @ring: radeon_ring pointer * * Commits the write pointer to the hardware */ void vce_v1_0_set_wptr(struct radeon_device *rdev, struct radeon_ring *ring) { … } void vce_v1_0_enable_mgcg(struct radeon_device *rdev, bool enable) { … } static void vce_v1_0_init_cg(struct radeon_device *rdev) { … } int vce_v1_0_load_fw(struct radeon_device *rdev, uint32_t *data) { … } unsigned vce_v1_0_bo_size(struct radeon_device *rdev) { … } int vce_v1_0_resume(struct radeon_device *rdev) { … } /** * vce_v1_0_start - start VCE block * * @rdev: radeon_device pointer * * Setup and start the VCE block */ int vce_v1_0_start(struct radeon_device *rdev) { … } int vce_v1_0_init(struct radeon_device *rdev) { … }