Lines Matching +full:broken +full:- +full:prefetch +full:- +full:cmd
1 // SPDX-License-Identifier: GPL-2.0
53 unsigned int rptime; /* tRP -- Ready to pause time (nsec) */
54 unsigned int cycletime; /* tCYCTYP2/2 -- avg Cycle Time (nsec) */
76 ideclk_period) - 1; in pata_bk3710_setudmamode()
77 tenv = DIV_ROUND_UP(20, ideclk_period) - 1; in pata_bk3710_setudmamode()
79 ideclk_period) - 1; in pata_bk3710_setudmamode()
112 cycletime = max_t(int, t->cycle, min_cycle); in pata_bk3710_setmwdmamode()
116 td = DIV_ROUND_UP(t->active, ideclk_period); in pata_bk3710_setmwdmamode()
117 tkw = t0 - td - 1; in pata_bk3710_setmwdmamode()
118 td--; in pata_bk3710_setmwdmamode()
136 void __iomem *base = (void __iomem *)ap->ioaddr.bmdma_addr; in pata_bk3710_set_dmamode()
137 int is_slave = adev->devno; in pata_bk3710_set_dmamode()
138 const u8 xferspeed = adev->dma_mode; in pata_bk3710_set_dmamode()
142 xferspeed - XFER_UDMA_0); in pata_bk3710_set_dmamode()
145 adev->id[ATA_ID_EIDE_DMA_MIN], in pata_bk3710_set_dmamode()
161 t2 = DIV_ROUND_UP(t->active, ideclk_period); in pata_bk3710_setpiomode()
163 t2i = t0 - t2 - 1; in pata_bk3710_setpiomode()
164 t2--; in pata_bk3710_setpiomode()
174 /* FIXME: this is broken also in the old driver */ in pata_bk3710_setpiomode()
176 u8 mode2 = pair->pio_mode - XFER_PIO_0; in pata_bk3710_setpiomode()
183 t0 = DIV_ROUND_UP(t->cyc8b, ideclk_period); in pata_bk3710_setpiomode()
184 t2 = DIV_ROUND_UP(t->act8b, ideclk_period); in pata_bk3710_setpiomode()
186 t2i = t0 - t2 - 1; in pata_bk3710_setpiomode()
187 t2--; in pata_bk3710_setpiomode()
201 void __iomem *base = (void __iomem *)ap->ioaddr.bmdma_addr; in pata_bk3710_set_piomode()
203 const struct ata_timing *t = ata_timing_find_mode(adev->pio_mode); in pata_bk3710_set_piomode()
204 const u16 *id = adev->id; in pata_bk3710_set_piomode()
206 int is_slave = adev->devno; in pata_bk3710_set_piomode()
207 const u8 pio = adev->pio_mode - XFER_PIO_0; in pata_bk3710_set_piomode()
215 /* conservative "downgrade" for all pre-ATA2 drives */ in pata_bk3710_set_piomode()
216 if (pio < 3 && cycle_time < t->cycle) in pata_bk3710_set_piomode()
221 cycle_time = t->cycle; in pata_bk3710_set_piomode()
243 * from enabling prefetch/postwrite. in pata_bk3710_chipinit()
248 * UDMACTL Ultra-ATA DMA Control in pata_bk3710_chipinit()
301 clk = devm_clk_get(&pdev->dev, NULL); in pata_bk3710_probe()
303 return -ENODEV; in pata_bk3710_probe()
308 return -EINVAL; in pata_bk3710_probe()
321 base = devm_ioremap_resource(&pdev->dev, mem); in pata_bk3710_probe()
329 host = ata_host_alloc(&pdev->dev, 1); in pata_bk3710_probe()
331 return -ENOMEM; in pata_bk3710_probe()
332 ap = host->ports[0]; in pata_bk3710_probe()
334 ap->ops = &pata_bk3710_ports_ops; in pata_bk3710_probe()
335 ap->pio_mask = ATA_PIO4; in pata_bk3710_probe()
336 ap->mwdma_mask = ATA_MWDMA2; in pata_bk3710_probe()
337 ap->udma_mask = rate < 100000000 ? ATA_UDMA4 : ATA_UDMA5; in pata_bk3710_probe()
338 ap->flags |= ATA_FLAG_SLAVE_POSS; in pata_bk3710_probe()
340 ap->ioaddr.data_addr = base + BK3710_TF_OFFSET; in pata_bk3710_probe()
341 ap->ioaddr.error_addr = base + BK3710_TF_OFFSET + 1; in pata_bk3710_probe()
342 ap->ioaddr.feature_addr = base + BK3710_TF_OFFSET + 1; in pata_bk3710_probe()
343 ap->ioaddr.nsect_addr = base + BK3710_TF_OFFSET + 2; in pata_bk3710_probe()
344 ap->ioaddr.lbal_addr = base + BK3710_TF_OFFSET + 3; in pata_bk3710_probe()
345 ap->ioaddr.lbam_addr = base + BK3710_TF_OFFSET + 4; in pata_bk3710_probe()
346 ap->ioaddr.lbah_addr = base + BK3710_TF_OFFSET + 5; in pata_bk3710_probe()
347 ap->ioaddr.device_addr = base + BK3710_TF_OFFSET + 6; in pata_bk3710_probe()
348 ap->ioaddr.status_addr = base + BK3710_TF_OFFSET + 7; in pata_bk3710_probe()
349 ap->ioaddr.command_addr = base + BK3710_TF_OFFSET + 7; in pata_bk3710_probe()
351 ap->ioaddr.altstatus_addr = base + BK3710_CTL_OFFSET; in pata_bk3710_probe()
352 ap->ioaddr.ctl_addr = base + BK3710_CTL_OFFSET; in pata_bk3710_probe()
354 ap->ioaddr.bmdma_addr = base; in pata_bk3710_probe()
356 ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx", in pata_bk3710_probe()