Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 114166
b: refs/heads/master
c: 67c5636
h: refs/heads/master
v: v3
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Oct 13, 2008
1 parent ba11052 commit 78d0540
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 77 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 844b9468523c8c2c45b90df4efcabcbe4926b5ab
refs/heads/master: 67c56364df843fb9e3ed1af014b8fbe4b22ff25d
4 changes: 2 additions & 2 deletions trunk/drivers/ide/ide-floppy.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ void ide_floppy_create_request_sense_cmd(struct ide_atapi_pc *pc)
static void idefloppy_retry_pc(ide_drive_t *drive)
{
struct ide_floppy_obj *floppy = drive->driver_data;
struct request *rq = &floppy->request_sense_rq;
struct ide_atapi_pc *pc = &floppy->request_sense_pc;
struct request *rq = &drive->request_sense_rq;
struct ide_atapi_pc *pc = &drive->request_sense_pc;

(void)ide_read_error(drive);
ide_floppy_create_request_sense_cmd(pc);
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/ide/ide-floppy.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ typedef struct ide_floppy_obj {
/* used for blk_{fs,pc}_request() requests */
struct ide_atapi_pc queued_pc;

struct ide_atapi_pc request_sense_pc;
struct request request_sense_rq;

/* Last error information */
u8 sense_key, asc, ascq;
/* delay this long before sending packet command */
Expand Down
7 changes: 2 additions & 5 deletions trunk/drivers/ide/ide-tape.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,6 @@ typedef struct ide_tape_obj {
/* used by REQ_IDETAPE_{READ,WRITE} requests */
struct ide_atapi_pc queued_pc;

struct ide_atapi_pc request_sense_pc;
struct request request_sense_rq;

/*
* DSC polling variables.
*
Expand Down Expand Up @@ -600,8 +597,8 @@ static void idetape_create_request_sense_cmd(struct ide_atapi_pc *pc)
static void idetape_retry_pc(ide_drive_t *drive)
{
struct ide_tape_obj *tape = drive->driver_data;
struct request *rq = &tape->request_sense_rq;
struct ide_atapi_pc *pc = &tape->request_sense_pc;
struct request *rq = &drive->request_sense_rq;
struct ide_atapi_pc *pc = &drive->request_sense_pc;

(void)ide_read_error(drive);
idetape_create_request_sense_cmd(pc);
Expand Down
134 changes: 68 additions & 66 deletions trunk/include/linux/ide.h
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,71 @@ typedef enum {
ide_started, /* a drive operation was started, handler was set */
} ide_startstop_t;

struct ide_atapi_pc;
/* ATAPI packet command flags */
enum {
/* set when an error is considered normal - no retry (ide-tape) */
PC_FLAG_ABORT = (1 << 0),
PC_FLAG_SUPPRESS_ERROR = (1 << 1),
PC_FLAG_WAIT_FOR_DSC = (1 << 2),
PC_FLAG_DMA_OK = (1 << 3),
PC_FLAG_DMA_IN_PROGRESS = (1 << 4),
PC_FLAG_DMA_ERROR = (1 << 5),
PC_FLAG_WRITING = (1 << 6),
/* command timed out */
PC_FLAG_TIMEDOUT = (1 << 7),
};

/*
* With each packet command, we allocate a buffer of IDE_PC_BUFFER_SIZE bytes.
* This is used for several packet commands (not for READ/WRITE commands).
*/
#define IDE_PC_BUFFER_SIZE 256

struct ide_atapi_pc {
/* actual packet bytes */
u8 c[12];
/* incremented on each retry */
int retries;
int error;

/* bytes to transfer */
int req_xfer;
/* bytes actually transferred */
int xferred;

/* data buffer */
u8 *buf;
/* current buffer position */
u8 *cur_pos;
int buf_size;
/* missing/available data on the current buffer */
int b_count;

/* the corresponding request */
struct request *rq;

unsigned long flags;

/*
* those are more or less driver-specific and some of them are subject
* to change/removal later.
*/
u8 pc_buf[IDE_PC_BUFFER_SIZE];

/* idetape only */
struct idetape_bh *bh;
char *b_data;

/* idescsi only for now */
struct scatterlist *sg;
unsigned int sg_cnt;

struct scsi_cmnd *scsi_cmd;
void (*done) (struct scsi_cmnd *);

unsigned long timeout;
};

struct ide_devset;
struct ide_driver_s;

Expand Down Expand Up @@ -492,6 +556,9 @@ struct ide_drive_s {
void (*pc_callback)(struct ide_drive_s *, int);

unsigned long atapi_flags;

struct ide_atapi_pc request_sense_pc;
struct request request_sense_rq;
};

typedef struct ide_drive_s ide_drive_t;
Expand Down Expand Up @@ -768,71 +835,6 @@ ide_decl_devset(pio_mode);
ide_decl_devset(unmaskirq);
ide_decl_devset(using_dma);

/* ATAPI packet command flags */
enum {
/* set when an error is considered normal - no retry (ide-tape) */
PC_FLAG_ABORT = (1 << 0),
PC_FLAG_SUPPRESS_ERROR = (1 << 1),
PC_FLAG_WAIT_FOR_DSC = (1 << 2),
PC_FLAG_DMA_OK = (1 << 3),
PC_FLAG_DMA_IN_PROGRESS = (1 << 4),
PC_FLAG_DMA_ERROR = (1 << 5),
PC_FLAG_WRITING = (1 << 6),
/* command timed out */
PC_FLAG_TIMEDOUT = (1 << 7),
};

/*
* With each packet command, we allocate a buffer of IDE_PC_BUFFER_SIZE bytes.
* This is used for several packet commands (not for READ/WRITE commands).
*/
#define IDE_PC_BUFFER_SIZE 256

struct ide_atapi_pc {
/* actual packet bytes */
u8 c[12];
/* incremented on each retry */
int retries;
int error;

/* bytes to transfer */
int req_xfer;
/* bytes actually transferred */
int xferred;

/* data buffer */
u8 *buf;
/* current buffer position */
u8 *cur_pos;
int buf_size;
/* missing/available data on the current buffer */
int b_count;

/* the corresponding request */
struct request *rq;

unsigned long flags;

/*
* those are more or less driver-specific and some of them are subject
* to change/removal later.
*/
u8 pc_buf[IDE_PC_BUFFER_SIZE];

/* idetape only */
struct idetape_bh *bh;
char *b_data;

/* idescsi only for now */
struct scatterlist *sg;
unsigned int sg_cnt;

struct scsi_cmnd *scsi_cmd;
void (*done) (struct scsi_cmnd *);

unsigned long timeout;
};

#ifdef CONFIG_IDE_PROC_FS
/*
* /proc/ide interface
Expand Down

0 comments on commit 78d0540

Please sign in to comment.