mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ide: add ide_read_error() inline helper
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
		
							parent
							
								
									c47137a99c
								
							
						
					
					
						commit
						64a57fe439
					
				
					 8 changed files with 18 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -304,7 +304,7 @@ static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
 | 
			
		|||
		return 0;
 | 
			
		||||
 | 
			
		||||
	/* Get the IDE error register. */
 | 
			
		||||
	err = HWIF(drive)->INB(IDE_ERROR_REG);
 | 
			
		||||
	err = ide_read_error(drive);
 | 
			
		||||
	sense_key = err >> 4;
 | 
			
		||||
 | 
			
		||||
	if (rq == NULL) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -465,7 +465,7 @@ static void idefloppy_retry_pc(ide_drive_t *drive)
 | 
			
		|||
	idefloppy_pc_t *pc;
 | 
			
		||||
	struct request *rq;
 | 
			
		||||
 | 
			
		||||
	(void)drive->hwif->INB(IDE_ERROR_REG);
 | 
			
		||||
	(void)ide_read_error(drive);
 | 
			
		||||
	pc = idefloppy_next_pc_storage(drive);
 | 
			
		||||
	rq = idefloppy_next_rq_storage(drive);
 | 
			
		||||
	idefloppy_create_request_sense_cmd(pc);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -821,8 +821,8 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,
 | 
			
		|||
#ifdef DEBUG
 | 
			
		||||
 	printk("%s: DRIVE_CMD (null)\n", drive->name);
 | 
			
		||||
#endif
 | 
			
		||||
	ide_end_drive_cmd(drive, ide_read_status(drive),
 | 
			
		||||
			hwif->INB(IDE_ERROR_REG));
 | 
			
		||||
	ide_end_drive_cmd(drive, ide_read_status(drive), ide_read_error(drive));
 | 
			
		||||
 | 
			
		||||
 	return ide_stopped;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -918,7 +918,9 @@ static ide_startstop_t reset_pollfunc (ide_drive_t *drive)
 | 
			
		|||
		drive->failures++;
 | 
			
		||||
	} else  {
 | 
			
		||||
		printk("%s: reset: ", hwif->name);
 | 
			
		||||
		if ((tmp = hwif->INB(IDE_ERROR_REG)) == 1) {
 | 
			
		||||
		tmp = ide_read_error(drive);
 | 
			
		||||
 | 
			
		||||
		if (tmp == 1) {
 | 
			
		||||
			printk("success\n");
 | 
			
		||||
			drive->failures = 0;
 | 
			
		||||
		} else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -578,7 +578,7 @@ u8 ide_dump_status(ide_drive_t *drive, const char *msg, u8 stat)
 | 
			
		|||
	}
 | 
			
		||||
	printk("}\n");
 | 
			
		||||
	if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) {
 | 
			
		||||
		err = drive->hwif->INB(IDE_ERROR_REG);
 | 
			
		||||
		err = ide_read_error(drive);
 | 
			
		||||
		printk("%s: %s: error=0x%02x ", drive->name, msg, err);
 | 
			
		||||
		if (drive->media == ide_disk)
 | 
			
		||||
			ide_dump_ata_error(drive, err);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1125,7 +1125,7 @@ static ide_startstop_t idetape_retry_pc (ide_drive_t *drive)
 | 
			
		|||
	idetape_pc_t *pc;
 | 
			
		||||
	struct request *rq;
 | 
			
		||||
 | 
			
		||||
	(void)drive->hwif->INB(IDE_ERROR_REG);
 | 
			
		||||
	(void)ide_read_error(drive);
 | 
			
		||||
	pc = idetape_next_pc_storage(drive);
 | 
			
		||||
	rq = idetape_next_rq_storage(drive);
 | 
			
		||||
	idetape_create_request_sense_cmd(pc);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -241,7 +241,6 @@ static ide_startstop_t recal_intr(ide_drive_t *drive)
 | 
			
		|||
static ide_startstop_t task_no_data_intr(ide_drive_t *drive)
 | 
			
		||||
{
 | 
			
		||||
	ide_task_t *args	= HWGROUP(drive)->rq->special;
 | 
			
		||||
	ide_hwif_t *hwif	= HWIF(drive);
 | 
			
		||||
	u8 stat;
 | 
			
		||||
 | 
			
		||||
	local_irq_enable_in_hardirq();
 | 
			
		||||
| 
						 | 
				
			
			@ -252,7 +251,7 @@ static ide_startstop_t task_no_data_intr(ide_drive_t *drive)
 | 
			
		|||
		/* calls ide_end_drive_cmd */
 | 
			
		||||
 | 
			
		||||
	if (args)
 | 
			
		||||
		ide_end_drive_cmd(drive, stat, hwif->INB(IDE_ERROR_REG));
 | 
			
		||||
		ide_end_drive_cmd(drive, stat, ide_read_error(drive));
 | 
			
		||||
 | 
			
		||||
	return ide_stopped;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -408,7 +407,7 @@ static ide_startstop_t task_error(ide_drive_t *drive, struct request *rq,
 | 
			
		|||
void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat)
 | 
			
		||||
{
 | 
			
		||||
	if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
 | 
			
		||||
		u8 err = drive->hwif->INB(IDE_ERROR_REG);
 | 
			
		||||
		u8 err = ide_read_error(drive);
 | 
			
		||||
 | 
			
		||||
		ide_end_drive_cmd(drive, stat, err);
 | 
			
		||||
		return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1323,4 +1323,11 @@ static inline u8 ide_read_altstatus(ide_drive_t *drive)
 | 
			
		|||
	return hwif->INB(hwif->io_ports[IDE_CONTROL_OFFSET]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline u8 ide_read_error(ide_drive_t *drive)
 | 
			
		||||
{
 | 
			
		||||
	ide_hwif_t *hwif = drive->hwif;
 | 
			
		||||
 | 
			
		||||
	return hwif->INB(hwif->io_ports[IDE_ERROR_OFFSET]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* _IDE_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue