Advertisement
Guest User

Untitled

a guest
Mar 16th, 2015
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. /*
  2. TurboSight TBS PCIE DVB driver
  3. Copyright (C) 2014 Konstantin Dimitrov <kosio.dimitrov@gmail.com>
  4.  
  5. Copyright (C) 2014 www.tbsdtv.com
  6. */
  7.  
  8. #ifndef _TBS_PCIE_H_
  9. #define _TBS_PCIE_H_
  10.  
  11. #include <linux/pci.h>
  12. #include <linux/interrupt.h>
  13.  
  14. #include "dvb_demux.h"
  15. #include "dmxdev.h"
  16. #include "dvb_frontend.h"
  17. #include "dvb_net.h"
  18.  
  19. #define TBS_PCIE_WRITE(__addr, __offst, __data) writel((__data), (dev->mmio + (__addr + __offst)))
  20. #define TBS_PCIE_READ(__addr, __offst) readl((dev->mmio + (__addr + __offst)))
  21.  
  22. struct tbs_pcie_dev;
  23. struct tbs_adapter;
  24.  
  25. struct tbs_adap_config {
  26. u32 ts_in;
  27. };
  28.  
  29. struct tbs_card_config {
  30. char *model_name;
  31. char *dev_type;
  32.  
  33. int adapters;
  34.  
  35. int (*frontend_attach)(struct tbs_adapter *adapter, int type);
  36.  
  37. irqreturn_t (*irq_handler)(int irq, void *dev_id);
  38.  
  39. struct tbs_adap_config adap_config[4];
  40. };
  41.  
  42. struct tbs_i2c {
  43. struct tbs_pcie_dev *dev;
  44. u8 i2c_dev;
  45. struct i2c_adapter i2c_adap;
  46. u32 base;
  47. int ready;
  48. wait_queue_head_t wq;
  49. };
  50.  
  51. struct tbs_adapter {
  52. struct tbs_pcie_dev *dev;
  53. struct tbs_i2c *i2c;
  54.  
  55. struct tasklet_struct tasklet;
  56. spinlock_t adap_lock;
  57. int active;
  58.  
  59. u32 buffer_size;
  60. u32 buffer;
  61. u8 sync_offset;
  62.  
  63. struct dvb_adapter dvb_adapter;
  64. struct dvb_frontend *fe;
  65. struct dvb_demux demux;
  66. struct dmxdev dmxdev;
  67. struct dvb_net dvbnet;
  68. struct dmx_frontend fe_hw;
  69. struct dmx_frontend fe_mem;
  70.  
  71. int feeds;
  72. int count;
  73. int tsin;
  74. };
  75.  
  76. struct tbs_pcie_dev {
  77. struct pci_dev *pdev;
  78. void __iomem *mmio;
  79.  
  80. dma_addr_t mem_addr_phys;
  81. __le32 * mem_addr_virt;
  82.  
  83. struct tbs_adapter tbs_pcie_adap[4];
  84. struct tbs_i2c i2c_bus[4];
  85.  
  86. struct tbs_card_config *card_config;
  87. u8 int_type;
  88. };
  89.  
  90. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement