hif_pci.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Copyright (c) 2013 Qualcomm Atheros, Inc.
  3. *
  4. * All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted (subject to the limitations in the
  8. * disclaimer below) provided that the following conditions are met:
  9. *
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. *
  13. * * Redistributions in binary form must reproduce the above copyright
  14. * notice, this list of conditions and the following disclaimer in the
  15. * documentation and/or other materials provided with the
  16. * distribution.
  17. *
  18. * * Neither the name of Qualcomm Atheros nor the names of its
  19. * contributors may be used to endorse or promote products derived
  20. * from this software without specific prior written permission.
  21. *
  22. * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
  23. * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
  24. * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
  25. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  26. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  27. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  28. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  29. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  30. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  31. * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  32. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  33. * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  34. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  35. */
  36. #ifndef __HIF_PCI_H
  37. #define __HIF_PCI_H
  38. #include <hif_api.h>
  39. #include <dma_lib.h>
  40. #define PCI_MAX_DATA_PKT_LEN 1664
  41. #define PCI_MAX_CMD_PKT_LEN 512
  42. #define PCI_MAX_BOOT_DESC 2
  43. typedef enum hif_pci_pipe_rx{
  44. HIF_PCI_PIPE_RX0, /*Normal Priority RX*/
  45. HIF_PCI_PIPE_RX1,
  46. HIF_PCI_PIPE_RX2,
  47. HIF_PCI_PIPE_RX3,
  48. HIF_PCI_PIPE_RX_MAX
  49. }hif_pci_pipe_rx_t;
  50. typedef enum hif_pci_pipe_tx{
  51. HIF_PCI_PIPE_TX0, /*Normal Priority TX*/
  52. HIF_PCI_PIPE_TX1,
  53. HIF_PCI_PIPE_TX_MAX
  54. }hif_pci_pipe_tx_t;
  55. typedef struct __pci_softc{
  56. HIF_CALLBACK sw;
  57. }__pci_softc_t;
  58. struct hif_pci_api{
  59. void (*pci_boot_init)(void);
  60. hif_handle_t (*pci_init)(HIF_CONFIG *pConfig);
  61. void (*pci_reset)(void);
  62. void (*pci_enable)(void);
  63. void (*pci_reap_xmitted)(__pci_softc_t *sc,
  64. dma_engine_t eng_no);
  65. void (*pci_reap_recv)(__pci_softc_t *sc, dma_engine_t eng_no);
  66. A_UINT8 (*pci_get_pipe)(dma_engine_t eng);
  67. dma_engine_t (*pci_get_tx_eng)(hif_pci_pipe_tx_t pipe);
  68. dma_engine_t (*pci_get_rx_eng)(hif_pci_pipe_rx_t pipe);
  69. };
  70. void hif_pci_api_install(struct hif_pci_api *apis);
  71. void hif_pci_module_install(struct hif_api *apis);
  72. #endif