atp870u.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _ATP870U_H
  3. #define _ATP870U_H
  4. #include <linux/types.h>
  5. #include <linux/kdev_t.h>
  6. /* I/O Port */
  7. #define MAX_CDB 12
  8. #define MAX_SENSE 14
  9. #define qcnt 32
  10. #define ATP870U_SCATTER 128
  11. #define MAX_ADAPTER 8
  12. #define MAX_SCSI_ID 16
  13. #define ATP870U_MAX_SECTORS 128
  14. #define ATP885_DEVID 0x808A
  15. #define ATP880_DEVID1 0x8080
  16. #define ATP880_DEVID2 0x8081
  17. //#define ED_DBGP
  18. struct atp_unit
  19. {
  20. unsigned long baseport;
  21. unsigned long ioport[2];
  22. unsigned long pciport[2];
  23. unsigned char last_cmd[2];
  24. unsigned char in_snd[2];
  25. unsigned char in_int[2];
  26. unsigned char quhd[2];
  27. unsigned char quend[2];
  28. unsigned char global_map[2];
  29. unsigned char host_id[2];
  30. unsigned int working[2];
  31. unsigned short wide_id[2];
  32. unsigned short active_id[2];
  33. unsigned short ultra_map[2];
  34. unsigned short async[2];
  35. unsigned char sp[2][16];
  36. unsigned char r1f[2][16];
  37. struct scsi_cmnd *quereq[2][qcnt];
  38. struct atp_id
  39. {
  40. unsigned char dirct;
  41. unsigned char devsp;
  42. unsigned char devtype;
  43. unsigned long tran_len;
  44. unsigned long last_len;
  45. unsigned char *prd_pos;
  46. unsigned char *prd_table; /* Kernel address of PRD table */
  47. dma_addr_t prd_bus; /* Bus address of PRD */
  48. dma_addr_t prdaddr; /* Dynamically updated in driver */
  49. struct scsi_cmnd *curr_req;
  50. } id[2][16];
  51. struct Scsi_Host *host;
  52. struct pci_dev *pdev;
  53. unsigned int unit;
  54. };
  55. #endif