qdf_dev.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. struct qdf_dev;
  29. /**
  30. * qdf_dev_alloc_mem() - allocate memory
  31. * @qdfdev: Device handle
  32. * @mrptr: Pointer to the allocated memory
  33. * @reqsize: Allocation request in bytes
  34. * @mask: Property mask to be associated to the allocated memory
  35. *
  36. * This function will acquire memory to be associated with a device
  37. *
  38. * Return: QDF_STATUS_SUCCESS on success
  39. */
  40. QDF_STATUS
  41. qdf_dev_alloc_mem(struct qdf_dev *qdfdev, struct qdf_devm **mrptr,
  42. uint32_t reqsize, uint32_t mask);
  43. /**
  44. * qdf_dev_release_mem() - release memory
  45. * @qdfdev: Device handle
  46. * @mrptr: Pointer to the allocated memory
  47. *
  48. * This function will acquire memory to be associated with a device
  49. *
  50. * Return: QDF_STATUS_SUCCESS on success
  51. */
  52. QDF_STATUS
  53. qdf_dev_release_mem(struct qdf_dev *qdfdev, struct qdf_devm *mrptr);
  54. /**
  55. * qdf_dev_modify_irq() - modify irq
  56. * @irnum: irq number
  57. * @cmask: Bitmap to be cleared for the property mask
  58. * @smask: Bitmap to be set for the property mask
  59. *
  60. * This function will acquire memory to be associated with a device
  61. *
  62. * Return: QDF_STATUS_SUCCESS on success
  63. */
  64. QDF_STATUS
  65. qdf_dev_modify_irq_status(uint32_t irnum, unsigned long cmask,
  66. unsigned long smask);
  67. /**
  68. * qdf_dev_set_irq_affinity() - set irq affinity
  69. * @irnum: irq number
  70. * @cpmask: cpu affinity bitmap
  71. *
  72. * This function will set the affinity level for an irq
  73. *
  74. * Return: QDF_STATUS_SUCCESS on success
  75. */
  76. QDF_STATUS
  77. qdf_dev_set_irq_affinity(uint32_t irnum, struct qdf_cpu_mask *cpmask);
  78. #endif