From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: linux-ide@vger.kernel.org
Cc: Borislav Petkov <petkovbb@gmail.com>,
Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 24/40] ide-tape: factor out waiting for good ireason from idetape_transfer_pc()
Date: Sun, 18 May 2008 20:58:04 +0200 [thread overview]
Message-ID: <20080518185804.5636.39075.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20080518185428.5636.77234.sendpatchset@localhost.localdomain>
Factor out waiting for good ireason from idetape_transfer_pc()
to ide_tape_wait_ireason() as a preparation for adding generic
ide_transfer_pc() helper.
There should be no functional changes caused by this patch.
Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/ide-tape.c | 34 +++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)
Index: b/drivers/ide/ide-tape.c
===================================================================
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -947,21 +947,12 @@ static ide_startstop_t idetape_pc_intr(i
* again, the callback function will be called and then we will handle the next
* request.
*/
-static ide_startstop_t idetape_transfer_pc(ide_drive_t *drive)
+
+static u8 ide_tape_wait_ireason(ide_drive_t *drive, u8 ireason)
{
ide_hwif_t *hwif = drive->hwif;
- idetape_tape_t *tape = drive->driver_data;
- struct ide_atapi_pc *pc = tape->pc;
int retries = 100;
- ide_startstop_t startstop;
- u8 ireason;
- if (ide_wait_stat(&startstop, drive, DRQ_STAT, BUSY_STAT, WAIT_READY)) {
- printk(KERN_ERR "%s: Strange, packet command initiated yet "
- "DRQ isn't asserted\n", drive->name);
- return startstop;
- }
- ireason = hwif->INB(hwif->io_ports.nsect_addr);
while (retries-- && ((ireason & CD) == 0 || (ireason & IO))) {
printk(KERN_ERR "%s: (IO,CoD != (0,1) while issuing "
"a packet command, retrying\n", drive->name);
@@ -975,6 +966,27 @@ static ide_startstop_t idetape_transfer_
ireason &= ~IO;
}
}
+
+ return ireason;
+}
+
+static ide_startstop_t idetape_transfer_pc(ide_drive_t *drive)
+{
+ ide_hwif_t *hwif = drive->hwif;
+ idetape_tape_t *tape = drive->driver_data;
+ struct ide_atapi_pc *pc = tape->pc;
+ ide_startstop_t startstop;
+ u8 ireason;
+
+ if (ide_wait_stat(&startstop, drive, DRQ_STAT, BUSY_STAT, WAIT_READY)) {
+ printk(KERN_ERR "%s: Strange, packet command initiated yet "
+ "DRQ isn't asserted\n", drive->name);
+ return startstop;
+ }
+
+ ireason = hwif->INB(hwif->io_ports.nsect_addr);
+ ireason = ide_tape_wait_ireason(drive, ireason);
+
if ((ireason & CD) == 0 || (ireason & IO)) {
printk(KERN_ERR "%s: (IO,CoD) != (0,1) while issuing "
"a packet command\n", drive->name);
next prev parent reply other threads:[~2008-05-18 18:47 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-18 18:54 [PATCH 00/40] ide: generic ATAPI support Bartlomiej Zolnierkiewicz
2008-05-18 18:54 ` [PATCH 01/40] ide-scsi: fix race in idescsi_transfer_pc() Bartlomiej Zolnierkiewicz
2008-05-18 18:54 ` [PATCH 02/40] ide-scsi: fix DRQ checking for DMA transfers in idescsi_pc_intr() Bartlomiej Zolnierkiewicz
2008-05-18 18:54 ` [PATCH 03/40] ide-scsi: fix handling of DMA errors " Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 04/40] ide-scsi: fix Interrupt Reason checking " Bartlomiej Zolnierkiewicz
2008-05-19 5:10 ` Borislav Petkov
2008-05-27 18:30 ` Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 05/40] ide-scsi: merge idescsi_input_buffers() and idescsi_output_buffers() Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 06/40] ide-scsi: remove superfluous BUG_ON() from idescsi_transfer_pc() Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 07/40] ide-scsi: add debug_log() macro Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 08/40] ide-tape: idetape_pc_intr() should use local_irq_enable_in_hardirq() Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 09/40] ide-tape: remove superfluous error message from idetape_pc_intr() Bartlomiej Zolnierkiewicz
2008-05-18 18:55 ` [PATCH 10/40] ide-tape: remove superfluous warning message from idetape_issue_pc() Bartlomiej Zolnierkiewicz
2008-05-18 18:56 ` [PATCH 11/40] ide-tape: remove unneeded CONFIG_BLK_DEV_IDEDMA ifdef Bartlomiej Zolnierkiewicz
2008-05-18 18:56 ` [PATCH 12/40] ide-tape: remove stale comments from idetape_pc_intr() Bartlomiej Zolnierkiewicz
2008-05-18 18:56 ` [PATCH 13/40] ide-tape: remove SIMULATE_ERRORS debug code Bartlomiej Zolnierkiewicz
2008-05-18 18:56 ` [PATCH 14/40] ide-floppy: merge idefloppy_transfer_pc() and idefloppy_transfer_pc1() Bartlomiej Zolnierkiewicz
2008-05-21 5:24 ` Borislav Petkov
2008-05-27 18:57 ` Bartlomiej Zolnierkiewicz
2008-05-27 5:37 ` Borislav Petkov
2008-05-29 23:01 ` Bartlomiej Zolnierkiewicz
2008-05-18 18:56 ` [PATCH 15/40] ide-{floppy,tape,scsi}: log device name instead of driver name Bartlomiej Zolnierkiewicz
2008-05-18 18:56 ` [PATCH 16/40] ide-tape: make idetape_retry_pc() void Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 17/40] ide-tape: merge callbacks Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 18/40] ide-tape: make pc->idetape_callback void Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 19/40] ide-floppy: merge callbacks Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 20/40] ide-{floppy,tape}: merge pc->idefloppy_callback and pc->idetape_callback Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 21/40] ide-{floppy,tape}: PC_FLAG_DMA_RECOMMENDED -> PC_FLAG_DMA_OK Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 22/40] ide-floppy: start DMA engine in idefloppy_transfer_pc1() Bartlomiej Zolnierkiewicz
2008-05-20 11:00 ` Sergei Shtylyov
2008-05-27 18:58 ` Bartlomiej Zolnierkiewicz
2008-05-18 18:57 ` [PATCH 23/40] ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc() Bartlomiej Zolnierkiewicz
2008-05-18 18:58 ` Bartlomiej Zolnierkiewicz [this message]
2008-05-18 18:58 ` [PATCH 25/40] ide: add PC_FLAG_ZIP_DRIVE pc flag Bartlomiej Zolnierkiewicz
2008-05-18 18:58 ` [PATCH 26/40] ide-{cd,floppy,tape}: remove checking for drive->scsi Bartlomiej Zolnierkiewicz
2008-05-18 18:58 ` [PATCH 27/40] ide-scsi: set drive->scsi flag for devices handled by the driver Bartlomiej Zolnierkiewicz
2008-05-18 18:58 ` [PATCH 28/40] ide: add ide_transfer_pc() helper Bartlomiej Zolnierkiewicz
2008-05-18 18:58 ` [PATCH 29/40] ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc() Bartlomiej Zolnierkiewicz
2008-05-18 18:58 ` [PATCH 30/40] ide: add PC_FLAG_DRQ_INTERRUPT pc flag Bartlomiej Zolnierkiewicz
2008-05-18 18:59 ` [PATCH 31/40] ide: add ide_issue_pc() helper Bartlomiej Zolnierkiewicz
2008-05-18 18:59 ` [PATCH 32/40] ide-{floppy,tape}: move checking of ->failed_pc to ->callback Bartlomiej Zolnierkiewicz
2008-05-18 18:59 ` [PATCH 33/40] ide-tape: factor out DSC handling from idetape_pc_intr() Bartlomiej Zolnierkiewicz
2008-05-18 18:59 ` [PATCH 34/40] ide-tape: add ide_tape_io_buffers() helper Bartlomiej Zolnierkiewicz
2008-05-18 18:59 ` [PATCH 35/40] ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled Bartlomiej Zolnierkiewicz
2008-05-18 18:59 ` [PATCH 36/40] ide-floppy: add more debugging to idefloppy_pc_intr() Bartlomiej Zolnierkiewicz
2008-05-18 19:00 ` [PATCH 37/40] ide-scsi: use pc->callback Bartlomiej Zolnierkiewicz
2008-05-18 19:00 ` [PATCH 38/40] ide-scsi: add more debugging to idescsi_pc_intr() Bartlomiej Zolnierkiewicz
2008-05-18 19:00 ` [PATCH 39/40] ide-{floppy,scsi}: read Status Register before stopping DMA engine Bartlomiej Zolnierkiewicz
2008-05-18 19:00 ` [PATCH 40/40] ide: add ide_pc_intr() helper Bartlomiej Zolnierkiewicz
2008-05-22 7:43 ` [PATCH 00/40] ide: generic ATAPI support Borislav Petkov
2008-05-25 13:23 ` Bartlomiej Zolnierkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080518185804.5636.39075.sendpatchset@localhost.localdomain \
--to=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=petkovbb@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox