1 /* 2 * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #include "dp_types.h" 20 #include "cdp_txrx_cmn_reg.h" 21 22 void dp_configure_arch_ops(struct dp_soc *soc); 23 qdf_size_t dp_get_soc_context_size(uint16_t device_id); 24 25 #ifdef CONFIG_LITHIUM 26 void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops); 27 qdf_size_t dp_get_soc_context_size_li(void); 28 #endif 29 30 #ifdef CONFIG_BERYLLIUM 31 void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops); 32 qdf_size_t dp_get_soc_context_size_be(void); 33 #endif 34 35 static void dp_initialize_default_arch_ops(struct dp_arch_ops *arch_ops) 36 { 37 /* assign dummy functions for arch_ops which are architecture specific */ 38 } 39 40 qdf_size_t dp_get_soc_context_size(uint16_t device_id) 41 42 { 43 switch (cdp_get_arch_type_from_devid(device_id)) { 44 #ifdef CONFIG_LITHIUM 45 case CDP_ARCH_TYPE_LI: 46 return dp_get_soc_context_size_li(); 47 #endif 48 49 #ifdef CONFIG_BERYLLIUM 50 case CDP_ARCH_TYPE_BE: 51 return dp_get_soc_context_size_be(); 52 break; 53 #endif 54 default: 55 QDF_BUG(0); 56 } 57 58 return 0; 59 } 60 61 void dp_configure_arch_ops(struct dp_soc *soc) 62 { 63 dp_initialize_default_arch_ops(&soc->arch_ops); 64 65 switch (cdp_get_arch_type_from_devid(soc->device_id)) { 66 #ifdef CONFIG_LITHIUM 67 case CDP_ARCH_TYPE_LI: 68 dp_initialize_arch_ops_li(&soc->arch_ops); 69 break; 70 #endif 71 72 #ifdef CONFIG_BERYLLIUM 73 case CDP_ARCH_TYPE_BE: 74 dp_initialize_arch_ops_be(&soc->arch_ops); 75 break; 76 #endif 77 default: 78 QDF_BUG(0); 79 } 80 } 81