mu3d_hal_osal.c 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #define _USB_OSAI_EXT_
  2. #include "mu3d_hal_osal.h"
  3. #undef _USB_OSAI_EXT_
  4. void os_ms_delay(unsigned int ui4_delay)
  5. {
  6. mdelay(ui4_delay);
  7. }
  8. void os_us_delay(unsigned int ui4_delay)
  9. {
  10. udelay(ui4_delay);
  11. }
  12. void os_ms_sleep(unsigned int ui4_sleep)
  13. {
  14. msleep(ui4_sleep);
  15. }
  16. #ifdef NEVER
  17. void os_spin_lock(spinlock_t *lock)
  18. {
  19. /* spin_lock(lock); */
  20. }
  21. void os_spin_unlock(spinlock_t *lock)
  22. {
  23. /* spin_unlock(lock); */
  24. }
  25. #endif /* NEVER */
  26. void os_memcpy(DEV_INT8 *pv_to, DEV_INT8 *pv_from, size_t z_l)
  27. {
  28. /*FIXME: just use memcpy(), why use this???? */
  29. DEV_INT32 i;
  30. if ((pv_to != NULL) || (z_l == 0)) {
  31. for (i = 0; i < z_l; i++)
  32. *(pv_to + i) = *(pv_from + i);
  33. } else {
  34. BUG_ON(1);
  35. }
  36. }
  37. #ifdef NEVER
  38. void *os_virt_to_phys(void *vaddr)
  39. {
  40. return virt_to_phys(vaddr);
  41. }
  42. #endif /* NEVER */
  43. void *os_phys_to_virt(void *paddr)
  44. {
  45. /* return phys_to_virt((phys_addr_t)paddr); */
  46. return phys_to_virt((phys_addr_t) (long)paddr);
  47. }
  48. #ifdef NEVER
  49. void *os_ioremap(void *paddr, DEV_UINT32 t_size)
  50. {
  51. /* return ioremap(paddr,t_size); */
  52. return ioremap_nocache(paddr, t_size);
  53. }
  54. void os_iounmap(void *vaddr)
  55. {
  56. iounmap(vaddr);
  57. vaddr = NULL;
  58. }
  59. #endif /* NEVER */
  60. void *os_memset(void *pv_to, DEV_UINT8 ui1_c, size_t z_l)
  61. {
  62. if ((pv_to != NULL) || (z_l == 0))
  63. return memset(pv_to, ui1_c, z_l);
  64. /* else */
  65. BUG_ON(1);
  66. return pv_to;
  67. }
  68. void *os_mem_alloc(size_t z_size)
  69. {
  70. void *pv_mem = NULL;
  71. pv_mem = kmalloc(z_size, GFP_NOIO);
  72. if (pv_mem == NULL) {
  73. /*WARNING:OOM_MESSAGE: Possible unnecessary 'out of memory' message*/
  74. /*pr_err("kmalloc fail!!\n");*/
  75. BUG_ON(1);
  76. }
  77. return pv_mem;
  78. }
  79. void os_mem_free(void *pv_mem)
  80. {
  81. kfree(pv_mem);
  82. pv_mem = NULL;
  83. }
  84. void os_disableIrq(DEV_UINT32 irq)
  85. {
  86. disable_irq(irq);
  87. os_ms_delay(20);
  88. }
  89. void os_enableIrq(DEV_UINT32 irq)
  90. {
  91. enable_irq(irq);
  92. }
  93. void os_clearIrq(DEV_UINT32 irq)
  94. {
  95. os_writel(U3D_LV1IECR, os_readl(U3D_LV1ISR));
  96. }
  97. void os_get_random_bytes(void *buf, DEV_INT32 nbytes)
  98. {
  99. get_random_bytes(buf, nbytes);
  100. }
  101. void os_disableDcache(void)
  102. {
  103. /* HalDisableDCache(); */
  104. }
  105. void os_flushinvalidateDcache(void)
  106. {
  107. /* HalFlushInvalidateDCache(); */
  108. }
  109. /*----------------------------------------------------------------------------
  110. * Function: os_reg_isr()
  111. *
  112. * Description:
  113. * this API registers an ISR with its vector id. it performs
  114. * 1. parse argument.
  115. * 2. guard isr.
  116. * 3. call OS driver reg isr API.
  117. *
  118. * Inputs:
  119. * ui2_vec_id: an vector id to register an ISR.
  120. * pf_isr: pointer to a ISR to set.
  121. * ppf_old_isr: pointer to hold the current ISR setting.
  122. *
  123. * Outputs:
  124. * None
  125. *---------------------------------------------------------------------------*/
  126. int os_reg_isr(DEV_UINT32 irq, irq_handler_t handler, void *isrbuffer)
  127. {
  128. DEV_INT32 i4_ret;
  129. i4_ret = request_irq(irq, handler, /* our handler */
  130. IRQF_TRIGGER_LOW, "usb device handler", isrbuffer);
  131. return i4_ret;
  132. }
  133. void os_free_isr(DEV_UINT32 irq, void *isrbuffer)
  134. {
  135. free_irq(irq, isrbuffer);
  136. }