dp_arch_ops.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. #include "dp_types.h"
  19. #include "cdp_txrx_cmn_reg.h"
  20. void dp_configure_arch_ops(struct dp_soc *soc);
  21. qdf_size_t dp_get_soc_context_size(uint16_t device_id);
  22. #ifdef CONFIG_LITHIUM
  23. void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops);
  24. qdf_size_t dp_get_soc_context_size_li(void);
  25. #endif
  26. #ifdef CONFIG_BERYLLIUM
  27. void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops);
  28. qdf_size_t dp_get_soc_context_size_be(void);
  29. #endif
  30. static void dp_initialize_default_arch_ops(struct dp_arch_ops *arch_ops)
  31. {
  32. /* assign dummy functions for arch_ops which are architecture specific */
  33. }
  34. qdf_size_t dp_get_soc_context_size(uint16_t device_id)
  35. {
  36. switch (cdp_get_arch_type_from_devid(device_id)) {
  37. #ifdef CONFIG_LITHIUM
  38. case CDP_ARCH_TYPE_LI:
  39. return dp_get_soc_context_size_li();
  40. #endif
  41. #ifdef CONFIG_BERYLLIUM
  42. case CDP_ARCH_TYPE_BE:
  43. return dp_get_soc_context_size_be();
  44. break;
  45. #endif
  46. default:
  47. QDF_BUG(0);
  48. }
  49. return 0;
  50. }
  51. void dp_configure_arch_ops(struct dp_soc *soc)
  52. {
  53. dp_initialize_default_arch_ops(&soc->arch_ops);
  54. switch (cdp_get_arch_type_from_devid(soc->device_id)) {
  55. #ifdef CONFIG_LITHIUM
  56. case CDP_ARCH_TYPE_LI:
  57. dp_initialize_arch_ops_li(&soc->arch_ops);
  58. break;
  59. #endif
  60. #ifdef CONFIG_BERYLLIUM
  61. case CDP_ARCH_TYPE_BE:
  62. dp_initialize_arch_ops_be(&soc->arch_ops);
  63. break;
  64. #endif
  65. default:
  66. QDF_BUG(0);
  67. }
  68. }