qdf_dev.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Copyright (c) 2018 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. * DOC: qdf_dev
  20. * QCA driver framework (QDF) device management APIs
  21. */
  22. #if !defined(__QDF_DEV_H)
  23. #define __QDF_DEV_H
  24. /* Include Files */
  25. #include <qdf_types.h>
  26. struct qdf_cpu_mask;
  27. struct qdf_devm;
  28. /**
  29. * qdf_dev_alloc_mem() - allocate memory
  30. * @qdfdev: Device handle
  31. * @mrptr: Pointer to the allocated memory
  32. * @reqsize: Allocation request in bytes
  33. * @mask: Property mask to be associated to the allocated memory
  34. *
  35. * This function will acquire memory to be associated with a device
  36. *
  37. * Return: QDF_STATUS_SUCCESS on success
  38. */
  39. QDF_STATUS
  40. qdf_dev_alloc_mem(qdf_device_t qdfdev, struct qdf_devm **mrptr,
  41. uint32_t reqsize, uint32_t mask);
  42. /**
  43. * qdf_dev_release_mem() - release memory
  44. * @qdfdev: Device handle
  45. * @mrptr: Pointer to the allocated memory
  46. *
  47. * This function will acquire memory to be associated with a device
  48. *
  49. * Return: QDF_STATUS_SUCCESS on success
  50. */
  51. QDF_STATUS
  52. qdf_dev_release_mem(qdf_device_t qdfdev, struct qdf_devm *mrptr);
  53. /**
  54. * qdf_dev_modify_irq() - modify irq
  55. * @irnum: irq number
  56. * @cmask: Bitmap to be cleared for the property mask
  57. * @smask: Bitmap to be set for the property mask
  58. *
  59. * This function will acquire memory to be associated with a device
  60. *
  61. * Return: QDF_STATUS_SUCCESS on success
  62. */
  63. QDF_STATUS
  64. qdf_dev_modify_irq_status(uint32_t irnum, unsigned long cmask,
  65. unsigned long smask);
  66. /**
  67. * qdf_dev_set_irq_affinity() - set irq affinity
  68. * @irnum: irq number
  69. * @cpmask: cpu affinity bitmap
  70. *
  71. * This function will set the affinity level for an irq
  72. *
  73. * Return: QDF_STATUS_SUCCESS on success
  74. */
  75. QDF_STATUS
  76. qdf_dev_set_irq_affinity(uint32_t irnum, struct qdf_cpu_mask *cpmask);
  77. #endif