Commit f74492a2 authored by Linus Torvalds's avatar Linus Torvalds

Import 1.1.1

parent 75bcc1d5
......@@ -531,6 +531,14 @@ S: Obere Heerbergstrasse 17
S: 97078 Wuerzburg
S: Germany
N: Patrick Volkerding
E: volkerdi@ftp.cdrom.com
D: Produced the Slackware distribution, updated the SVGAlib
D: patches for ghostscript, worked on color 'ls', etc.
S: 301 15th Street S.
S: Moorhead, MN 56560
S: USA
N: Juergen Weigert
E: jnweiger@immd4.informatik.uni-erlangen.de
D: The Linux Support Team Erlangen
......
VERSION = 1
PATCHLEVEL = 1
SUBLEVEL = 0
SUBLEVEL = 1
all: Version zImage
......
This is release 1.3 of the SoundBlaster Pro (Matsushita, Kotobuki,
This is release 1.4 of the SoundBlaster Pro (Matsushita, Kotobuki,
Panasonic, CreativeLabs, Aztech) CD-ROM driver for Linux.
The driver is able to drive the whole family of IDE-style
......@@ -14,11 +14,11 @@ is a 2.11, but it should work with "old" drives <2.01 ... >3.00
and with "new" drives (which count the releases around 0.75 or
1.00).
Up to 4 drives are supported. CR-52x and CR-56x drives can be mixed,
but the CR-521 ones are hard-wired to drive ID 0. The drives have
to use different drive IDs, but the same controller (it will be a
little bit harder to support up to four interface cards - but I plan
to do it the day somebody wishes to connect a fifth drive).
Up to 4 drives are supported. CR-52x ("old") and CR-56x ("new") drives
can be mixed, but the CR-521 ones are hard-wired to drive ID 0.
The drives have to use different drive IDs, but the same controller
(it will be a little bit harder to support up to four interface cards -
but I plan to do it the day somebody wishes to connect a fifth drive).
Each drive has to get a unique minor number (0...3), corresponding
to it's drive ID. The drive IDs may be selected freely from 0 to 3 -
they must not be in consecutive order.
......@@ -28,12 +28,14 @@ audio tracks. The audio part should run with WorkMan, xcdplayer,
with the "non-X11" products CDplayer and WorkBone - tell me if
it is not compatible with other software.
MultiSession is supported, "ManySession" (see below) alternatively.
MultiSession is supported (but "old" drives lack this capability),
"ManySession" (see below) alternatively.
Photo CDs work, too. At ftp.gwdg.de:/pub/linux/hpcdtoppm/ is a package
to convert photo CD image files.
The transfer rate will reach 150 kB/sec with standard drives and
the full 300 kB/sec with double-speed drives.
The transfer rate will reach 150 kB/sec with "old" drives and
the full 300 kB/sec with double-speed drives. XA (PhotoCD) disks
with "old" drives are as slow as 50 kB/sec.
This release is part of the standard kernel and consists of
- this README file
......@@ -188,6 +190,13 @@ Known problems:
Currently, the detection of disk change or removal does not
work as good as it should.
The "door (un)lock" commands get done at every "(u)mount" (only the
"new" drives support it), but after an unlock, locking again does not
work.
All attempts to read the UPC/EAN code result in a stream of zeroes.
All my drives are telling there is no UPC/EAN code on disk or there
is, but it is an all-zero number.
Bug reports, comments, wishes, donations (technical information
is a donation, too :-) etc. to
......
......@@ -1241,6 +1241,9 @@ static struct floppy_struct *find_base(int drive,int code)
base = &floppy_types[(code-1)*2];
printk("fd%d is %s",drive,base->name);
return base;
} else if (!code) {
printk("fd%d is not installed", drive);
return NULL;
}
printk("fd%d is unknown type %d",drive,code);
return NULL;
......@@ -1250,7 +1253,7 @@ static void config_types(void)
{
printk("Floppy drive(s): ");
base_type[0] = find_base(0,(CMOS_READ(0x10) >> 4) & 15);
if (((CMOS_READ(0x14) >> 6) & 1) == 0)
if ((CMOS_READ(0x10) & 15) == 0)
base_type[1] = NULL;
else {
printk(", ");
......
This diff is collapsed.
This diff is collapsed.
/* fdomain.h -- Header for Future Domain TMC-16x0 driver
* Created: Sun May 3 18:47:33 1992 by faith@cs.unc.edu
* Revised: Tue Jan 4 20:44:04 1994 by faith@cs.unc.edu
* Revised: Sat Mar 19 16:07:14 1994 by faith@cs.unc.edu
* Author: Rickard E. Faith, faith@cs.unc.edu
* Copyright 1992, 1993, 1994 Rickard E. Faith
*
* $Id: fdomain.h,v 5.3 1994/01/05 01:44:16 root Exp $
* $Id: fdomain.h,v 5.5 1994/03/19 21:07:38 root Exp $
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
......@@ -16,6 +16,10 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _FDOMAIN_H
......@@ -27,7 +31,12 @@ int fdomain_16x0_abort( Scsi_Cmnd *, int );
const char *fdomain_16x0_info( void );
int fdomain_16x0_reset( Scsi_Cmnd * );
int fdomain_16x0_queue( Scsi_Cmnd *, void (*done)(Scsi_Cmnd *) );
#ifdef CONFIG_BLK_DEV_SD
int fdomain_16x0_biosparam( int, int, int * );
#else
#define fdomain_16x0_biosparam NULL
#endif
#define FDOMAIN_16X0 { "Future Domain TMC-16x0", \
fdomain_16x0_detect, \
......
......@@ -71,7 +71,10 @@
#define DBG_SPI 18 /* SpinUp test */
#define DBG_IOS 19 /* ioctl trace: "subchannel" */
#define DBG_IO2 20 /* ioctl trace: general */
#define DBG_000 21 /* unnecessary information */
#define DBG_UPC 21 /* show UPC information */
#define DBG_XA 22 /* XA mode debugging */
#define DBG_LCK 23 /* door (un)lock info */
#define DBG_000 24 /* unnecessary information */
/*==========================================================================*/
/*==========================================================================*/
......@@ -192,9 +195,9 @@
/*
* values of cmd_type (0 else):
*/
#define cmd_type_READ_M1 0x01 /* "data mode 1": 2048 bytes per frame */
#define cmd_type_READ_M2 0x02 /* "data mode 2": 12+2048+280 bytes per frame */
#define cmd_type_READ_SC 0x04 /* "subchannel info": 96 bytes per frame */
#define READ_M1 0x01 /* "data mode 1": 2048 bytes per frame */
#define READ_M2 0x02 /* "data mode 2": 12+2048+280 bytes per frame */
#define READ_SC 0x04 /* "subchannel info": 96 bytes per frame */
/*
* sense byte: used only if new_drive
......@@ -213,7 +216,8 @@
#define CD_FRAMESIZE_XA 2340 /* bytes per frame, "xa" mode */
#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */
#define CD_BLOCK_OFFSET 150 /* offset of first logical frame */
#define CD_XA_HEAD 12 /* header size of XA frame */
#define CD_XA_TAIL 280 /* tail size of XA frame */
/* audio status (bin) */
#define aud_00 0x00 /* Audio status byte not supported or not valid */
......@@ -339,9 +343,8 @@ read: 02 xx-xx-xx nn-nn fl. (??) read nn-nn blocks of 2048 bytes,
fl=0: "lba"-, =2:"msf-bcd"-coded xx-xx-xx
Read XA-Data:
read: 03 xx-xx-xx nn-nn fl. (??) read nn-nn blocks of 2340 bytes,
starting at block xx-xx-xx
fl=0: "lba"-, =2:"msf-bcd"-coded xx-xx-xx
read: 03 ll-bb-aa nn-nn 00. (??) read nn-nn blocks of 2340 bytes,
starting at block ll-bb-aa
Read SUB_Q:
89 fl 00 00 00 00 00. (13) r0: audio status, r4-r7: lba/msf,
......
......@@ -9,7 +9,7 @@
#include <linux/fs.h>
#include <linux/sched.h>
#define X(name) { (void *) &name, #name }
#define X(name) { (void *) &name, "_" #name }
struct {
void *addr;
......
......@@ -285,6 +285,65 @@ icmp_echo(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
}
/* Handle ICMP Timestamp requests. */
static void
icmp_timestamp(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
unsigned long saddr, unsigned long daddr, int len,
struct options *opt)
{
struct icmphdr *icmphr;
struct sk_buff *skb2;
int size, offset;
unsigned long *timeptr, midtime;
extern struct timeval xtime; /* kernel/time.c */
size = sizeof(struct sk_buff) + dev->hard_header_len + 64 + len;
if (! (skb2 = alloc_skb(size, GFP_ATOMIC))) {
skb->sk = NULL;
kfree_skb(skb, FREE_READ);
return;
}
skb2->sk = NULL;
skb2->mem_addr = skb2;
skb2->mem_len = size;
skb2->free = 1;
/* Build Layer 2-3 headers for message back to source */
offset = ip_build_header(skb2, daddr, saddr, &dev, IPPROTO_ICMP, opt, len,
skb->ip_hdr->tos, 255);
if (offset < 0) {
printk("ICMP: Could not build IP Header for ICMP TIMESTAMP Response\n");
kfree_skb(skb2, FREE_WRITE);
skb->sk = NULL;
kfree_skb(skb, FREE_READ);
return;
}
/* Re-adjust length according to actual IP header size. */
skb2->len = offset + len;
/* Build ICMP_TIMESTAMP Response message. */
icmphr = (struct icmphdr *) ((char *) (skb2 + 1) + offset);
memcpy((char *) icmphr, (char *) icmph, len);
icmphr->type = ICMP_TIMESTAMPREPLY;
icmphr->code = icmphr->checksum = 0;
/* fill in the current time as ms since midnight UT: */
midtime = (xtime.tv_sec % 86400) * 1000 + xtime.tv_usec / 1000;
timeptr = (unsigned long *) (icmphr + 1);
/* the originate timestamp (timeptr [0]) is still in the copy: */
timeptr [1] = timeptr [2] = htonl(midtime);
icmphr->checksum = ip_compute_csum((unsigned char *) icmphr, len);
/* Ship it out - free it when done */
ip_queue_xmit((struct sock *) NULL, dev, skb2, 1);
skb->sk = NULL;
kfree_skb(skb, FREE_READ);
}
/* Handle the ICMP INFORMATION REQUEST. */
static void
icmp_info(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
......@@ -400,6 +459,13 @@ icmp_rcv(struct sk_buff *skb1, struct device *dev, struct options *opt,
skb1->sk = NULL;
kfree_skb(skb1, FREE_READ);
return(0);
case ICMP_TIMESTAMP:
icmp_timestamp(icmph, skb1, dev, saddr, daddr, len, opt);
return 0;
case ICMP_TIMESTAMPREPLY:
skb1->sk = NULL;
kfree_skb(skb1, FREE_READ);
return(0);
case ICMP_INFO_REQUEST:
icmp_info(icmph, skb1, dev, saddr, daddr, len, opt);
return 0;
......
......@@ -3388,6 +3388,15 @@ if (inet_debug == DBG_SLIP) printk("\rtcp_rcv: not in seq\n");
release_sock(sk);
return(0);
case TCP_SYN_RECV:
if (th->syn) {
/* Probably a retransmitted syn */
kfree_skb(skb, FREE_READ);
release_sock(sk);
return(0);
}
default:
if (!tcp_sequence(sk, th, len, opt, saddr,dev)) {
kfree_skb(skb, FREE_READ);
......
......@@ -24,7 +24,7 @@
#define MAX_FIN_SIZE 40 + sizeof (struct sk_buff) + MAX_HEADER
#define MAX_ACK_SIZE 40 + sizeof (struct sk_buff) + MAX_HEADER
#define MAX_RESET_SIZE 40 + sizeof (struct sk_buff) + MAX_HEADER
#define MAX_WINDOW 4096
#define MAX_WINDOW 8192
#define MIN_WINDOW 2048
#define MAX_ACK_BACKLOG 2
#define MIN_WRITE_SPACE 2048
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment