pata_triflex.c (75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37) pata_triflex.c (2ee628f3cf2584927ab30c585bfa268247486731)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * pata_triflex.c - Compaq PATA for new ATA layer
4 * (C) 2005 Red Hat Inc
5 * Alan Cox <alan@lxorguk.ukuu.org.uk>
6 *
7 * based upon
8 *

--- 115 unchanged lines hidden (view full) ---

124 * has been no DMA then the PIO timings are still needed.
125 */
126static void triflex_set_piomode(struct ata_port *ap, struct ata_device *adev)
127{
128 triflex_load_timing(ap, adev, adev->pio_mode);
129}
130
131/**
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * pata_triflex.c - Compaq PATA for new ATA layer
4 * (C) 2005 Red Hat Inc
5 * Alan Cox <alan@lxorguk.ukuu.org.uk>
6 *
7 * based upon
8 *

--- 115 unchanged lines hidden (view full) ---

124 * has been no DMA then the PIO timings are still needed.
125 */
126static void triflex_set_piomode(struct ata_port *ap, struct ata_device *adev)
127{
128 triflex_load_timing(ap, adev, adev->pio_mode);
129}
130
131/**
132 * triflex_dma_start - DMA start callback
132 * triflex_bmdma_start - DMA start callback
133 * @qc: Command in progress
134 *
135 * Usually drivers set the DMA timing at the point the set_dmamode call
136 * is made. Triflex however requires we load new timings on the
137 * transition or keep matching PIO/DMA pairs (ie MWDMA2/PIO4 etc).
138 * We load the DMA timings just before starting DMA and then restore
139 * the PIO timing when the DMA is finished.
140 */
141
142static void triflex_bmdma_start(struct ata_queued_cmd *qc)
143{
144 triflex_load_timing(qc->ap, qc->dev, qc->dev->dma_mode);
145 ata_bmdma_start(qc);
146}
147
148/**
133 * @qc: Command in progress
134 *
135 * Usually drivers set the DMA timing at the point the set_dmamode call
136 * is made. Triflex however requires we load new timings on the
137 * transition or keep matching PIO/DMA pairs (ie MWDMA2/PIO4 etc).
138 * We load the DMA timings just before starting DMA and then restore
139 * the PIO timing when the DMA is finished.
140 */
141
142static void triflex_bmdma_start(struct ata_queued_cmd *qc)
143{
144 triflex_load_timing(qc->ap, qc->dev, qc->dev->dma_mode);
145 ata_bmdma_start(qc);
146}
147
148/**
149 * triflex_dma_stop - DMA stop callback
150 * @ap: ATA interface
151 * @adev: ATA device
149 * triflex_bmdma_stop - DMA stop callback
150 * @qc: ATA command
152 *
153 * We loaded new timings in dma_start, as a result we need to restore
154 * the PIO timings in dma_stop so that the next command issue gets the
155 * right clock values.
156 */
157
158static void triflex_bmdma_stop(struct ata_queued_cmd *qc)
159{

--- 77 unchanged lines hidden ---
151 *
152 * We loaded new timings in dma_start, as a result we need to restore
153 * the PIO timings in dma_stop so that the next command issue gets the
154 * right clock values.
155 */
156
157static void triflex_bmdma_stop(struct ata_queued_cmd *qc)
158{

--- 77 unchanged lines hidden ---