lkml.org 
[lkml]   [1998]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] more cdrom updates
Hi Linus,

Here are some more cdrom updates for 2.0.91. This patch includes some
fixes to the CDROM_SELECT_SPEED ioctl, documentation updates to go along
with the change, and Michael Chastain's config cdrom stuff. I am including
his patch here at his request because he is currently moving, and will be
off-line for a couple of weeks.

-Erik

--
Erik B. Andersen Web: http://www.inconnect.com/~andersen/
email: andersee@debian.org
--This message was written using 73% post-consumer electrons--

[-----patch follows----------]
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/Documentation/cdrom/cdrom-standard.tex linux/Documentation/cdrom/cdrom-standard.tex
--- linux-pre-2.1.91-1.virgin/Documentation/cdrom/cdrom-standard.tex Wed Dec 31 12:34:15 1997
+++ linux/Documentation/cdrom/cdrom-standard.tex Tue Mar 24 03:31:58 1998
@@ -1,5 +1,5 @@
\documentclass{article}
-\def\version{$Id: cdrom-standard.tex,v 1.9 1997/12/28 15:42:49 david Exp $}
+\def\version{$Id: cdrom-standard.tex,v 1.91 1998/03/24 02:59:24 erik Exp $}
\newcommand{\newsection}[1]{\newpage\section{#1}}

\evensidemargin=0pt
@@ -24,7 +24,7 @@
\title{A \linux\ \cdrom\ standard}
\author{David van Leeuwen\\{\normalsize\tt david@ElseWare.cistron.nl}
\\{\footnotesize updated by Erik Andersen {\tt(andersee@debian.org)}}}
-\date{19 November 1997}
+\date{24 March 1998}

\maketitle

@@ -302,8 +302,7 @@
The $mask$ flags can be used to mask out some of the capabilities listed
in $ops\to capability$, if a specific drive doesn't support a feature
of the driver. The value $speed$ specifies the maximum head-rate of the
-drive, measured in units of normal audio speed (176\,kB/sec raw data or
-150\,kB/sec file system data). The value $n_discs$ should reflect the
+drive, measured in kB/sec. The value $n_discs$ should reflect the
number of discs the drive can hold simultaneously, if it is designed
as a juke-box, or otherwise~1. The parameters are declared $const$
because they describe properties of the drive, which don't change after
@@ -441,14 +440,19 @@

This function specifies the speed at which data is read or audio is
played back. The value of $speed$ specifies the head-speed of the
-drive, measured in units of standard cdrom speed (176\,kB/sec raw data
-or 150\,kB/sec file system data). So to request that a \cdrom\ drive
+drive, measured in units of kB/sec. So to request that a \cdrom\ drive
operate at 300\,kB/sec you would call the CDROM_SELECT_SPEED $ioctl$
-with $speed=2$. The special value `0' means `auto-selection', \ie,
+with $speed=300$. The special value `0' means `auto-selection', \ie,
maximum data-rate or real-time audio rate. If the drive doesn't have
this `auto-selection' capability, the decision should be made on the
current disc loaded and the return value should be positive. A negative
-return value indicates an error.
+return value indicates an error. NOTE: As a special case, values of
+$speed$ which are less then 100 (but greater then 0), may be used
+to request speeds measured in units of \cdrom\ audio speed (177\,kB/sec
+raw data). With this usage, to request that a \cdrom\ drive operate at
+354\,kB/sec you could call the CDROM_SELECT_SPEED $ioctl$ with $speed=2$.
+This alternate interface is depricated, due to the limited speeds which
+can be selected. As such, this usage may be removed from future kernels.

\subsection{$Int\ select_disc(struct\ cdrom_device_info * cdi, int\ number)$}

@@ -559,7 +563,7 @@
CDC_CLOSE_TRAY& can close tray by software control\cr
CDC_OPEN_TRAY& can open tray\cr
CDC_LOCK& can lock and unlock the door\cr
-CDC_SELECT_SPEED& can select speed, in units of $\sim$150\,kB/s\cr
+CDC_SELECT_SPEED& can select speed, in units of kB/sec\cr
CDC_SELECT_DISC& drive is juke-box\cr
CDC_MULTI_SESSION& can read sessions $>\rm1$\cr
CDC_MCN& can read Medium Catalog Number\cr
@@ -875,9 +879,8 @@
the current flags.
\item[CDROM_CLEAR_OPTIONS] Clear options specified by $arg$. Returns
the option flag register after modification.
-\item[CDROM_SELECT_SPEED] Select head-rate speed of disc specified as
- by $arg$ in units of standard cdrom speed (176\,kB/sec raw data or
- 150\,kB/sec file system data). The value 0 means `auto-select', \ie,
+\item[CDROM_SELECT_SPEED] Select head-rate speed of the drive specified
+ by $arg$ in units of kB/sec. The value 0 means `auto-select', \ie,
play audio discs at real time and data disc at maximum speed. The value
$arg$ is checked against the maximum head rate of the drive found in the
$cdrom_dops$.
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/alpha/config.in linux/arch/alpha/config.in
--- linux-pre-2.1.91-1.virgin/arch/alpha/config.in Mon Mar 23 19:45:29 1998
+++ linux/arch/alpha/config.in Tue Mar 24 02:37:05 1998
@@ -216,17 +216,6 @@
fi
endmenu

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_IDECD" = "y" -o "$CONFIG_BLK_DEV_SR" = "y" -o "$CONFIG_SBPCD" = "y" -o "$CONFIG_MCD" = "y" -o "$CONFIG_CM206" = "y" -o "$CONFIG_CDU31A" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_IDECD" = "m" -o "$CONFIG_BLK_DEV_SR" = "m" -o "$CONFIG_SBPCD" = "m" -o "$CONFIG_MCD" = "m" -o "$CONFIG_CM206" = "m" -o "$CONFIG_CDU31A" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

source fs/nls/Config.in
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/alpha/defconfig linux/arch/alpha/defconfig
--- linux-pre-2.1.91-1.virgin/arch/alpha/defconfig Mon Mar 23 19:45:29 1998
+++ linux/arch/alpha/defconfig Tue Mar 24 02:37:05 1998
@@ -214,7 +214,6 @@
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
# CONFIG_CD_NO_IDESCSI is not set
-CONFIG_CDROM=y

#
# Filesystems
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/arm/config.in linux/arch/arm/config.in
--- linux-pre-2.1.91-1.virgin/arch/arm/config.in Mon Mar 23 19:45:30 1998
+++ linux/arch/arm/config.in Tue Mar 24 02:37:05 1998
@@ -105,17 +105,6 @@
# fi
# endmenu

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_IDECD" = "y" -o "$CONFIG_BLK_DEV_SR" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_IDECD" = "m" -o "$CONFIG_BLK_DEV_SR" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

source fs/nls/Config.in
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/arm/defconfig linux/arch/arm/defconfig
--- linux-pre-2.1.91-1.virgin/arch/arm/defconfig Mon Mar 23 19:45:30 1998
+++ linux/arch/arm/defconfig Tue Mar 24 02:37:05 1998
@@ -169,7 +169,6 @@
CONFIG_ETHER1=m
CONFIG_ETHER3=m
CONFIG_ETHERH=m
-CONFIG_CDROM=y

#
# Filesystems
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/i386/config.in linux/arch/i386/config.in
--- linux-pre-2.1.91-1.virgin/arch/i386/config.in Mon Mar 23 19:45:30 1998
+++ linux/arch/i386/config.in Tue Mar 24 02:37:05 1998
@@ -114,17 +114,6 @@
fi
endmenu

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_IDECD" = "y" -o "$CONFIG_BLK_DEV_SR" = "y" -o "$CONFIG_SBPCD" = "y" -o "$CONFIG_MCD" = "y" -o "$CONFIG_MCDX" = "y" -o "$CONFIG_CM206" = "y" -o "$CONFIG_CDU31A" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_IDECD" = "m" -o "$CONFIG_BLK_DEV_SR" = "m" -o "$CONFIG_SBPCD" = "m" -o "$CONFIG_MCD" = "m" -o "$CONFIG_MCDX" = "m" -o "$CONFIG_CM206" = "m" -o "$CONFIG_CDU31A" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

source fs/nls/Config.in
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/i386/defconfig linux/arch/i386/defconfig
--- linux-pre-2.1.91-1.virgin/arch/i386/defconfig Mon Mar 23 19:45:30 1998
+++ linux/arch/i386/defconfig Tue Mar 24 02:37:05 1998
@@ -214,7 +214,6 @@
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
# CONFIG_CD_NO_IDESCSI is not set
-CONFIG_CDROM=y

#
# Filesystems
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/m68k/config.in linux/arch/m68k/config.in
--- linux-pre-2.1.91-1.virgin/arch/m68k/config.in Tue Mar 24 04:26:22 1998
+++ linux/arch/m68k/config.in Tue Mar 24 02:37:05 1998
@@ -269,17 +269,6 @@

fi

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_IDECD" = "y" -o "$CONFIG_BLK_DEV_SR" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_IDECD" = "m" -o "$CONFIG_BLK_DEV_SR" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

if [ "$CONFIG_VME" = "n" ]; then
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/ppc/config.in linux/arch/ppc/config.in
--- linux-pre-2.1.91-1.virgin/arch/ppc/config.in Mon Mar 23 19:45:33 1998
+++ linux/arch/ppc/config.in Tue Mar 24 02:37:06 1998
@@ -149,17 +149,6 @@
fi
endmenu

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_SR" = "y" -o "$CONFIG_SBPCD" = "y" -o "$CONFIG_MCD" = "y" -o "$CONFIG_CM206" = "y" -o "$CONFIG_CDU31A" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_SR" = "m" -o "$CONFIG_SBPCD" = "m" -o "$CONFIG_MCD" = "m" -o "$CONFIG_CM206" = "m" -o "$CONFIG_CDU31A" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

source fs/nls/Config.in
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/sparc/config.in linux/arch/sparc/config.in
--- linux-pre-2.1.91-1.virgin/arch/sparc/config.in Mon Mar 23 19:45:33 1998
+++ linux/arch/sparc/config.in Tue Mar 24 02:37:06 1998
@@ -159,17 +159,6 @@
endmenu
fi

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_SR" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_SR" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

source fs/nls/Config.in
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/sparc64/config.in linux/arch/sparc64/config.in
--- linux-pre-2.1.91-1.virgin/arch/sparc64/config.in Mon Mar 23 19:45:33 1998
+++ linux/arch/sparc64/config.in Tue Mar 24 02:37:06 1998
@@ -218,17 +218,6 @@
endmenu
fi

-# Conditionally compile in the Uniform CD-ROM driver
-if [ "$CONFIG_BLK_DEV_IDECD" = "y" -o "$CONFIG_BLK_DEV_SR" = "y" ]; then
- define_bool CONFIG_CDROM y
-else
- if [ "$CONFIG_BLK_DEV_IDECD" = "m" -o "$CONFIG_BLK_DEV_SR" = "m" ]; then
- define_bool CONFIG_CDROM m
- else
- define_bool CONFIG_CDROM n
- fi
-fi
-
source fs/Config.in

source fs/nls/Config.in
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/arch/sparc64/defconfig linux/arch/sparc64/defconfig
--- linux-pre-2.1.91-1.virgin/arch/sparc64/defconfig Mon Mar 23 19:45:33 1998
+++ linux/arch/sparc64/defconfig Tue Mar 24 02:37:06 1998
@@ -205,7 +205,6 @@
CONFIG_SUNQE=m
CONFIG_MYRI_SBUS=m
CONFIG_DE4X5=y
-CONFIG_CDROM=y

#
# Filesystems
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/drivers/block/ide-cd.c linux/drivers/block/ide-cd.c
--- linux-pre-2.1.91-1.virgin/drivers/block/ide-cd.c Mon Mar 23 19:45:34 1998
+++ linux/drivers/block/ide-cd.c Tue Mar 24 04:14:12 1998
@@ -197,10 +197,13 @@
* inform me of where "Illegal mode for this track"
* was never returned due to a comparison on data
* types of limited range.
+ * 4.12 Mar 24, 1998 -- Changed to support the new behavior of the
+ * CDROM_SELECT_SPEED ioctl, as the old behavior
+ * was rather stupid and limited.
*
*************************************************************************/

-#define IDECD_VERSION "4.11"
+#define IDECD_VERSION "4.12"

#include <linux/module.h>
#include <linux/types.h>
@@ -1747,8 +1750,7 @@
}


-/* Note that this takes speed in kbytes/second, so don't try requesting
- silly speeds like 2 here. Common speeds include:
+/* Note that this takes speed in kbytes/second. Common speeds include:
176 kbytes/second -- 1x
353 kbytes/second -- 2x
387 kbytes/second -- 2.2x
@@ -1757,7 +1759,10 @@
1400 kbytes/second -- 8x
2800 kbytes/second -- 16x
ATAPI drives are free to select the speed you request or any slower
- rate :-( Requesting too fast a speed will _not_ produce an error. */
+ rate :-( Requesting a speed higher then the max speed will _not_
+ produce an error (per the ATAPI spec). Some drives spew errors
+ when you request an unsupported speed though... Well behaved ones
+ simply select the supported speed closest to what you have requested. */
static int
cdrom_select_speed (ide_drive_t *drive, int speed,
struct atapi_request_sense *reqbuf)
@@ -1766,9 +1771,9 @@
memset (&pc, 0, sizeof (pc));
pc.sense_data = reqbuf;

- if (speed < 1)
+ if (speed == 0)
speed = 0xffff; /* set to max */
- else
+ else if ( speed < 100 )
speed *= 177; /* Nx to kbytes/s */

pc.c[0] = SET_CD_SPEED;
@@ -1776,10 +1781,14 @@
pc.c[2] = (speed >> 8) & 0xff;
/* Read Drive speed in kbytes/second LSB */
pc.c[3] = speed & 0xff;
- /* Write Drive speed in kbytes/second MSB */
- //pc.c[4] = (speed >> 8) & 0xff;
- /* Write Drive speed in kbytes/second LSB */
- //pc.c[5] = speed & 0xff;
+
+ if ( CDROM_CONFIG_FLAGS(drive)->cd_r ||
+ CDROM_CONFIG_FLAGS(drive)->cd_rw ) {
+ /* Write Drive speed in kbytes/second MSB */
+ pc.c[4] = (speed >> 8) & 0xff;
+ /* Write Drive speed in kbytes/second LSB */
+ pc.c[5] = speed & 0xff;
+ }

return cdrom_queue_packet_command (drive, &pc);
}
@@ -2485,7 +2494,7 @@
if (stat<0)
return stat;

- /* Now that that is done, update the speed fields */
+ /* Now with that done, update the speed fields */
do { /* we seem to get stat=0x01,err=0x00 the first time (??) */
if (attempts-- <= 0)
return 0;
@@ -2495,15 +2504,15 @@

/* The ACER/AOpen 24X cdrom has the speed fields byte-swapped */
if (drive->id && !drive->id->model[0] && !strncmp(drive->id->fw_rev, "241N", 4)) {
- CDROM_STATE_FLAGS (drive)->current_speed =
- (((unsigned int)buf.cap.curspeed) + (176/2)) / 176;
- CDROM_CONFIG_FLAGS (drive)->max_speed =
- (((unsigned int)buf.cap.maxspeed) + (176/2)) / 176;
+ CDROM_STATE_FLAGS (drive)->current_speed =
+ (((unsigned int)buf.cap.curspeed) + (176/2)) / 176;
+ CDROM_CONFIG_FLAGS (drive)->max_speed =
+ (((unsigned int)buf.cap.maxspeed) + (176/2)) / 176;
} else {
- CDROM_STATE_FLAGS (drive)->current_speed =
- (ntohs(buf.cap.curspeed) + (176/2)) / 176;
- CDROM_CONFIG_FLAGS (drive)->max_speed =
- (ntohs(buf.cap.maxspeed) + (176/2)) / 176;
+ CDROM_STATE_FLAGS (drive)->current_speed =
+ (ntohs(buf.cap.curspeed) + (176/2)) / 176;
+ CDROM_CONFIG_FLAGS (drive)->max_speed =
+ (ntohs(buf.cap.maxspeed) + (176/2)) / 176;
}
cdi->speed = CDROM_STATE_FLAGS (drive)->current_speed;
return 0;
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/drivers/block/ll_rw_blk.c linux/drivers/block/ll_rw_blk.c
--- linux-pre-2.1.91-1.virgin/drivers/block/ll_rw_blk.c Mon Mar 23 19:45:34 1998
+++ linux/drivers/block/ll_rw_blk.c Tue Mar 24 02:37:06 1998
@@ -716,9 +716,6 @@
#ifdef CONFIG_BLK_DEV_LOOP
loop_init();
#endif
-#ifdef CONFIG_CDROM /* this must precede all CD-ROM drivers */
- cdrom_init();
-#endif CONFIG_CDROM
#ifdef CONFIG_ISP16_CDI
isp16_init();
#endif CONFIG_ISP16_CDI
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/drivers/cdrom/Makefile linux/drivers/cdrom/Makefile
--- linux-pre-2.1.91-1.virgin/drivers/cdrom/Makefile Sun Dec 28 13:05:45 1997
+++ linux/drivers/cdrom/Makefile Tue Mar 24 02:37:06 1998
@@ -1,131 +1,66 @@
-#
# Makefile for the kernel cdrom device drivers.
#
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
-#
-# Note 2! The CFLAGS definition is now inherited from the
-# parent makefile.
-#
+# 30 Jan 1998, Michael Elizabeth Chastain, <mailto:mec@shout.net>
+# Rewritten to use lists instead of if-statements.
+
+
+
+# All of the (potential) objects that export symbols.
+# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
+
+export-objs := cdrom.o
+
+
+
+# Object file lists.
+
+obj-y :=
+obj-m :=
+obj-n :=
+obj- :=
+
+
+
+# Each configuration option enables a list of files.
+
+obj-$(CONFIG_BLK_DEV_IDECD) += cdrom.o
+obj-$(CONFIG_BLK_DEV_SR) += cdrom.o
+
+obj-$(CONFIG_AZTCD) += aztcd.o
+obj-$(CONFIG_CDU31A) += cdu31a.o cdrom.o
+obj-$(CONFIG_CM206) += cm206.o cdrom.o
+obj-$(CONFIG_GSCD) += gscd.o
+obj-$(CONFIG_ISP16_CDI) += isp16.o
+obj-$(CONFIG_MCD) += mcd.o cdrom.o
+obj-$(CONFIG_MCDX) += mcdx.o cdrom.o
+obj-$(CONFIG_OPTCD) += optcd.o
+obj-$(CONFIG_SBPCD) += sbpcd.o cdrom.o
+obj-$(CONFIG_SBPCD2) += sbpcd2.o cdrom.o
+obj-$(CONFIG_SBPCD3) += sbpcd3.o cdrom.o
+obj-$(CONFIG_SBPCD4) += sbpcd4.o cdrom.o
+obj-$(CONFIG_SJCD) += sjcd.o
+obj-$(CONFIG_CDU535) += sonycd535.o
+
+
+
+# Files that are both resident and modular: remove from modular.
+
+obj-m := $(filter-out $(obj-y), $(obj-m))
+
+
+
+# Translate to Rules.make lists.
+
+L_TARGET := cdrom.a
+MOD_LIST_NAME := CDROM_MODULES
+
+L_OBJS := $(sort $(filter-out $(export-objs), $(obj-y)))
+LX_OBJS := $(sort $(filter $(export-objs), $(obj-y)))
+M_OBJS := $(sort $(filter-out $(export-objs), $(obj-m)))
+MX_OBJS := $(sort $(filter $(export-objs), $(obj-m)))

-#
-# Note : at this point, these files are compiled on all systems.
-# In the future, some of these should be built conditionally.
-#


-L_TARGET := cdrom.a
-L_OBJS :=
-M_OBJS :=
-MOD_LIST_NAME := CDROM_MODULES
-
-ifeq ($(CONFIG_AZTCD),y)
-L_OBJS += aztcd.o
-else
- ifeq ($(CONFIG_AZTCD),m)
- M_OBJS += aztcd.o
- endif
-endif #CONFIG_AZTCD
-
-ifeq ($(CONFIG_CDU31A),y)
-L_OBJS += cdu31a.o
-else
- ifeq ($(CONFIG_CDU31A),m)
- M_OBJS += cdu31a.o
- endif
-endif #CONFIG_CDU31A
-
-ifeq ($(CONFIG_MCD),y)
-L_OBJS += mcd.o
-else
- ifeq ($(CONFIG_MCD),m)
- M_OBJS += mcd.o
- endif
-endif #CONFIG_MCD
-
-ifeq ($(CONFIG_MCDX),y)
-L_OBJS += mcdx.o
-else
- ifeq ($(CONFIG_MCDX),m)
- M_OBJS += mcdx.o
- endif
-endif #CONFIG_MCDX
-
-ifeq ($(CONFIG_SBPCD),y)
-L_OBJS += sbpcd.o
-else
- ifeq ($(CONFIG_SBPCD),m)
- M_OBJS += sbpcd.o
- endif
-endif #CONFIG_SBPCD
-
-ifeq ($(CONFIG_SBPCD2),y)
-L_OBJS += sbpcd2.o
-endif #CONFIG_SBPCD2
-
-ifeq ($(CONFIG_SBPCD3),y)
-L_OBJS += sbpcd3.o
-endif #CONFIG_SBPCD3
-
-ifeq ($(CONFIG_SBPCD4),y)
-L_OBJS += sbpcd4.o
-endif #CONFIG_SBPCD4
-
-ifeq ($(CONFIG_CDU535),y)
-L_OBJS += sonycd535.o
-else
- ifeq ($(CONFIG_CDU535),m)
- M_OBJS += sonycd535.o
- endif
-endif #CONFIG_CDU535
-
-ifeq ($(CONFIG_GSCD),y)
-L_OBJS += gscd.o
-else
- ifeq ($(CONFIG_GSCD),m)
- M_OBJS += gscd.o
- endif
-endif #CONFIG_GSCD
-
-ifeq ($(CONFIG_CM206),y)
-L_OBJS += cm206.o
-else
- ifeq ($(CONFIG_CM206),m)
- M_OBJS += cm206.o
- endif
-endif #CONFIG_CM206
-
-ifeq ($(CONFIG_OPTCD),y)
-L_OBJS += optcd.o
-else
- ifeq ($(CONFIG_OPTCD),m)
- M_OBJS += optcd.o
- endif
-endif #CONFIG_OPTCD
-
-ifeq ($(CONFIG_SJCD),y)
-L_OBJS += sjcd.o
-else
- ifeq ($(CONFIG_SJCD),m)
- M_OBJS += sjcd.o
- endif
-endif #CONFIG_SJCD
-
-ifeq ($(CONFIG_ISP16_CDI),y)
-L_OBJS += isp16.o
-else
- ifeq ($(CONFIG_ISP16_CDI),m)
- M_OBJS += isp16.o
- endif
-endif #CONFIG_ISP16_CDI
-
-ifeq ($(CONFIG_CDROM),y)
-LX_OBJS += cdrom.o
-else
- ifeq ($(CONFIG_CDROM),m)
- MX_OBJS += cdrom.o
- endif
-endif #CONFIG_CDROM for the Uniform CD-ROM driver
+# Hand off to Rules.make.

include $(TOPDIR)/Rules.make
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/drivers/cdrom/cdrom.c linux/drivers/cdrom/cdrom.c
--- linux-pre-2.1.91-1.virgin/drivers/cdrom/cdrom.c Sat Feb 28 09:19:37 1998
+++ linux/drivers/cdrom/cdrom.c Tue Mar 24 04:12:00 1998
@@ -168,11 +168,6 @@
NULL /* revalidate */
};

-void cdrom_init(void) {
- if (!topCdromPtr)
- printk(KERN_INFO "Uniform CD-ROM driver " REVISION "\n");
-}
-
/* This macro makes sure we don't have to check on cdrom_device_ops
* existence in the run-time routines below. Change_capability is a
* hack to have the capability flags defined const, while we can still
@@ -205,6 +200,15 @@
/* default compatibility mode */
cdi->mc_flags = 0;
cdo->n_minors = 0;
+
+ {
+ static char banner_printed = 0;
+ if ( !banner_printed ) {
+ printk(KERN_INFO "Uniform CD-ROM driver " REVISION "\n");
+ banner_printed = 1;
+ }
+ }
+
cdinfo(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
cdi->next = topCdromPtr;
topCdromPtr = cdi;
@@ -682,8 +686,6 @@
cdinfo(CD_DO_IOCTL, "entering CDROM_SELECT_SPEED\n");
if (!(cdo->capability & ~cdi->mask & CDC_SELECT_SPEED))
return -ENOSYS;
- if ((int)arg > cdi->speed )
- return -EINVAL;
return cdo->select_speed(cdi, arg);
}

@@ -1031,7 +1033,6 @@

int init_module(void)
{
- cdrom_init();
#ifdef CONFIG_SYSCTL
cdrom_sysctl_register();
#endif /* CONFIG_SYSCTL */
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/drivers/scsi/sr_ioctl.c linux/drivers/scsi/sr_ioctl.c
--- linux-pre-2.1.91-1.virgin/drivers/scsi/sr_ioctl.c Sat Feb 28 09:19:58 1998
+++ linux/drivers/scsi/sr_ioctl.c Tue Mar 24 03:47:20 1998
@@ -261,9 +261,9 @@

if (speed == 0)
speed = 0xffff; /* set to max */
- else
- speed *= 177; /* Nx to kbyte/s */
-
+ else if ( speed < 100 )
+ speed *= 177; /* Nx to kbytes/s */
+
memset(sr_cmd,0,12);
sr_cmd[0] = 0xbb; /* SET CD SPEED */
sr_cmd[1] = (scsi_CDs[MINOR(cdi->dev)].device->lun) << 5;
diff -u --recursive --new-file linux-pre-2.1.91-1.virgin/include/linux/blk.h linux/include/linux/blk.h
--- linux-pre-2.1.91-1.virgin/include/linux/blk.h Sat Feb 28 09:20:21 1998
+++ linux/include/linux/blk.h Tue Mar 24 02:37:06 1998
@@ -45,75 +45,33 @@
#endif /* IDE_DRIVER */

#define SUBSECTOR(block) (CURRENT->current_nr_sectors > 0)
-#ifdef CONFIG_CDROM
-extern int cdrom_init(void);
-#endif CONFIG_CDROM
-#ifdef CONFIG_ISP16_CDI
+
+/*
+ * Initialization functions.
+ */
extern int isp16_init(void);
-#endif CONFIG_ISP16_CDI
-#ifdef CONFIG_CDU31A
extern int cdu31a_init(void);
-#endif CONFIG_CDU31A
-#ifdef CONFIG_ATARI_ACSI
extern int acsi_init(void);
-#endif CONFIG_ATARI_ACSI
-#ifdef CONFIG_MCD
extern int mcd_init(void);
-#endif CONFIG_MCD
-#ifdef CONFIG_MCDX
extern int mcdx_init(void);
-#endif CONFIG_MCDX
-#ifdef CONFIG_SBPCD
extern int sbpcd_init(void);
-#endif CONFIG_SBPCD
-#ifdef CONFIG_AZTCD
extern int aztcd_init(void);
-#endif CONFIG_AZTCD
-#ifdef CONFIG_CDU535
extern int sony535_init(void);
-#endif CONFIG_CDU535
-#ifdef CONFIG_GSCD
extern int gscd_init(void);
-#endif CONFIG_GSCD
-#ifdef CONFIG_CM206
extern int cm206_init(void);
-#endif CONFIG_CM206
-#ifdef CONFIG_OPTCD
extern int optcd_init(void);
-#endif CONFIG_OPTCD
-#ifdef CONFIG_SJCD
extern int sjcd_init(void);
-#endif CONFIG_SJCD
-#ifdef CONFIG_CDI_INIT
extern int cdi_init(void);
-#endif CONFIG_CDI_INIT
-#ifdef CONFIG_BLK_DEV_HD
extern int hd_init(void);
-#endif
-#ifdef CONFIG_BLK_DEV_IDE
extern int ide_init(void);
-#endif
-#ifdef CONFIG_BLK_DEV_XD
extern int xd_init(void);
-#endif
-#ifdef CONFIG_BLK_DEV_LOOP
extern int loop_init(void);
-#endif
-#ifdef CONFIG_BLK_DEV_MD
extern int md_init(void);
-#endif CONFIG_BLK_DEV_MD
-#ifdef CONFIG_APBLOCK
extern int ap_init(void);
-#endif
-#ifdef CONFIG_DDV
extern int ddv_init(void);
-#endif
-#ifdef CONFIG_AMIGA_Z2RAM
extern int z2_init(void);
-#endif
-#ifdef CONFIG_MAC_FLOPPY
extern int swim3_init(void);
-#endif
+extern int ps2esdi_init(void);

extern void set_device_ro(kdev_t dev,int flag);
void add_blkdev_randomness(int major);
@@ -134,9 +92,6 @@
extern int initrd_below_start_ok; /* 1 if it is not an error if initrd_start < memory_start */
void initrd_init(void);

-#endif
-#ifdef CONFIG_BLK_DEV_PS2
-extern int ps2esdi_init(void);
#endif

#define RO_IOCTLS(dev,where) \
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 13:41    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site