1 /* SPDX-License-Identifier: MIT */ 2 /* Copyright © 2022 Advanced Micro Devices, Inc. All rights reserved. */ 3 4 #ifndef __DAL_CURSOR_CACHE_H__ 5 #define __DAL_CURSOR_CACHE_H__ 6 7 union reg_cursor_control_cfg { 8 struct { 9 uint32_t cur_enable: 1; 10 uint32_t reser0: 3; 11 uint32_t cur_2x_magnify: 1; 12 uint32_t reser1: 3; 13 uint32_t mode: 3; 14 uint32_t reser2: 5; 15 uint32_t pitch: 2; 16 uint32_t reser3: 6; 17 uint32_t line_per_chunk: 5; 18 uint32_t reser4: 3; 19 } bits; 20 uint32_t raw; 21 }; 22 struct cursor_position_cache_hubp { 23 union reg_cursor_control_cfg cur_ctl; 24 union reg_position_cfg { 25 struct { 26 uint32_t x_pos: 16; 27 uint32_t y_pos: 16; 28 } bits; 29 uint32_t raw; 30 } position; 31 union reg_hot_spot_cfg { 32 struct { 33 uint32_t x_hot: 16; 34 uint32_t y_hot: 16; 35 } bits; 36 uint32_t raw; 37 } hot_spot; 38 union reg_dst_offset_cfg { 39 struct { 40 uint32_t dst_x_offset: 13; 41 uint32_t reserved: 19; 42 } bits; 43 uint32_t raw; 44 } dst_offset; 45 }; 46 47 struct cursor_attribute_cache_hubp { 48 uint32_t SURFACE_ADDR_HIGH; 49 uint32_t SURFACE_ADDR; 50 union reg_cursor_control_cfg cur_ctl; 51 union reg_cursor_size_cfg { 52 struct { 53 uint32_t width: 16; 54 uint32_t height: 16; 55 } bits; 56 uint32_t raw; 57 } size; 58 union reg_cursor_settings_cfg { 59 struct { 60 uint32_t dst_y_offset: 8; 61 uint32_t chunk_hdl_adjust: 2; 62 uint32_t reserved: 22; 63 } bits; 64 uint32_t raw; 65 } settings; 66 }; 67 68 struct cursor_rect { 69 uint32_t x; 70 uint32_t y; 71 uint32_t w; 72 uint32_t h; 73 }; 74 75 union reg_cur0_control_cfg { 76 struct { 77 uint32_t cur0_enable: 1; 78 uint32_t expansion_mode: 1; 79 uint32_t reser0: 1; 80 uint32_t cur0_rom_en: 1; 81 uint32_t mode: 3; 82 uint32_t reserved: 25; 83 } bits; 84 uint32_t raw; 85 }; 86 struct cursor_position_cache_dpp { 87 union reg_cur0_control_cfg cur0_ctl; 88 }; 89 90 struct cursor_attribute_cache_dpp { 91 union reg_cur0_control_cfg cur0_ctl; 92 }; 93 94 struct cursor_attributes_cfg { 95 struct cursor_attribute_cache_hubp aHubp; 96 struct cursor_attribute_cache_dpp aDpp; 97 }; 98 99 #endif 100