Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
7116317d
Commit
7116317d
authored
Dec 14, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
parents
24996049
0afaa4fc
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
567 additions
and
1134 deletions
+567
-1134
drivers/ide/Kconfig
drivers/ide/Kconfig
+1
-9
drivers/ide/ide-cd.c
drivers/ide/ide-cd.c
+0
-7
drivers/ide/ide-cd.h
drivers/ide/ide-cd.h
+0
-1
drivers/ide/ide-disk.c
drivers/ide/ide-disk.c
+2
-2
drivers/ide/ide-dma.c
drivers/ide/ide-dma.c
+6
-9
drivers/ide/mips/Makefile
drivers/ide/mips/Makefile
+3
-0
drivers/ide/mips/au1xxx-ide.c
drivers/ide/mips/au1xxx-ide.c
+532
-966
drivers/ide/pci/sgiioc4.c
drivers/ide/pci/sgiioc4.c
+7
-1
drivers/ide/pci/via82cxxx.c
drivers/ide/pci/via82cxxx.c
+1
-0
include/asm-mips/mach-au1x00/au1xxx_ide.h
include/asm-mips/mach-au1x00/au1xxx_ide.h
+8
-14
include/linux/ide.h
include/linux/ide.h
+6
-125
include/linux/pci_ids.h
include/linux/pci_ids.h
+1
-0
No files found.
drivers/ide/Kconfig
View file @
7116317d
...
...
@@ -807,14 +807,6 @@ config BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX
endchoice
config BLK_DEV_IDE_AU1XXX_BURSTABLE_ON
bool "Enable burstable Mode on DbDMA"
default false
depends BLK_DEV_IDE_AU1XXX
help
This option enable the burstable Flag on DbDMA controller
(cf. "AMD Alchemy 'Au1200' Processor Data Book - PRELIMINARY").
config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ
int "Maximum transfer size (KB) per request (up to 128)"
default "128"
...
...
@@ -940,7 +932,7 @@ config BLK_DEV_Q40IDE
config BLK_DEV_MPC8xx_IDE
bool "MPC8xx IDE support"
depends on 8xx
depends on 8xx
&& IDE=y && BLK_DEV_IDE=y
help
This option provides support for IDE on Motorola MPC8xx Systems.
Please see 'Type of MPC8xx IDE interface' for details.
...
...
drivers/ide/ide-cd.c
View file @
7116317d
...
...
@@ -1292,7 +1292,6 @@ static ide_startstop_t cdrom_start_seek (ide_drive_t *drive, unsigned int block)
struct
cdrom_info
*
info
=
drive
->
driver_data
;
info
->
dma
=
0
;
info
->
cmd
=
0
;
info
->
start_seek
=
jiffies
;
return
cdrom_start_packet_command
(
drive
,
0
,
cdrom_start_seek_continuation
);
}
...
...
@@ -1344,8 +1343,6 @@ static ide_startstop_t cdrom_start_read (ide_drive_t *drive, unsigned int block)
(
rq
->
nr_sectors
&
(
sectors_per_frame
-
1
)))
info
->
dma
=
0
;
info
->
cmd
=
READ
;
/* Start sending the read request to the drive. */
return
cdrom_start_packet_command
(
drive
,
32768
,
cdrom_start_read_continuation
);
}
...
...
@@ -1484,7 +1481,6 @@ static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive)
struct
cdrom_info
*
info
=
drive
->
driver_data
;
info
->
dma
=
0
;
info
->
cmd
=
0
;
rq
->
flags
&=
~
REQ_FAILED
;
len
=
rq
->
data_len
;
...
...
@@ -1891,7 +1887,6 @@ static ide_startstop_t cdrom_start_write(ide_drive_t *drive, struct request *rq)
/* use dma, if possible. we don't need to check more, since we
* know that the transfer is always (at least!) frame aligned */
info
->
dma
=
drive
->
using_dma
?
1
:
0
;
info
->
cmd
=
WRITE
;
info
->
devinfo
.
media_written
=
1
;
...
...
@@ -1916,7 +1911,6 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
rq
->
flags
|=
REQ_QUIET
;
info
->
dma
=
0
;
info
->
cmd
=
0
;
/*
* sg request
...
...
@@ -1925,7 +1919,6 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
int
mask
=
drive
->
queue
->
dma_alignment
;
unsigned
long
addr
=
(
unsigned
long
)
page_address
(
bio_page
(
rq
->
bio
));
info
->
cmd
=
rq_data_dir
(
rq
);
info
->
dma
=
drive
->
using_dma
;
/*
...
...
drivers/ide/ide-cd.h
View file @
7116317d
...
...
@@ -480,7 +480,6 @@ struct cdrom_info {
struct
request
request_sense_request
;
int
dma
;
int
cmd
;
unsigned
long
last_block
;
unsigned
long
start_seek
;
/* Buffer to hold mechanism status and changer slot table. */
...
...
drivers/ide/ide-disk.c
View file @
7116317d
...
...
@@ -1034,12 +1034,12 @@ static int ide_disk_remove(struct device *dev)
struct
ide_disk_obj
*
idkp
=
drive
->
driver_data
;
struct
gendisk
*
g
=
idkp
->
disk
;
ide_cacheflush_p
(
drive
);
ide_unregister_subdriver
(
drive
,
idkp
->
driver
);
del_gendisk
(
g
);
ide_cacheflush_p
(
drive
);
ide_disk_put
(
idkp
);
return
0
;
...
...
drivers/ide/ide-dma.c
View file @
7116317d
...
...
@@ -90,11 +90,6 @@
#include <asm/io.h>
#include <asm/irq.h>
struct
drive_list_entry
{
const
char
*
id_model
;
const
char
*
id_firmware
;
};
static
const
struct
drive_list_entry
drive_whitelist
[]
=
{
{
"Micropolis 2112A"
,
"ALL"
},
...
...
@@ -139,7 +134,7 @@ static const struct drive_list_entry drive_blacklist [] = {
};
/**
* in_drive_list - look for drive in black/white list
* i
de_i
n_drive_list - look for drive in black/white list
* @id: drive identifier
* @drive_table: list to inspect
*
...
...
@@ -147,7 +142,7 @@ static const struct drive_list_entry drive_blacklist [] = {
* Returns 1 if the drive is found in the table.
*/
static
int
in_drive_list
(
struct
hd_driveid
*
id
,
const
struct
drive_list_entry
*
drive_table
)
int
ide_
in_drive_list
(
struct
hd_driveid
*
id
,
const
struct
drive_list_entry
*
drive_table
)
{
for
(
;
drive_table
->
id_model
;
drive_table
++
)
if
((
!
strcmp
(
drive_table
->
id_model
,
id
->
model
))
&&
...
...
@@ -157,6 +152,8 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d
return
0
;
}
EXPORT_SYMBOL_GPL
(
ide_in_drive_list
);
/**
* ide_dma_intr - IDE DMA interrupt handler
* @drive: the drive the interrupt is for
...
...
@@ -663,7 +660,7 @@ int __ide_dma_bad_drive (ide_drive_t *drive)
{
struct
hd_driveid
*
id
=
drive
->
id
;
int
blacklist
=
in_drive_list
(
id
,
drive_blacklist
);
int
blacklist
=
i
de_i
n_drive_list
(
id
,
drive_blacklist
);
if
(
blacklist
)
{
printk
(
KERN_WARNING
"%s: Disabling (U)DMA for %s (blacklisted)
\n
"
,
drive
->
name
,
id
->
model
);
...
...
@@ -677,7 +674,7 @@ EXPORT_SYMBOL(__ide_dma_bad_drive);
int
__ide_dma_good_drive
(
ide_drive_t
*
drive
)
{
struct
hd_driveid
*
id
=
drive
->
id
;
return
in_drive_list
(
id
,
drive_whitelist
);
return
i
de_i
n_drive_list
(
id
,
drive_whitelist
);
}
EXPORT_SYMBOL
(
__ide_dma_good_drive
);
...
...
drivers/ide/mips/Makefile
View file @
7116317d
obj-$(CONFIG_BLK_DEV_IDE_SWARM)
+=
swarm.o
obj-$(CONFIG_BLK_DEV_IDE_AU1XXX)
+=
au1xxx-ide.o
EXTRA_CFLAGS
:=
-Idrivers
/ide
drivers/ide/mips/au1xxx-ide.c
View file @
7116317d
This diff is collapsed.
Click to expand it.
drivers/ide/pci/sgiioc4.c
View file @
7116317d
...
...
@@ -622,12 +622,18 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t * d)
ide_hwif_t
*
hwif
;
int
h
;
/*
* Find an empty HWIF; if none available, return -ENOMEM.
*/
for
(
h
=
0
;
h
<
MAX_HWIFS
;
++
h
)
{
hwif
=
&
ide_hwifs
[
h
];
/* Find an empty HWIF */
if
(
hwif
->
chipset
==
ide_unknown
)
break
;
}
if
(
h
==
MAX_HWIFS
)
{
printk
(
KERN_ERR
"%s: too many IDE interfaces, no room in table
\n
"
,
d
->
name
);
return
-
ENOMEM
;
}
/* Get the CmdBlk and CtrlBlk Base Registers */
base
=
pci_resource_start
(
dev
,
0
)
+
IOC4_CMD_OFFSET
;
...
...
drivers/ide/pci/via82cxxx.c
View file @
7116317d
...
...
@@ -80,6 +80,7 @@ static struct via_isa_bridge {
u16
flags
;
}
via_isa_bridges
[]
=
{
{
"vt6410"
,
PCI_DEVICE_ID_VIA_6410
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8251"
,
PCI_DEVICE_ID_VIA_8251
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8237"
,
PCI_DEVICE_ID_VIA_8237
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8235"
,
PCI_DEVICE_ID_VIA_8235
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8233a"
,
PCI_DEVICE_ID_VIA_8233A
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
...
...
include/asm-mips/mach-au1x00/au1xxx_ide.h
View file @
7116317d
...
...
@@ -74,9 +74,6 @@ typedef struct
u8
white_list
,
black_list
;
struct
dbdma_cmd
*
dma_table_cpu
;
dma_addr_t
dma_table_dma
;
struct
scatterlist
*
sg_table
;
int
sg_nents
;
int
sg_dma_direction
;
#endif
struct
device
*
dev
;
int
irq
;
...
...
@@ -87,11 +84,6 @@ typedef struct
}
_auide_hwif
;
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
struct
drive_list_entry
{
const
char
*
id_model
;
const
char
*
id_firmware
;
};
/* HD white list */
static
const
struct
drive_list_entry
dma_white_list
[]
=
{
/*
...
...
@@ -167,13 +159,9 @@ int __init auide_probe(void);
* Multi-Word DMA + DbDMA functions
*/
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
static
int
in_drive_list
(
struct
hd_driveid
*
id
,
const
struct
drive_list_entry
*
drive_table
);
static
int
auide_build_sglist
(
ide_drive_t
*
drive
,
struct
request
*
rq
);
static
int
auide_build_dmatable
(
ide_drive_t
*
drive
);
static
int
auide_dma_end
(
ide_drive_t
*
drive
);
static
void
auide_dma_start
(
ide_drive_t
*
drive
);
ide_startstop_t
auide_dma_intr
(
ide_drive_t
*
drive
);
static
void
auide_dma_exec_cmd
(
ide_drive_t
*
drive
,
u8
command
);
static
int
auide_dma_setup
(
ide_drive_t
*
drive
);
...
...
@@ -188,8 +176,6 @@ int __init auide_probe(void);
static
void
auide_ddma_rx_callback
(
int
irq
,
void
*
param
,
struct
pt_regs
*
regs
);
static
int
auide_dma_off_quietly
(
ide_drive_t
*
drive
);
static
int
auide_dma_timeout
(
ide_drive_t
*
drive
);
#endif
/* end CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */
/*******************************************************************************
...
...
@@ -299,3 +285,11 @@ int __init auide_probe(void);
#define SBC_IDE_MDMA2_TPM (0x00<<6)
#define SBC_IDE_MDMA2_TA (0x12<<0)
#define SBC_IDE_TIMING(mode) \
SBC_IDE_##mode##_TWCS | \
SBC_IDE_##mode##_TCSH | \
SBC_IDE_##mode##_TCSOFF | \
SBC_IDE_##mode##_TWP | \
SBC_IDE_##mode##_TCSW | \
SBC_IDE_##mode##_TPM | \
SBC_IDE_##mode##_TA
include/linux/ide.h
View file @
7116317d
...
...
@@ -23,17 +23,6 @@
#include <asm/io.h>
#include <asm/semaphore.h>
/*
* This is the multiple IDE interface driver, as evolved from hd.c.
* It supports up to four IDE interfaces, on one or more IRQs (usually 14 & 15).
* There can be up to two drives per interface, as per the ATA-2 spec.
*
* Primary i/f: ide0: major=3; (hda) minor=0; (hdb) minor=64
* Secondary i/f: ide1: major=22; (hdc or hd1a) minor=0; (hdd or hd1b) minor=64
* Tertiary i/f: ide2: major=33; (hde) minor=0; (hdf) minor=64
* Quaternary i/f: ide3: major=34; (hdg) minor=0; (hdh) minor=64
*/
/******************************************************************************
* IDE driver configuration options (play with these as desired):
*
...
...
@@ -193,11 +182,6 @@ typedef unsigned char byte; /* used everywhere */
#define WAIT_CMD (10*HZ)
/* 10sec - maximum wait for an IRQ to happen */
#define WAIT_MIN_SLEEP (2*HZ/100)
/* 20msec - minimum sleep time */
#define HOST(hwif,chipset) \
{ \
return ((hwif)->chipset == chipset) ? 1 : 0; \
}
/*
* Check for an interrupt and acknowledge the interrupt status
*/
...
...
@@ -390,45 +374,6 @@ typedef union {
}
b
;
}
ata_nsector_t
,
ata_data_t
,
atapi_bcount_t
,
ata_index_t
;
/*
* ATA-IDE Error Register
*
* mark : Bad address mark
* tzero : Couldn't find track 0
* abrt : Aborted Command
* mcr : Media Change Request
* id : ID field not found
* mce : Media Change Event
* ecc : Uncorrectable ECC error
* bdd : dual meaing
*/
typedef
union
{
unsigned
all
:
8
;
struct
{
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned
mark
:
1
;
unsigned
tzero
:
1
;
unsigned
abrt
:
1
;
unsigned
mcr
:
1
;
unsigned
id
:
1
;
unsigned
mce
:
1
;
unsigned
ecc
:
1
;
unsigned
bdd
:
1
;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned
bdd
:
1
;
unsigned
ecc
:
1
;
unsigned
mce
:
1
;
unsigned
id
:
1
;
unsigned
mcr
:
1
;
unsigned
abrt
:
1
;
unsigned
tzero
:
1
;
unsigned
mark
:
1
;
#else
#error "Please fix <asm/byteorder.h>"
#endif
}
b
;
}
ata_error_t
;
/*
* ATA-IDE Select Register, aka Device-Head
*
...
...
@@ -503,39 +448,6 @@ typedef union {
}
b
;
}
ata_status_t
,
atapi_status_t
;
/*
* ATA-IDE Control Register
*
* bit0 : Should be set to zero
* nIEN : device INTRQ to host
* SRST : host soft reset bit
* bit3 : ATA-2 thingy, Should be set to 1
* reserved456 : Reserved
* HOB : 48-bit address ordering, High Ordered Bit
*/
typedef
union
{
unsigned
all
:
8
;
struct
{
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned
bit0
:
1
;
unsigned
nIEN
:
1
;
unsigned
SRST
:
1
;
unsigned
bit3
:
1
;
unsigned
reserved456
:
3
;
unsigned
HOB
:
1
;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned
HOB
:
1
;
unsigned
reserved456
:
3
;
unsigned
bit3
:
1
;
unsigned
SRST
:
1
;
unsigned
nIEN
:
1
;
unsigned
bit0
:
1
;
#else
#error "Please fix <asm/byteorder.h>"
#endif
}
b
;
}
ata_control_t
;
/*
* ATAPI Feature Register
*
...
...
@@ -617,39 +529,6 @@ typedef union {
}
b
;
}
atapi_error_t
;
/*
* ATAPI floppy Drive Select Register
*
* sam_lun : Logical unit number
* reserved3 : Reserved
* drv : The responding drive will be drive 0 (0) or drive 1 (1)
* one5 : Should be set to 1
* reserved6 : Reserved
* one7 : Should be set to 1
*/
typedef
union
{
unsigned
all
:
8
;
struct
{
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned
sam_lun
:
3
;
unsigned
reserved3
:
1
;
unsigned
drv
:
1
;
unsigned
one5
:
1
;
unsigned
reserved6
:
1
;
unsigned
one7
:
1
;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned
one7
:
1
;
unsigned
reserved6
:
1
;
unsigned
one5
:
1
;
unsigned
drv
:
1
;
unsigned
reserved3
:
1
;
unsigned
sam_lun
:
3
;
#else
#error "Please fix <asm/byteorder.h>"
#endif
}
b
;
}
atapi_select_t
;
/*
* Status returned from various ide_ functions
*/
...
...
@@ -1101,10 +980,7 @@ typedef struct ide_driver_s {
int
(
*
end_request
)(
ide_drive_t
*
,
int
,
int
);
ide_startstop_t
(
*
error
)(
ide_drive_t
*
,
struct
request
*
rq
,
u8
,
u8
);
ide_startstop_t
(
*
abort
)(
ide_drive_t
*
,
struct
request
*
rq
);
int
(
*
ioctl
)(
ide_drive_t
*
,
struct
inode
*
,
struct
file
*
,
unsigned
int
,
unsigned
long
);
ide_proc_entry_t
*
proc
;
void
(
*
ata_prebuilder
)(
ide_drive_t
*
);
void
(
*
atapi_prebuilder
)(
ide_drive_t
*
);
struct
device_driver
gen_driver
;
}
ide_driver_t
;
...
...
@@ -1298,7 +1174,6 @@ extern int ide_spin_wait_hwgroup(ide_drive_t *);
extern
void
ide_timer_expiry
(
unsigned
long
);
extern
irqreturn_t
ide_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
extern
void
do_ide_request
(
request_queue_t
*
);
extern
void
ide_init_subdrivers
(
void
);
void
ide_init_disk
(
struct
gendisk
*
,
ide_drive_t
*
);
...
...
@@ -1371,6 +1246,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *);
#define GOOD_DMA_DRIVE 1
#ifdef CONFIG_BLK_DEV_IDEDMA
struct
drive_list_entry
{
const
char
*
id_model
;
const
char
*
id_firmware
;
};
int
ide_in_drive_list
(
struct
hd_driveid
*
,
const
struct
drive_list_entry
*
);
int
__ide_dma_bad_drive
(
ide_drive_t
*
);
int
__ide_dma_good_drive
(
ide_drive_t
*
);
int
ide_use_dma
(
ide_drive_t
*
);
...
...
include/linux/pci_ids.h
View file @
7116317d
...
...
@@ -1244,6 +1244,7 @@
#define PCI_DEVICE_ID_VIA_8378_0 0x3205
#define PCI_DEVICE_ID_VIA_8783_0 0x3208
#define PCI_DEVICE_ID_VIA_8237 0x3227
#define PCI_DEVICE_ID_VIA_8251 0x3287
#define PCI_DEVICE_ID_VIA_3296_0 0x0296
#define PCI_DEVICE_ID_VIA_8231 0x8231
#define PCI_DEVICE_ID_VIA_8231_4 0x8235
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment