fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / scsi / sr_vendor.c
index 6fb9752..4eb3da9 100644 (file)
  *              HP 6020 writers now supported.
  */
 
-#include <linux/config.h>
+#include <linux/cdrom.h>
 #include <linux/errno.h>
 #include <linux/string.h>
 #include <linux/bcd.h>
-
 #include <linux/blkdev.h>
-#include "scsi.h"
-#include "hosts.h"
+
+#include <scsi/scsi.h>
+#include <scsi/scsi_cmnd.h>
+#include <scsi/scsi_device.h>
+#include <scsi/scsi_host.h>
 #include <scsi/scsi_ioctl.h>
 
-#include <linux/cdrom.h>
 #include "sr.h"
 
 #if 0
@@ -66,8 +67,8 @@ void sr_vendor_init(Scsi_CD *cd)
 #ifndef CONFIG_BLK_DEV_SR_VENDOR
        cd->vendor = VENDOR_SCSI3;
 #else
-       char *vendor = cd->device->vendor;
-       char *model = cd->device->model;
+       const char *vendor = cd->device->vendor;
+       const char *model = cd->device->model;
        
        /* default */
        cd->vendor = VENDOR_SCSI3;
@@ -107,7 +108,7 @@ void sr_vendor_init(Scsi_CD *cd)
 int sr_set_blocklength(Scsi_CD *cd, int blocklength)
 {
        unsigned char *buffer;  /* the buffer for the ioctl */
-       struct cdrom_generic_command cgc;
+       struct packet_command cgc;
        struct ccs_modesel_head *modesel;
        int rc, density = 0;
 
@@ -116,14 +117,14 @@ int sr_set_blocklength(Scsi_CD *cd, int blocklength)
                density = (blocklength > 2048) ? 0x81 : 0x83;
 #endif
 
-       buffer = (unsigned char *) kmalloc(512, GFP_KERNEL | GFP_DMA);
+       buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
        if (!buffer)
                return -ENOMEM;
 
 #ifdef DEBUG
        printk("%s: MODE SELECT 0x%x/%d\n", cd->cdi.name, density, blocklength);
 #endif
-       memset(&cgc, 0, sizeof(struct cdrom_generic_command));
+       memset(&cgc, 0, sizeof(struct packet_command));
        cgc.cmd[0] = MODE_SELECT;
        cgc.cmd[1] = (1 << 4);
        cgc.cmd[4] = 12;
@@ -135,7 +136,7 @@ int sr_set_blocklength(Scsi_CD *cd, int blocklength)
        modesel->block_length_lo = blocklength & 0xff;
        cgc.buffer = buffer;
        cgc.buflen = sizeof(*modesel);
-       cgc.data_direction = SCSI_DATA_WRITE;
+       cgc.data_direction = DMA_TO_DEVICE;
        cgc.timeout = VENDOR_TIMEOUT;
        if (0 == (rc = sr_do_ioctl(cd, &cgc))) {
                cd->device->sector_size = blocklength;
@@ -157,13 +158,13 @@ int sr_cd_check(struct cdrom_device_info *cdi)
        Scsi_CD *cd = cdi->handle;
        unsigned long sector;
        unsigned char *buffer;  /* the buffer for the ioctl */
-       struct cdrom_generic_command cgc;
+       struct packet_command cgc;
        int rc, no_multi;
 
        if (cd->cdi.mask & CDC_MULTI_SESSION)
                return 0;
 
-       buffer = (unsigned char *) kmalloc(512, GFP_KERNEL | GFP_DMA);
+       buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
        if (!buffer)
                return -ENOMEM;
 
@@ -171,7 +172,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
        no_multi = 0;           /* flag: the drive can't handle multisession */
        rc = 0;
 
-       memset(&cgc, 0, sizeof(struct cdrom_generic_command));
+       memset(&cgc, 0, sizeof(struct packet_command));
 
        switch (cd->vendor) {
 
@@ -182,7 +183,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
                cgc.buffer = buffer;
                cgc.buflen = 12;
                cgc.quiet = 1;
-               cgc.data_direction = SCSI_DATA_READ;
+               cgc.data_direction = DMA_FROM_DEVICE;
                cgc.timeout = VENDOR_TIMEOUT;
                rc = sr_do_ioctl(cd, &cgc);
                if (rc != 0)
@@ -210,7 +211,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
                        cgc.buffer = buffer;
                        cgc.buflen = 0x16;
                        cgc.quiet = 1;
-                       cgc.data_direction = SCSI_DATA_READ;
+                       cgc.data_direction = DMA_FROM_DEVICE;
                        cgc.timeout = VENDOR_TIMEOUT;
                        rc = sr_do_ioctl(cd, &cgc);
                        if (rc != 0)
@@ -239,7 +240,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
                        cgc.buffer = buffer;
                        cgc.buflen = 4;
                        cgc.quiet = 1;
-                       cgc.data_direction = SCSI_DATA_READ;
+                       cgc.data_direction = DMA_FROM_DEVICE;
                        cgc.timeout = VENDOR_TIMEOUT;
                        rc = sr_do_ioctl(cd, &cgc);
                        if (rc == -EINVAL) {
@@ -268,7 +269,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
                cgc.buffer = buffer;
                cgc.buflen = 0x04;
                cgc.quiet = 1;
-               cgc.data_direction = SCSI_DATA_READ;
+               cgc.data_direction = DMA_FROM_DEVICE;
                cgc.timeout = VENDOR_TIMEOUT;
                rc = sr_do_ioctl(cd, &cgc);
                if (rc != 0) {
@@ -286,7 +287,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
                cgc.buffer = buffer;
                cgc.buflen = 12;
                cgc.quiet = 1;
-               cgc.data_direction = SCSI_DATA_READ;
+               cgc.data_direction = DMA_FROM_DEVICE;
                cgc.timeout = VENDOR_TIMEOUT;
                rc = sr_do_ioctl(cd, &cgc);
                if (rc != 0) {