*/
#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
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;
#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;
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;
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)
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) {
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)
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)
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) {
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) {
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) {