Lines Matching refs:esp
26 shost_printk(KERN_DEBUG, esp->host, f, ##a); \
91 struct esp *esp; member
95 static void pci_esp_dma_drain(struct esp *esp);
97 static inline struct pci_esp_priv *pci_esp_get_priv(struct esp *esp) in pci_esp_get_priv() argument
99 struct pci_dev *pdev = esp->dev; in pci_esp_get_priv()
104 static void pci_esp_write8(struct esp *esp, u8 val, unsigned long reg) in pci_esp_write8() argument
106 iowrite8(val, esp->regs + (reg * 4UL)); in pci_esp_write8()
109 static u8 pci_esp_read8(struct esp *esp, unsigned long reg) in pci_esp_read8() argument
111 return ioread8(esp->regs + (reg * 4UL)); in pci_esp_read8()
114 static void pci_esp_write32(struct esp *esp, u32 val, unsigned long reg) in pci_esp_write32() argument
116 return iowrite32(val, esp->regs + (reg * 4UL)); in pci_esp_write32()
119 static dma_addr_t pci_esp_map_single(struct esp *esp, void *buf, in pci_esp_map_single() argument
122 return pci_map_single(esp->dev, buf, sz, dir); in pci_esp_map_single()
125 static int pci_esp_map_sg(struct esp *esp, struct scatterlist *sg, in pci_esp_map_sg() argument
128 return pci_map_sg(esp->dev, sg, num_sg, dir); in pci_esp_map_sg()
131 static void pci_esp_unmap_single(struct esp *esp, dma_addr_t addr, in pci_esp_unmap_single() argument
134 pci_unmap_single(esp->dev, addr, sz, dir); in pci_esp_unmap_single()
137 static void pci_esp_unmap_sg(struct esp *esp, struct scatterlist *sg, in pci_esp_unmap_sg() argument
140 pci_unmap_sg(esp->dev, sg, num_sg, dir); in pci_esp_unmap_sg()
143 static int pci_esp_irq_pending(struct esp *esp) in pci_esp_irq_pending() argument
145 struct pci_esp_priv *pep = pci_esp_get_priv(esp); in pci_esp_irq_pending()
147 pep->dma_status = pci_esp_read8(esp, ESP_DMA_STATUS); in pci_esp_irq_pending()
159 static void pci_esp_reset_dma(struct esp *esp) in pci_esp_reset_dma() argument
164 static void pci_esp_dma_drain(struct esp *esp) in pci_esp_dma_drain() argument
170 if ((esp->sreg & ESP_STAT_PMASK) == ESP_DOP || in pci_esp_dma_drain()
171 (esp->sreg & ESP_STAT_PMASK) == ESP_DIP) in pci_esp_dma_drain()
176 resid = pci_esp_read8(esp, ESP_FFLAGS) & ESP_FF_FBYTES; in pci_esp_dma_drain()
190 pci_esp_write8(esp, ESP_DMA_CMD_DIR | ESP_DMA_CMD_BLAST, ESP_DMA_CMD); in pci_esp_dma_drain()
191 while (pci_esp_read8(esp, ESP_DMA_STATUS) & ESP_DMA_STAT_BCMPLT) { in pci_esp_dma_drain()
196 pci_esp_write8(esp, ESP_DMA_CMD_DIR | ESP_DMA_CMD_IDLE, ESP_DMA_CMD); in pci_esp_dma_drain()
200 struct esp_cmd_entry *ent = esp->active_cmd; in pci_esp_dma_drain()
206 static void pci_esp_dma_invalidate(struct esp *esp) in pci_esp_dma_invalidate() argument
208 struct pci_esp_priv *pep = pci_esp_get_priv(esp); in pci_esp_dma_invalidate()
212 pci_esp_write8(esp, ESP_DMA_CMD_IDLE, ESP_DMA_CMD); in pci_esp_dma_invalidate()
216 static int pci_esp_dma_error(struct esp *esp) in pci_esp_dma_error() argument
218 struct pci_esp_priv *pep = pci_esp_get_priv(esp); in pci_esp_dma_error()
221 u8 dma_cmd = pci_esp_read8(esp, ESP_DMA_CMD); in pci_esp_dma_error()
224 pci_esp_write8(esp, ESP_DMA_CMD_ABORT, ESP_DMA_CMD); in pci_esp_dma_error()
229 pci_esp_write8(esp, ESP_DMA_CMD_IDLE, ESP_DMA_CMD); in pci_esp_dma_error()
230 pep->dma_status = pci_esp_read8(esp, ESP_DMA_CMD); in pci_esp_dma_error()
236 static void pci_esp_send_dma_cmd(struct esp *esp, u32 addr, u32 esp_count, in pci_esp_send_dma_cmd() argument
239 struct pci_esp_priv *pep = pci_esp_get_priv(esp); in pci_esp_send_dma_cmd()
250 pci_esp_write8(esp, ESP_DMA_CMD_IDLE | val, ESP_DMA_CMD); in pci_esp_send_dma_cmd()
252 pci_esp_write8(esp, (esp_count >> 0) & 0xff, ESP_TCLOW); in pci_esp_send_dma_cmd()
253 pci_esp_write8(esp, (esp_count >> 8) & 0xff, ESP_TCMED); in pci_esp_send_dma_cmd()
254 if (esp->config2 & ESP_CONFIG2_FENAB) in pci_esp_send_dma_cmd()
255 pci_esp_write8(esp, (esp_count >> 16) & 0xff, ESP_TCHI); in pci_esp_send_dma_cmd()
257 pci_esp_write32(esp, esp_count, ESP_DMA_STC); in pci_esp_send_dma_cmd()
258 pci_esp_write32(esp, addr, ESP_DMA_SPA); in pci_esp_send_dma_cmd()
263 scsi_esp_cmd(esp, cmd); in pci_esp_send_dma_cmd()
265 pci_esp_write8(esp, ESP_DMA_CMD_START | val, ESP_DMA_CMD); in pci_esp_send_dma_cmd()
268 static u32 pci_esp_dma_length_limit(struct esp *esp, u32 dma_addr, u32 dma_len) in pci_esp_dma_length_limit() argument
277 if (esp->config2 & ESP_CONFIG2_FENAB) in pci_esp_dma_length_limit()
376 static void dc390_check_eeprom(struct esp *esp) in dc390_check_eeprom() argument
382 dc390_read_eeprom((struct pci_dev *)esp->dev, ptr); in dc390_check_eeprom()
389 struct pci_dev *pdev = esp->dev; in dc390_check_eeprom()
394 esp->scsi_id = EEbuf[DC390_EE_ADAPT_SCSI_ID]; in dc390_check_eeprom()
395 esp->num_tags = 2 << EEbuf[DC390_EE_TAG_CMD_NUM]; in dc390_check_eeprom()
397 esp->config4 |= ESP_CONFIG4_RADE | ESP_CONFIG4_RAE; in dc390_check_eeprom()
406 struct esp *esp; in pci_esp_probe_one() local
420 shost = scsi_host_alloc(hostt, sizeof(struct esp)); in pci_esp_probe_one()
436 esp = shost_priv(shost); in pci_esp_probe_one()
437 esp->host = shost; in pci_esp_probe_one()
438 esp->dev = pdev; in pci_esp_probe_one()
439 esp->ops = &pci_esp_ops; in pci_esp_probe_one()
445 esp->flags |= ESP_FLAG_USE_FIFO; in pci_esp_probe_one()
450 esp->config2 |= ESP_CONFIG2_FENAB; in pci_esp_probe_one()
452 pep->esp = esp; in pci_esp_probe_one()
460 esp->regs = pci_iomap(pdev, 0, pci_resource_len(pdev, 0)); in pci_esp_probe_one()
461 if (!esp->regs) { in pci_esp_probe_one()
466 esp->dma_regs = esp->regs; in pci_esp_probe_one()
470 esp->command_block = pci_alloc_consistent(pdev, 16, in pci_esp_probe_one()
471 &esp->command_block_dma); in pci_esp_probe_one()
472 if (!esp->command_block) { in pci_esp_probe_one()
482 DRV_MODULE_NAME, esp); in pci_esp_probe_one()
488 esp->scsi_id = 7; in pci_esp_probe_one()
489 dc390_check_eeprom(esp); in pci_esp_probe_one()
491 shost->this_id = esp->scsi_id; in pci_esp_probe_one()
497 esp->scsi_id_mask = (1 << esp->scsi_id); in pci_esp_probe_one()
499 esp->cfreq = 40000000; in pci_esp_probe_one()
501 err = scsi_esp_register(esp, &pdev->dev); in pci_esp_probe_one()
508 free_irq(pdev->irq, esp); in pci_esp_probe_one()
511 pci_free_consistent(pdev, 16, esp->command_block, in pci_esp_probe_one()
512 esp->command_block_dma); in pci_esp_probe_one()
514 pci_iounmap(pdev, esp->regs); in pci_esp_probe_one()
530 struct esp *esp = pep->esp; in pci_esp_remove_one() local
532 scsi_esp_unregister(esp); in pci_esp_remove_one()
533 free_irq(pdev->irq, esp); in pci_esp_remove_one()
535 pci_free_consistent(pdev, 16, esp->command_block, in pci_esp_remove_one()
536 esp->command_block_dma); in pci_esp_remove_one()
537 pci_iounmap(pdev, esp->regs); in pci_esp_remove_one()
542 scsi_host_put(esp->host); in pci_esp_remove_one()