From 90092a572677c7986f8ff24cb418e7f795655ca4 Mon Sep 17 00:00:00 2001
From: Christoph Hellwig <hch@lst.de>
Date: Sun, 27 Oct 2002 21:18:04 -0600
Subject: [PATCH] [PATCH] misc cleanups for sr

bring it back in line with sd:
* get rid of typedefs where possible
* tab-align all credits entries
* line-wrap after 80 characters
* use C99-initializers
---
 drivers/scsi/sr.c       | 202 ++++++++++++++++++++--------------------
 drivers/scsi/sr.h       |   2 +-
 drivers/scsi/sr_ioctl.c |  27 +-----
 3 files changed, 108 insertions(+), 123 deletions(-)

diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index b15ef316d743..b71d2d0f84f6 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -7,34 +7,34 @@
  *      Linux scsi disk driver by
  *              Drew Eckhardt <drew@colorado.edu>
  *
- *      Modified by Eric Youngdale ericy@andante.org to
- *      add scatter-gather, multiple outstanding request, and other
- *      enhancements.
+ *	Modified by Eric Youngdale ericy@andante.org to
+ *	add scatter-gather, multiple outstanding request, and other
+ *	enhancements.
  *
- *          Modified by Eric Youngdale eric@andante.org to support loadable
- *          low-level scsi drivers.
+ *      Modified by Eric Youngdale eric@andante.org to support loadable
+ *      low-level scsi drivers.
  *
- *       Modified by Thomas Quinot thomas@melchior.cuivre.fdn.fr to
- *       provide auto-eject.
+ *      Modified by Thomas Quinot thomas@melchior.cuivre.fdn.fr to
+ *      provide auto-eject.
  *
- *          Modified by Gerd Knorr <kraxel@cs.tu-berlin.de> to support the
- *          generic cdrom interface
+ *      Modified by Gerd Knorr <kraxel@cs.tu-berlin.de> to support the
+ *      generic cdrom interface
  *
- *       Modified by Jens Axboe <axboe@suse.de> - Uniform sr_packet()
- *       interface, capabilities probe additions, ioctl cleanups, etc.
+ *      Modified by Jens Axboe <axboe@suse.de> - Uniform sr_packet()
+ *      interface, capabilities probe additions, ioctl cleanups, etc.
  *
- *       Modified by Richard Gooch <rgooch@atnf.csiro.au> to support devfs
+ *	Modified by Richard Gooch <rgooch@atnf.csiro.au> to support devfs
  *
- *       Modified by Jens Axboe <axboe@suse.de> - support DVD-RAM
- *	 transparently and loose the GHOST hack
- *
- *	 Modified by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *	 check resource allocation in sr_init and some cleanups
+ *	Modified by Jens Axboe <axboe@suse.de> - support DVD-RAM
+ *	transparently and loose the GHOST hack
  *
+ *	Modified by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *	check resource allocation in sr_init and some cleanups
  */
 
-#include <linux/module.h>
+#define MAJOR_NR SCSI_CDROM_MAJOR
 
+#include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -45,29 +45,32 @@
 #include <linux/cdrom.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
-#include <asm/system.h>
-#include <asm/io.h>
+#include <linux/blk.h>
 #include <asm/uaccess.h>
 
-#define MAJOR_NR SCSI_CDROM_MAJOR
-#define LOCAL_END_REQUEST
-#include <linux/blk.h>
 #include "scsi.h"
 #include "hosts.h"
-#include "sr.h"
 #include <scsi/scsi_ioctl.h>	/* For the door lock/unlock commands */
 
+#include "sr.h"
+
+
 MODULE_PARM(xa_test, "i");	/* see sr_ioctl.c */
 
 #define MAX_RETRIES	3
 #define SR_TIMEOUT	(30 * HZ)
+#define SR_CAPABILITIES \
+	(CDC_CLOSE_TRAY|CDC_OPEN_TRAY|CDC_LOCK|CDC_SELECT_SPEED| \
+	 CDC_SELECT_DISC|CDC_MULTI_SESSION|CDC_MCN|CDC_MEDIA_CHANGED| \
+	 CDC_PLAY_AUDIO|CDC_RESET|CDC_IOCTLS|CDC_DRIVE_STATUS| \
+	 CDC_CD_R|CDC_CD_RW|CDC_DVD|CDC_DVD_R|CDC_GENERIC_PACKET)
 
 static int sr_init(void);
-static int sr_attach(Scsi_Device *);
-static int sr_detect(Scsi_Device *);
-static void sr_detach(Scsi_Device *);
+static int sr_attach(struct scsi_device *);
+static int sr_detect(struct scsi_device *);
+static void sr_detach(struct scsi_device *);
 
-static int sr_init_command(Scsi_Cmnd *);
+static int sr_init_command(struct scsi_cmnd *);
 
 static struct Scsi_Device_Template sr_template = {
 	.module		= THIS_MODULE,
@@ -83,19 +86,19 @@ static struct Scsi_Device_Template sr_template = {
 	.init_command	= sr_init_command
 };
 
-static Scsi_CD *scsi_CDs;
+static struct scsi_cd *scsi_CDs;
 
 static int sr_open(struct cdrom_device_info *, int);
-static void get_sectorsize(Scsi_CD *);
-static void get_capabilities(Scsi_CD *);
-static int sr_init_one(Scsi_CD *, int);
+static void get_sectorsize(struct scsi_cd *);
+static void get_capabilities(struct scsi_cd *);
+static int sr_init_one(struct scsi_cd *, int);
 
 static int sr_media_change(struct cdrom_device_info *, int);
 static int sr_packet(struct cdrom_device_info *, struct cdrom_generic_command *);
 
 static void sr_release(struct cdrom_device_info *cdi)
 {
-	Scsi_CD *cd = cdi->handle;
+	struct scsi_cd *cd = cdi->handle;
 
 	if (cd->device->sector_size > 2048)
 		sr_set_blocklength(cd, 2048);
@@ -106,28 +109,21 @@ static void sr_release(struct cdrom_device_info *cdi)
 		__MOD_DEC_USE_COUNT(sr_template.module);
 }
 
-static struct cdrom_device_ops sr_dops =
-{
-	open:			sr_open,
-	release:		sr_release,
-	drive_status:		sr_drive_status,
-	media_changed:		sr_media_change,
-	tray_move:		sr_tray_move,
-	lock_door:		sr_lock_door,
-	select_speed:		sr_select_speed,
-	get_last_session:	sr_get_last_session,
-	get_mcn:		sr_get_mcn,
-	reset:			sr_reset,
-	audio_ioctl:		sr_audio_ioctl,
-	dev_ioctl:		sr_dev_ioctl,
-	capability:		CDC_CLOSE_TRAY | CDC_OPEN_TRAY | CDC_LOCK |
-				CDC_SELECT_SPEED | CDC_SELECT_DISC |
-				CDC_MULTI_SESSION | CDC_MCN |
-				CDC_MEDIA_CHANGED | CDC_PLAY_AUDIO |
-				CDC_RESET | CDC_IOCTLS | CDC_DRIVE_STATUS |
-				CDC_CD_R | CDC_CD_RW | CDC_DVD | CDC_DVD_R |
-				CDC_DVD_RAM | CDC_GENERIC_PACKET,
-	generic_packet:		sr_packet,
+static struct cdrom_device_ops sr_dops = {
+	.open			= sr_open,
+	.release	 	= sr_release,
+	.drive_status	 	= sr_drive_status,
+	.media_changed		= sr_media_change,
+	.tray_move		= sr_tray_move,
+	.lock_door		= sr_lock_door,
+	.select_speed		= sr_select_speed,
+	.get_last_session	= sr_get_last_session,
+	.get_mcn		= sr_get_mcn,
+	.reset			= sr_reset,
+	.audio_ioctl		= sr_audio_ioctl,
+	.dev_ioctl		= sr_dev_ioctl,
+	.capability		= SR_CAPABILITIES,
+	.generic_packet		= sr_packet,
 };
 
 /*
@@ -142,7 +138,7 @@ static struct cdrom_device_ops sr_dops =
 
 int sr_media_change(struct cdrom_device_info *cdi, int slot)
 {
-	Scsi_CD *cd = cdi->handle;
+	struct scsi_cd *cd = cdi->handle;
 	int retval;
 
 	if (CDSL_CURRENT != slot) {
@@ -183,28 +179,29 @@ int sr_media_change(struct cdrom_device_info *cdi, int slot)
 }
 
 /*
- * rw_intr is the interrupt routine for the device driver.  It will be notified on the
- * end of a SCSI read / write, and will take on of several actions based on success or failure.
+ * rw_intr is the interrupt routine for the device driver.
+ *
+ * It will be notified on the end of a SCSI read / write, and will take on
+ * of several actions based on success or failure.
  */
-
-static void rw_intr(Scsi_Cmnd * SCpnt)
+static void rw_intr(struct scsi_cmnd * SCpnt)
 {
 	int result = SCpnt->result;
 	int this_count = SCpnt->bufflen >> 9;
 	int good_sectors = (result == 0 ? this_count : 0);
 	int block_sectors = 0;
-	Scsi_CD *cd = SCpnt->request->rq_disk->private_data;
+	struct scsi_cd *cd = SCpnt->request->rq_disk->private_data;
 
 #ifdef DEBUG
 	printk("sr.c done: %x %p\n", result, SCpnt->request->bh->b_data);
 #endif
+
 	/*
-	   Handle MEDIUM ERRORs or VOLUME OVERFLOWs that indicate partial success.
-	   Since this is a relatively rare error condition, no care is taken to
-	   avoid unnecessary additional work such as memcpy's that could be avoided.
+	 * Handle MEDIUM ERRORs or VOLUME OVERFLOWs that indicate partial
+	 * success.  Since this is a relatively rare error condition, no
+	 * care is taken to avoid unnecessary additional work such as
+	 * memcpy's that could be avoided.
 	 */
-
-
 	if (driver_byte(result) != 0 &&		/* An error occurred */
 	    SCpnt->sense_buffer[0] == 0xF0 &&	/* Sense data is valid */
 	    (SCpnt->sense_buffer[2] == MEDIUM_ERROR ||
@@ -243,15 +240,17 @@ static void rw_intr(Scsi_Cmnd * SCpnt)
 	scsi_io_completion(SCpnt, good_sectors, block_sectors);
 }
 
-static int sr_init_command(Scsi_Cmnd * SCpnt)
+static int sr_init_command(struct scsi_cmnd * SCpnt)
 {
 	int block=0, this_count, s_size, timeout = SR_TIMEOUT;
-	Scsi_CD *cd = SCpnt->request->rq_disk->private_data;
+	struct scsi_cd *cd = SCpnt->request->rq_disk->private_data;
 
-	SCSI_LOG_HLQUEUE(1, printk("Doing sr request, dev = %s, block = %d\n", cd->disk->disk_name, block));
+	SCSI_LOG_HLQUEUE(1, printk("Doing sr request, dev = %s, block = %d\n",
+				cd->disk->disk_name, block));
 
 	if (!cd->device || !cd->device->online) {
-		SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n", SCpnt->request->nr_sectors));
+		SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n",
+					SCpnt->request->nr_sectors));
 		SCSI_LOG_HLQUEUE(2, printk("Retry with 0x%p\n", SCpnt));
 		return 0;
 	}
@@ -326,7 +325,8 @@ static int sr_init_command(Scsi_Cmnd * SCpnt)
 	/*
 	 * request doesn't start on hw block boundary, add scatter pads
 	 */
-	if (((unsigned int)SCpnt->request->sector % (s_size >> 9)) || (SCpnt->request_bufflen % s_size)) {
+	if (((unsigned int)SCpnt->request->sector % (s_size >> 9)) ||
+	    (SCpnt->request_bufflen % s_size)) {
 		printk("sr: unaligned transfer\n");
 		return 0;
 	}
@@ -335,9 +335,10 @@ static int sr_init_command(Scsi_Cmnd * SCpnt)
 
 
 	SCSI_LOG_HLQUEUE(2, printk("%s : %s %d/%ld 512 byte blocks.\n",
-                                   cd->cdi.name,
-		   (rq_data_dir(SCpnt->request) == WRITE) ? "writing" : "reading",
-				 this_count, SCpnt->request->nr_sectors));
+				cd->cdi.name,
+				(rq_data_dir(SCpnt->request) == WRITE) ?
+					"writing" : "reading",
+				this_count, SCpnt->request->nr_sectors));
 
 	SCpnt->cmnd[1] = 0;
 	block = (unsigned int)SCpnt->request->sector / (s_size >> 9);
@@ -392,26 +393,26 @@ static int sr_init_command(Scsi_Cmnd * SCpnt)
 
 static int sr_block_open(struct inode *inode, struct file *file)
 {
-	Scsi_CD *cd = inode->i_bdev->bd_disk->private_data;
+	struct scsi_cd *cd = inode->i_bdev->bd_disk->private_data;
 	return cdrom_open(&cd->cdi, inode, file);
 }
 
 static int sr_block_release(struct inode *inode, struct file *file)
 {
-	Scsi_CD *cd = inode->i_bdev->bd_disk->private_data;
+	struct scsi_cd *cd = inode->i_bdev->bd_disk->private_data;
 	return cdrom_release(&cd->cdi, file);
 }
 
 static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd,
 			  unsigned long arg)
 {
-	Scsi_CD *cd = inode->i_bdev->bd_disk->private_data;
+	struct scsi_cd *cd = inode->i_bdev->bd_disk->private_data;
 	return cdrom_ioctl(&cd->cdi, inode, cmd, arg);
 }
 
 static int sr_block_media_changed(struct gendisk *disk)
 {
-	Scsi_CD *cd = disk->private_data;
+	struct scsi_cd *cd = disk->private_data;
 	return cdrom_media_changed(&cd->cdi);
 }
 
@@ -426,7 +427,7 @@ struct block_device_operations sr_bdops =
 
 static int sr_open(struct cdrom_device_info *cdi, int purpose)
 {
-	Scsi_CD *cd = cdi->handle;
+	struct scsi_cd *cd = cdi->handle;
 
 	if (!cd->device)
 		return -ENXIO;	/* No such device */
@@ -454,7 +455,7 @@ static int sr_open(struct cdrom_device_info *cdi, int purpose)
 	return 0;
 }
 
-static int sr_detect(Scsi_Device * SDp)
+static int sr_detect(struct scsi_device * SDp)
 {
 
 	if (SDp->type != TYPE_ROM && SDp->type != TYPE_WORM)
@@ -463,9 +464,9 @@ static int sr_detect(Scsi_Device * SDp)
 	return 1;
 }
 
-static int sr_attach(Scsi_Device * SDp)
+static int sr_attach(struct scsi_device * SDp)
 {
-	Scsi_CD *cpnt;
+	struct scsi_cd *cpnt;
 	int i;
 
 	if (SDp->type != TYPE_ROM && SDp->type != TYPE_WORM)
@@ -491,7 +492,8 @@ static int sr_attach(Scsi_Device * SDp)
 		panic("scsi_devices corrupt (sr)");
 
 	printk("Attached scsi CD-ROM %s at scsi%d, channel %d, id %d, lun %d\n",
-	       scsi_CDs[i].cdi.name, SDp->host->host_no, SDp->channel, SDp->id, SDp->lun);
+	       scsi_CDs[i].cdi.name, SDp->host->host_no, SDp->channel,
+	       SDp->id, SDp->lun);
 	return 0;
 
 fail:
@@ -500,13 +502,13 @@ static int sr_attach(Scsi_Device * SDp)
 }
 
 
-static void get_sectorsize(Scsi_CD *cd)
+static void get_sectorsize(struct scsi_cd *cd)
 {
 	unsigned char cmd[10];
 	unsigned char *buffer;
 	int the_result, retries = 3;
 	int sector_size;
-	Scsi_Request *SRpnt = NULL;
+	struct scsi_request *SRpnt = NULL;
 	request_queue_t *queue;
 
 	buffer = kmalloc(512, GFP_DMA);
@@ -519,13 +521,13 @@ static void get_sectorsize(Scsi_CD *cd)
 	do {
 		cmd[0] = READ_CAPACITY;
 		memset((void *) &cmd[1], 0, 9);
-		SRpnt->sr_request->rq_status = RQ_SCSI_BUSY;	/* Mark as really busy */
+		/* Mark as really busy */
+		SRpnt->sr_request->rq_status = RQ_SCSI_BUSY;
 		SRpnt->sr_cmd_len = 0;
 
 		memset(buffer, 0, 8);
 
 		/* Do the command and wait.. */
-
 		SRpnt->sr_data_direction = SCSI_DATA_READ;
 		scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer,
 			      8, SR_TIMEOUT, MAX_RETRIES);
@@ -603,7 +605,7 @@ static void get_sectorsize(Scsi_CD *cd)
 	goto out;
 }
 
-void get_capabilities(Scsi_CD *cd)
+void get_capabilities(struct scsi_cd *cd)
 {
 	struct cdrom_generic_command cgc;
 	unsigned char *buffer;
@@ -656,11 +658,11 @@ void get_capabilities(Scsi_CD *cd)
 	printk("%s: scsi3-mmc drive: %dx/%dx %s%s%s%s%s%s\n", cd->cdi.name,
 	       ((buffer[n + 14] << 8) + buffer[n + 15]) / 176,
 	       cd->cdi.speed,
-	       buffer[n + 3] & 0x01 ? "writer " : "",	/* CD Writer */
+	       buffer[n + 3] & 0x01 ? "writer " : "", /* CD Writer */
 	       buffer[n + 3] & 0x20 ? "dvd-ram " : "",
-	       buffer[n + 2] & 0x02 ? "cd/rw " : "",	/* can read rewriteable */
-	       buffer[n + 4] & 0x20 ? "xa/form2 " : "",		/* can read xa/from2 */
-	       buffer[n + 5] & 0x01 ? "cdda " : "",	/* can read audio data */
+	       buffer[n + 2] & 0x02 ? "cd/rw " : "", /* can read rewriteable */
+	       buffer[n + 4] & 0x20 ? "xa/form2 " : "",	/* can read xa/from2 */
+	       buffer[n + 5] & 0x01 ? "cdda " : "", /* can read audio data */
 	       loadmech[buffer[n + 6] >> 5]);
 	if ((buffer[n + 6] >> 5) == 0)
 		/* caddy drives can't close tray... */
@@ -704,7 +706,8 @@ void get_capabilities(Scsi_CD *cd)
  * sr_packet() is the entry point for the generic commands generated
  * by the Uniform CD-ROM layer. 
  */
-static int sr_packet(struct cdrom_device_info *cdi, struct cdrom_generic_command *cgc)
+static int sr_packet(struct cdrom_device_info *cdi,
+		struct cdrom_generic_command *cgc)
 {
 	if (cgc->timeout <= 0)
 		cgc->timeout = IOCTL_TIMEOUT;
@@ -724,7 +727,8 @@ static int sr_init()
 
 	if (!sr_registered) {
 		if (register_blkdev(MAJOR_NR, "sr", &sr_bdops)) {
-			printk("Unable to get major %d for SCSI-CD\n", MAJOR_NR);
+			printk("Unable to get major %d for SCSI-CD\n",
+					MAJOR_NR);
 			return 1;
 		}
 		sr_registered++;
@@ -733,10 +737,10 @@ static int sr_init()
 		return 0;
 
 	sr_template.dev_max = sr_template.dev_noticed + SR_EXTRA_DEVS;
-	scsi_CDs = kmalloc(sr_template.dev_max * sizeof(Scsi_CD), GFP_ATOMIC);
+	scsi_CDs = kmalloc(sr_template.dev_max * sizeof(struct scsi_cd), GFP_ATOMIC);
 	if (!scsi_CDs)
 		goto cleanup_dev;
-	memset(scsi_CDs, 0, sr_template.dev_max * sizeof(Scsi_CD));
+	memset(scsi_CDs, 0, sr_template.dev_max * sizeof(struct scsi_cd));
 	for (i = 0; i < sr_template.dev_max; i++)
 		sprintf(scsi_CDs[i].cdi.name, "sr%d", i);
 	return 0;
@@ -747,7 +751,7 @@ static int sr_init()
 	return 1;
 }
 
-static int sr_init_one(Scsi_CD *cd, int first_minor)
+static int sr_init_one(struct scsi_cd *cd, int first_minor)
 {
 	struct gendisk *disk;
 
@@ -799,9 +803,9 @@ static int sr_init_one(Scsi_CD *cd, int first_minor)
 	return 0;
 }
 
-static void sr_detach(Scsi_Device * SDp)
+static void sr_detach(struct scsi_device * SDp)
 {
-	Scsi_CD *cpnt;
+	struct scsi_cd *cpnt;
 	int i;
 
 	for (cpnt = scsi_CDs, i = 0; i < sr_template.dev_max; i++, cpnt++) {
diff --git a/drivers/scsi/sr.h b/drivers/scsi/sr.h
index 815b95e8c41c..e4364a1dd7b2 100644
--- a/drivers/scsi/sr.h
+++ b/drivers/scsi/sr.h
@@ -24,7 +24,7 @@
 /* In fact, it is very slow if it has to spin up first */
 #define IOCTL_TIMEOUT 30*HZ
 
-typedef struct {
+typedef struct scsi_cd {
 	unsigned capacity;	/* size in blocks                       */
 	Scsi_Device *device;
 	unsigned int vendor;	/* vendor code, see sr_vendor.c         */
diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c
index c9d7c1f4c11e..f69755a9008c 100644
--- a/drivers/scsi/sr_ioctl.c
+++ b/drivers/scsi/sr_ioctl.c
@@ -5,15 +5,14 @@
 #include <asm/uaccess.h>
 #include <linux/errno.h>
 #include <linux/string.h>
-#include <linux/buffer_head.h>		/* for invalidate_buffers() */
-
 #include <linux/blk.h>
 #include <linux/blkpg.h>
+#include <linux/cdrom.h>
+
 #include "scsi.h"
 #include "hosts.h"
 #include <scsi/scsi_ioctl.h>
 
-#include <linux/cdrom.h>
 #include "sr.h"
 
 #if 0
@@ -76,8 +75,8 @@ static int sr_fake_playtrkind(struct cdrom_device_info *cdi, struct cdrom_ti *ti
 
 int sr_do_ioctl(Scsi_CD *cd, struct cdrom_generic_command *cgc)
 {
-	Scsi_Request *SRpnt;
-	Scsi_Device *SDev;
+	struct scsi_request *SRpnt;
+	struct scsi_device *SDev;
         struct request *req;
 	int result, err = 0, retries = 0;
 	char *bounce_buffer;
@@ -555,21 +554,3 @@ int sr_dev_ioctl(struct cdrom_device_info *cdi,
 	Scsi_CD *cd = cdi->handle;
 	return scsi_ioctl(cd->device, cmd, (void *)arg);
 }
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-indent-level: 4
- * c-brace-imaginary-offset: 0
- * c-brace-offset: -4
- * c-argdecl-indent: 4
- * c-label-offset: -4
- * c-continued-statement-offset: 4
- * c-continued-brace-offset: 0
- * tab-width: 8
- * End:
- */
-- 
2.30.9