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
4fd830f9
Commit
4fd830f9
authored
Oct 29, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bart.bkbits.net/ide-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
b5d748ca
a45f698c
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
55 additions
and
134 deletions
+55
-134
Documentation/ide.txt
Documentation/ide.txt
+0
-7
drivers/ide/Kconfig
drivers/ide/Kconfig
+1
-12
drivers/ide/ide-disk.c
drivers/ide/ide-disk.c
+0
-3
drivers/ide/ide-proc.c
drivers/ide/ide-proc.c
+13
-12
drivers/ide/ide-taskfile.c
drivers/ide/ide-taskfile.c
+8
-2
drivers/ide/ide.c
drivers/ide/ide.c
+2
-7
drivers/ide/pci/cs5520.c
drivers/ide/pci/cs5520.c
+1
-1
drivers/ide/pci/cs5530.c
drivers/ide/pci/cs5530.c
+0
-1
drivers/ide/pci/hpt34x.c
drivers/ide/pci/hpt34x.c
+14
-3
drivers/ide/pci/hpt34x.h
drivers/ide/pci/hpt34x.h
+0
-29
drivers/ide/ppc/pmac.c
drivers/ide/ppc/pmac.c
+0
-7
drivers/ide/setup-pci.c
drivers/ide/setup-pci.c
+12
-44
include/linux/ide.h
include/linux/ide.h
+4
-6
No files found.
Documentation/ide.txt
View file @
4fd830f9
...
@@ -248,13 +248,6 @@ Summary of ide driver parameters for kernel command line
...
@@ -248,13 +248,6 @@ Summary of ide driver parameters for kernel command line
allowing ide-floppy, ide-tape, and ide-cdrom|writers
allowing ide-floppy, ide-tape, and ide-cdrom|writers
to use ide-scsi emulation on a device specific option.
to use ide-scsi emulation on a device specific option.
"hdx=stroke" : Should you have a system w/ an AWARD Bios and your
drives are larger than 32GB and it will not boot,
one is required to perform a few OEM operations first.
The option is called "stroke" because it allows one
to "soft clip" the drive to work around a barrier
limit.
"idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz,
"idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz,
where "xx" is between 20 and 66 inclusive,
where "xx" is between 20 and 66 inclusive,
used when tuning chipset PIO modes.
used when tuning chipset PIO modes.
...
...
drivers/ide/Kconfig
View file @
4fd830f9
...
@@ -772,17 +772,6 @@ config BLK_DEV_IDE_PMAC_BLINK
...
@@ -772,17 +772,6 @@ config BLK_DEV_IDE_PMAC_BLINK
This option enables the use of the sleep LED as a hard drive
This option enables the use of the sleep LED as a hard drive
activity LED.
activity LED.
config BLK_DEV_IDEDMA_PMAC_AUTO
bool "Use DMA by default"
depends on BLK_DEV_IDEDMA_PMAC
help
This option allows the driver for the built-in IDE controller on
Power Macintoshes and PowerBooks to use DMA automatically, without
it having to be explicitly enabled. This option is provided because
of concerns about a couple of cases where using DMA on buggy PC
hardware may have caused damage. Saying Y should be safe on all
Apple machines.
config IDE_ARM
config IDE_ARM
def_bool ARM && (ARCH_A5K || ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK)
def_bool ARM && (ARCH_A5K || ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK)
...
@@ -1037,7 +1026,7 @@ config IDEDMA_IVB
...
@@ -1037,7 +1026,7 @@ config IDEDMA_IVB
It is normally safe to answer Y; however, the default is N.
It is normally safe to answer Y; however, the default is N.
config IDEDMA_AUTO
config IDEDMA_AUTO
def_bool IDEDMA_PCI_AUTO ||
BLK_DEV_IDEDMA_PMAC_AUTO ||
IDEDMA_ICS_AUTO
def_bool IDEDMA_PCI_AUTO || IDEDMA_ICS_AUTO
endif
endif
...
...
drivers/ide/ide-disk.c
View file @
4fd830f9
...
@@ -643,9 +643,6 @@ static inline void idedisk_check_hpa(ide_drive_t *drive)
...
@@ -643,9 +643,6 @@ static inline void idedisk_check_hpa(ide_drive_t *drive)
capacity
,
sectors_to_MB
(
capacity
),
capacity
,
sectors_to_MB
(
capacity
),
set_max
,
sectors_to_MB
(
set_max
));
set_max
,
sectors_to_MB
(
set_max
));
if
(
!
drive
->
stroke
)
return
;
if
(
lba48
)
if
(
lba48
)
set_max
=
idedisk_set_max_address_ext
(
drive
,
set_max
);
set_max
=
idedisk_set_max_address_ext
(
drive
,
set_max
);
else
else
...
...
drivers/ide/ide-proc.c
View file @
4fd830f9
...
@@ -418,7 +418,7 @@ static void destroy_proc_ide_device(ide_hwif_t *hwif, ide_drive_t *drive)
...
@@ -418,7 +418,7 @@ static void destroy_proc_ide_device(ide_hwif_t *hwif, ide_drive_t *drive)
}
}
}
}
void
destroy_proc_ide_drives
(
ide_hwif_t
*
hwif
)
static
void
destroy_proc_ide_drives
(
ide_hwif_t
*
hwif
)
{
{
int
d
;
int
d
;
...
@@ -466,29 +466,30 @@ void ide_pci_create_host_proc(const char *name, get_info_t *get_info)
...
@@ -466,29 +466,30 @@ void ide_pci_create_host_proc(const char *name, get_info_t *get_info)
EXPORT_SYMBOL_GPL
(
ide_pci_create_host_proc
);
EXPORT_SYMBOL_GPL
(
ide_pci_create_host_proc
);
#endif
#endif
void
destroy_proc_ide_interfaces
(
void
)
void
destroy_proc_ide_interface
(
ide_hwif_t
*
hwif
)
{
if
(
hwif
->
proc
)
{
destroy_proc_ide_drives
(
hwif
);
ide_remove_proc_entries
(
hwif
->
proc
,
hwif_entries
);
remove_proc_entry
(
hwif
->
name
,
proc_ide_root
);
hwif
->
proc
=
NULL
;
}
}
static
void
destroy_proc_ide_interfaces
(
void
)
{
{
int
h
;
int
h
;
for
(
h
=
0
;
h
<
MAX_HWIFS
;
h
++
)
{
for
(
h
=
0
;
h
<
MAX_HWIFS
;
h
++
)
{
ide_hwif_t
*
hwif
=
&
ide_hwifs
[
h
];
ide_hwif_t
*
hwif
=
&
ide_hwifs
[
h
];
int
exist
=
(
hwif
->
proc
!=
NULL
);
#if 0
#if 0
if (!hwif->present)
if (!hwif->present)
continue;
continue;
#endif
#endif
if
(
exist
)
{
destroy_proc_ide_interface
(
hwif
);
destroy_proc_ide_drives
(
hwif
);
ide_remove_proc_entries
(
hwif
->
proc
,
hwif_entries
);
remove_proc_entry
(
hwif
->
name
,
proc_ide_root
);
hwif
->
proc
=
NULL
;
}
else
continue
;
}
}
}
}
EXPORT_SYMBOL
(
destroy_proc_ide_interfaces
);
extern
struct
seq_operations
ide_drivers_op
;
extern
struct
seq_operations
ide_drivers_op
;
static
int
ide_drivers_open
(
struct
inode
*
inode
,
struct
file
*
file
)
static
int
ide_drivers_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
{
...
...
drivers/ide/ide-taskfile.c
View file @
4fd830f9
...
@@ -274,14 +274,20 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write)
...
@@ -274,14 +274,20 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write)
#ifdef CONFIG_HIGHMEM
#ifdef CONFIG_HIGHMEM
unsigned
long
flags
;
unsigned
long
flags
;
#endif
#endif
unsigned
int
offset
;
u8
*
buf
;
u8
*
buf
;
page
=
sg
[
hwif
->
cursg
].
page
;
page
=
sg
[
hwif
->
cursg
].
page
;
offset
=
sg
[
hwif
->
cursg
].
offset
+
hwif
->
cursg_ofs
*
SECTOR_SIZE
;
/* get the current page and offset */
page
=
nth_page
(
page
,
(
offset
>>
PAGE_SHIFT
));
offset
%=
PAGE_SIZE
;
#ifdef CONFIG_HIGHMEM
#ifdef CONFIG_HIGHMEM
local_irq_save
(
flags
);
local_irq_save
(
flags
);
#endif
#endif
buf
=
kmap_atomic
(
page
,
KM_BIO_SRC_IRQ
)
+
buf
=
kmap_atomic
(
page
,
KM_BIO_SRC_IRQ
)
+
offset
;
sg
[
hwif
->
cursg
].
offset
+
(
hwif
->
cursg_ofs
*
SECTOR_SIZE
);
hwif
->
nleft
--
;
hwif
->
nleft
--
;
hwif
->
cursg_ofs
++
;
hwif
->
cursg_ofs
++
;
...
...
drivers/ide/ide.c
View file @
4fd830f9
...
@@ -796,9 +796,7 @@ void ide_unregister(unsigned int index)
...
@@ -796,9 +796,7 @@ void ide_unregister(unsigned int index)
DRIVER
(
drive
)
->
cleanup
(
drive
);
DRIVER
(
drive
)
->
cleanup
(
drive
);
}
}
#ifdef CONFIG_PROC_FS
destroy_proc_ide_interface
(
hwif
);
destroy_proc_ide_drives
(
hwif
);
#endif
hwgroup
=
hwif
->
hwgroup
;
hwgroup
=
hwif
->
hwgroup
;
/*
/*
...
@@ -1854,7 +1852,7 @@ int __init ide_setup (char *s)
...
@@ -1854,7 +1852,7 @@ int __init ide_setup (char *s)
if
(
s
[
0
]
==
'h'
&&
s
[
1
]
==
'd'
&&
s
[
2
]
>=
'a'
&&
s
[
2
]
<=
max_drive
)
{
if
(
s
[
0
]
==
'h'
&&
s
[
1
]
==
'd'
&&
s
[
2
]
>=
'a'
&&
s
[
2
]
<=
max_drive
)
{
const
char
*
hd_words
[]
=
{
const
char
*
hd_words
[]
=
{
"none"
,
"noprobe"
,
"nowerr"
,
"cdrom"
,
"serialize"
,
"none"
,
"noprobe"
,
"nowerr"
,
"cdrom"
,
"serialize"
,
"autotune"
,
"noautotune"
,
"
stroke
"
,
"swapdata"
,
"bswap"
,
"autotune"
,
"noautotune"
,
"
minus8
"
,
"swapdata"
,
"bswap"
,
"minus11"
,
"remap"
,
"remap63"
,
"scsi"
,
NULL
};
"minus11"
,
"remap"
,
"remap63"
,
"scsi"
,
NULL
};
unit
=
s
[
2
]
-
'a'
;
unit
=
s
[
2
]
-
'a'
;
hw
=
unit
/
MAX_DRIVES
;
hw
=
unit
/
MAX_DRIVES
;
...
@@ -1888,9 +1886,6 @@ int __init ide_setup (char *s)
...
@@ -1888,9 +1886,6 @@ int __init ide_setup (char *s)
case
-
7
:
/* "noautotune" */
case
-
7
:
/* "noautotune" */
drive
->
autotune
=
IDE_TUNE_NOAUTO
;
drive
->
autotune
=
IDE_TUNE_NOAUTO
;
goto
done
;
goto
done
;
case
-
8
:
/* stroke */
drive
->
stroke
=
1
;
goto
done
;
case
-
9
:
/* "swapdata" */
case
-
9
:
/* "swapdata" */
case
-
10
:
/* "bswap" */
case
-
10
:
/* "bswap" */
drive
->
bswap
=
1
;
drive
->
bswap
=
1
;
...
...
drivers/ide/pci/cs5520.c
View file @
4fd830f9
...
@@ -239,7 +239,7 @@ static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_devic
...
@@ -239,7 +239,7 @@ static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_devic
* do all the device setup for us
* do all the device setup for us
*/
*/
ide_pci_setup_ports
(
dev
,
d
,
1
,
1
4
,
&
index
);
ide_pci_setup_ports
(
dev
,
d
,
14
,
&
index
);
printk
(
"Index.b %d %d
\n
"
,
index
.
b
.
low
,
index
.
b
.
high
);
printk
(
"Index.b %d %d
\n
"
,
index
.
b
.
low
,
index
.
b
.
high
);
mdelay
(
2000
);
mdelay
(
2000
);
...
...
drivers/ide/pci/cs5530.c
View file @
4fd830f9
...
@@ -353,7 +353,6 @@ static ide_pci_device_t cs5530_chipset __devinitdata = {
...
@@ -353,7 +353,6 @@ static ide_pci_device_t cs5530_chipset __devinitdata = {
.
channels
=
2
,
.
channels
=
2
,
.
autodma
=
AUTODMA
,
.
autodma
=
AUTODMA
,
.
bootable
=
ON_BOARD
,
.
bootable
=
ON_BOARD
,
.
flags
=
IDEPCI_FLAG_FORCE_MASTER
,
};
};
static
int
__devinit
cs5530_init_one
(
struct
pci_dev
*
dev
,
const
struct
pci_device_id
*
id
)
static
int
__devinit
cs5530_init_one
(
struct
pci_dev
*
dev
,
const
struct
pci_device_id
*
id
)
...
...
drivers/ide/pci/hpt34x.c
View file @
4fd830f9
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
#include <asm/io.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/irq.h>
#
include "hpt34x.h"
#
define HPT343_DEBUG_DRIVE_INFO 0
static
u8
hpt34x_ratemask
(
ide_drive_t
*
drive
)
static
u8
hpt34x_ratemask
(
ide_drive_t
*
drive
)
{
{
...
@@ -69,7 +69,8 @@ static int hpt34x_tune_chipset (ide_drive_t *drive, u8 xferspeed)
...
@@ -69,7 +69,8 @@ static int hpt34x_tune_chipset (ide_drive_t *drive, u8 xferspeed)
u32
reg1
=
0
,
tmp1
=
0
,
reg2
=
0
,
tmp2
=
0
;
u32
reg1
=
0
,
tmp1
=
0
,
reg2
=
0
,
tmp2
=
0
;
u8
hi_speed
,
lo_speed
;
u8
hi_speed
,
lo_speed
;
SPLIT_BYTE
(
speed
,
hi_speed
,
lo_speed
);
hi_speed
=
speed
>>
4
;
lo_speed
=
speed
&
0x0f
;
if
(
hi_speed
&
7
)
{
if
(
hi_speed
&
7
)
{
hi_speed
=
(
hi_speed
&
4
)
?
0x01
:
0x10
;
hi_speed
=
(
hi_speed
&
4
)
?
0x01
:
0x10
;
...
@@ -229,9 +230,19 @@ static void __devinit init_hwif_hpt34x(ide_hwif_t *hwif)
...
@@ -229,9 +230,19 @@ static void __devinit init_hwif_hpt34x(ide_hwif_t *hwif)
hwif
->
drives
[
1
].
autodma
=
hwif
->
autodma
;
hwif
->
drives
[
1
].
autodma
=
hwif
->
autodma
;
}
}
static
ide_pci_device_t
hpt34x_chipset
__devinitdata
=
{
.
name
=
"HPT34X"
,
.
init_chipset
=
init_chipset_hpt34x
,
.
init_hwif
=
init_hwif_hpt34x
,
.
channels
=
2
,
.
autodma
=
NOAUTODMA
,
.
bootable
=
NEVER_BOARD
,
.
extra
=
16
};
static
int
__devinit
hpt34x_init_one
(
struct
pci_dev
*
dev
,
const
struct
pci_device_id
*
id
)
static
int
__devinit
hpt34x_init_one
(
struct
pci_dev
*
dev
,
const
struct
pci_device_id
*
id
)
{
{
ide_pci_device_t
*
d
=
&
hpt34x_chipset
s
[
id
->
driver_data
]
;
ide_pci_device_t
*
d
=
&
hpt34x_chipset
;
static
char
*
chipset_names
[]
=
{
"HPT343"
,
"HPT345"
};
static
char
*
chipset_names
[]
=
{
"HPT343"
,
"HPT345"
};
u16
pcicmd
=
0
;
u16
pcicmd
=
0
;
...
...
drivers/ide/pci/hpt34x.h
deleted
100644 → 0
View file @
b5d748ca
#ifndef HPT34X_H
#define HPT34X_H
#include <linux/config.h>
#include <linux/pci.h>
#include <linux/ide.h>
#define HPT343_DEBUG_DRIVE_INFO 0
#ifndef SPLIT_BYTE
#define SPLIT_BYTE(B,H,L) ((H)=(B>>4), (L)=(B-((B>>4)<<4)))
#endif
static
unsigned
int
init_chipset_hpt34x
(
struct
pci_dev
*
,
const
char
*
);
static
void
init_hwif_hpt34x
(
ide_hwif_t
*
);
static
ide_pci_device_t
hpt34x_chipsets
[]
__devinitdata
=
{
{
/* 0 */
.
name
=
"HPT34X"
,
.
init_chipset
=
init_chipset_hpt34x
,
.
init_hwif
=
init_hwif_hpt34x
,
.
channels
=
2
,
.
autodma
=
NOAUTODMA
,
.
bootable
=
NEVER_BOARD
,
.
extra
=
16
}
};
#endif
/* HPT34X_H */
drivers/ide/ppc/pmac.c
View file @
4fd830f9
...
@@ -2028,13 +2028,6 @@ pmac_ide_setup_dma(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
...
@@ -2028,13 +2028,6 @@ pmac_ide_setup_dma(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
hwif
->
ide_dma_timeout
=
&
__ide_dma_timeout
;
hwif
->
ide_dma_timeout
=
&
__ide_dma_timeout
;
hwif
->
ide_dma_lostirq
=
&
pmac_ide_dma_lostirq
;
hwif
->
ide_dma_lostirq
=
&
pmac_ide_dma_lostirq
;
#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC_AUTO
if
(
!
noautodma
)
hwif
->
autodma
=
1
;
#endif
hwif
->
drives
[
0
].
autodma
=
hwif
->
autodma
;
hwif
->
drives
[
1
].
autodma
=
hwif
->
autodma
;
hwif
->
atapi_dma
=
1
;
hwif
->
atapi_dma
=
1
;
switch
(
pmif
->
kind
)
{
switch
(
pmif
->
kind
)
{
case
controller_un_ata6
:
case
controller_un_ata6
:
...
...
drivers/ide/setup-pci.c
View file @
4fd830f9
...
@@ -185,19 +185,16 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
...
@@ -185,19 +185,16 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
second_chance_to_dma:
second_chance_to_dma:
#endif
/* CONFIG_BLK_DEV_IDEDMA_FORCED */
#endif
/* CONFIG_BLK_DEV_IDEDMA_FORCED */
if
(
(
hwif
->
mmio
)
&&
(
hwif
->
dma_base
)
)
if
(
hwif
->
mmio
)
return
hwif
->
dma_base
;
return
hwif
->
dma_base
;
if
(
hwif
->
mate
&&
hwif
->
mate
->
dma_base
)
{
if
(
hwif
->
mate
&&
hwif
->
mate
->
dma_base
)
{
dma_base
=
hwif
->
mate
->
dma_base
-
(
hwif
->
channel
?
0
:
8
);
dma_base
=
hwif
->
mate
->
dma_base
-
(
hwif
->
channel
?
0
:
8
);
}
else
{
}
else
{
dma_base
=
(
hwif
->
mmio
)
?
dma_base
=
pci_resource_start
(
dev
,
4
);
((
unsigned
long
)
hwif
->
hwif_data
)
:
(
pci_resource_start
(
dev
,
4
));
if
(
!
dma_base
)
{
if
(
!
dma_base
)
{
printk
(
KERN_ERR
"%s: dma_base is invalid (0x%04lx)
\n
"
,
printk
(
KERN_ERR
"%s: dma_base is invalid
\n
"
,
hwif
->
cds
->
name
,
dma_base
);
hwif
->
cds
->
name
);
dma_base
=
0
;
}
}
}
}
...
@@ -251,7 +248,6 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
...
@@ -251,7 +248,6 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
simplex_stat
=
hwif
->
INB
(
dma_base
+
2
);
simplex_stat
=
hwif
->
INB
(
dma_base
+
2
);
if
(
simplex_stat
&
0x80
)
{
if
(
simplex_stat
&
0x80
)
{
/* simplex device? */
/* simplex device? */
#if 0
/*
/*
* At this point we haven't probed the drives so we can't make the
* At this point we haven't probed the drives so we can't make the
* appropriate decision. Really we should defer this problem
* appropriate decision. Really we should defer this problem
...
@@ -259,18 +255,7 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
...
@@ -259,18 +255,7 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
* to be the DMA end. This has to be become dynamic to handle hot
* to be the DMA end. This has to be become dynamic to handle hot
* plug.
* plug.
*/
*/
/* Don't enable DMA on a simplex channel with no drives */
if
(
hwif
->
mate
&&
hwif
->
mate
->
dma_base
)
{
if (!hwif->drives[0].present && !hwif->drives[1].present)
{
printk(KERN_INFO "%s: simplex device with no drives: DMA disabled\n",
hwif->cds->name);
dma_base = 0;
}
/* If our other channel has DMA then we cannot */
else
#endif
if
(
hwif
->
mate
&&
hwif
->
mate
->
dma_base
)
{
printk
(
KERN_INFO
"%s: simplex device: "
printk
(
KERN_INFO
"%s: simplex device: "
"DMA disabled
\n
"
,
"DMA disabled
\n
"
,
hwif
->
cds
->
name
);
hwif
->
cds
->
name
);
...
@@ -488,13 +473,8 @@ static void ide_hwif_setup_dma(struct pci_dev *dev, ide_pci_device_t *d, ide_hwi
...
@@ -488,13 +473,8 @@ static void ide_hwif_setup_dma(struct pci_dev *dev, ide_pci_device_t *d, ide_hwi
* Set up BM-DMA capability
* Set up BM-DMA capability
* (PnP BIOS should have done this)
* (PnP BIOS should have done this)
*/
*/
if
((
d
->
flags
&
IDEPCI_FLAG_FORCE_MASTER
)
==
0
)
{
/* default DMA off if we had to configure it here */
/*
hwif
->
autodma
=
0
;
* default DMA off if we had to
* configure it here
*/
hwif
->
autodma
=
0
;
}
pci_set_master
(
dev
);
pci_set_master
(
dev
);
if
(
pci_read_config_word
(
dev
,
PCI_COMMAND
,
&
pcicmd
)
||
!
(
pcicmd
&
PCI_COMMAND_MASTER
))
{
if
(
pci_read_config_word
(
dev
,
PCI_COMMAND
,
&
pcicmd
)
||
!
(
pcicmd
&
PCI_COMMAND_MASTER
))
{
printk
(
KERN_ERR
"%s: %s error updating PCICMD
\n
"
,
printk
(
KERN_ERR
"%s: %s error updating PCICMD
\n
"
,
...
@@ -530,13 +510,9 @@ static void ide_hwif_setup_dma(struct pci_dev *dev, ide_pci_device_t *d, ide_hwi
...
@@ -530,13 +510,9 @@ static void ide_hwif_setup_dma(struct pci_dev *dev, ide_pci_device_t *d, ide_hwi
static
int
ide_setup_pci_controller
(
struct
pci_dev
*
dev
,
ide_pci_device_t
*
d
,
int
noisy
,
int
*
config
)
static
int
ide_setup_pci_controller
(
struct
pci_dev
*
dev
,
ide_pci_device_t
*
d
,
int
noisy
,
int
*
config
)
{
{
int
ret
=
0
;
u32
class_rev
;
u32
class_rev
;
u16
pcicmd
;
u16
pcicmd
;
if
(
!
noautodma
)
ret
=
1
;
if
(
noisy
)
if
(
noisy
)
ide_setup_pci_noise
(
dev
,
d
);
ide_setup_pci_noise
(
dev
,
d
);
...
@@ -550,8 +526,6 @@ static int ide_setup_pci_controller(struct pci_dev *dev, ide_pci_device_t *d, in
...
@@ -550,8 +526,6 @@ static int ide_setup_pci_controller(struct pci_dev *dev, ide_pci_device_t *d, in
if
(
!
(
pcicmd
&
PCI_COMMAND_IO
))
{
/* is device disabled? */
if
(
!
(
pcicmd
&
PCI_COMMAND_IO
))
{
/* is device disabled? */
if
(
ide_pci_configure
(
dev
,
d
))
if
(
ide_pci_configure
(
dev
,
d
))
return
-
ENODEV
;
return
-
ENODEV
;
/* default DMA off if we had to configure it here */
ret
=
0
;
*
config
=
1
;
*
config
=
1
;
printk
(
KERN_INFO
"%s: device enabled (Linux)
\n
"
,
d
->
name
);
printk
(
KERN_INFO
"%s: device enabled (Linux)
\n
"
,
d
->
name
);
}
}
...
@@ -560,14 +534,13 @@ static int ide_setup_pci_controller(struct pci_dev *dev, ide_pci_device_t *d, in
...
@@ -560,14 +534,13 @@ static int ide_setup_pci_controller(struct pci_dev *dev, ide_pci_device_t *d, in
class_rev
&=
0xff
;
class_rev
&=
0xff
;
if
(
noisy
)
if
(
noisy
)
printk
(
KERN_INFO
"%s: chipset revision %d
\n
"
,
d
->
name
,
class_rev
);
printk
(
KERN_INFO
"%s: chipset revision %d
\n
"
,
d
->
name
,
class_rev
);
return
ret
;
return
0
;
}
}
/**
/**
* ide_pci_setup_ports - configure ports/devices on PCI IDE
* ide_pci_setup_ports - configure ports/devices on PCI IDE
* @dev: PCI device
* @dev: PCI device
* @d: IDE pci device info
* @d: IDE pci device info
* @autodma: Should we enable DMA
* @pciirq: IRQ line
* @pciirq: IRQ line
* @index: ata index to update
* @index: ata index to update
*
*
...
@@ -580,7 +553,7 @@ static int ide_setup_pci_controller(struct pci_dev *dev, ide_pci_device_t *d, in
...
@@ -580,7 +553,7 @@ static int ide_setup_pci_controller(struct pci_dev *dev, ide_pci_device_t *d, in
* where the chipset setup is not the default PCI IDE one.
* where the chipset setup is not the default PCI IDE one.
*/
*/
void
ide_pci_setup_ports
(
struct
pci_dev
*
dev
,
ide_pci_device_t
*
d
,
int
autodma
,
int
pciirq
,
ata_index_t
*
index
)
void
ide_pci_setup_ports
(
struct
pci_dev
*
dev
,
ide_pci_device_t
*
d
,
int
pciirq
,
ata_index_t
*
index
)
{
{
int
port
;
int
port
;
int
at_least_one_hwif_enabled
=
0
;
int
at_least_one_hwif_enabled
=
0
;
...
@@ -634,11 +607,7 @@ void ide_pci_setup_ports(struct pci_dev *dev, ide_pci_device_t *d, int autodma,
...
@@ -634,11 +607,7 @@ void ide_pci_setup_ports(struct pci_dev *dev, ide_pci_device_t *d, int autodma,
if
(
d
->
autodma
==
NODMA
)
if
(
d
->
autodma
==
NODMA
)
goto
bypass_legacy_dma
;
goto
bypass_legacy_dma
;
if
(
d
->
autodma
==
NOAUTODMA
)
autodma
=
0
;
if
(
autodma
)
hwif
->
autodma
=
1
;
if
(
d
->
init_setup_dma
)
if
(
d
->
init_setup_dma
)
d
->
init_setup_dma
(
dev
,
d
,
hwif
);
d
->
init_setup_dma
(
dev
,
d
,
hwif
);
else
else
...
@@ -671,12 +640,11 @@ EXPORT_SYMBOL_GPL(ide_pci_setup_ports);
...
@@ -671,12 +640,11 @@ EXPORT_SYMBOL_GPL(ide_pci_setup_ports);
*/
*/
static
ata_index_t
do_ide_setup_pci_device
(
struct
pci_dev
*
dev
,
ide_pci_device_t
*
d
,
u8
noisy
)
static
ata_index_t
do_ide_setup_pci_device
(
struct
pci_dev
*
dev
,
ide_pci_device_t
*
d
,
u8
noisy
)
{
{
int
autodma
=
0
;
int
pciirq
=
0
;
int
pciirq
=
0
;
int
tried_config
=
0
;
int
tried_config
=
0
;
ata_index_t
index
=
{
.
b
=
{
.
low
=
0xff
,
.
high
=
0xff
}
};
ata_index_t
index
=
{
.
b
=
{
.
low
=
0xff
,
.
high
=
0xff
}
};
if
((
autodma
=
ide_setup_pci_controller
(
dev
,
d
,
noisy
,
&
tried_config
)
)
<
0
)
if
(
ide_setup_pci_controller
(
dev
,
d
,
noisy
,
&
tried_config
)
<
0
)
return
index
;
return
index
;
/*
/*
...
@@ -724,7 +692,7 @@ static ata_index_t do_ide_setup_pci_device (struct pci_dev *dev, ide_pci_device_
...
@@ -724,7 +692,7 @@ static ata_index_t do_ide_setup_pci_device (struct pci_dev *dev, ide_pci_device_
if
(
pciirq
<
0
)
/* Error not an IRQ */
if
(
pciirq
<
0
)
/* Error not an IRQ */
return
index
;
return
index
;
ide_pci_setup_ports
(
dev
,
d
,
autodma
,
pciirq
,
&
index
);
ide_pci_setup_ports
(
dev
,
d
,
pciirq
,
&
index
);
return
index
;
return
index
;
}
}
...
...
include/linux/ide.h
View file @
4fd830f9
...
@@ -739,7 +739,6 @@ typedef struct ide_drive_s {
...
@@ -739,7 +739,6 @@ typedef struct ide_drive_s {
unsigned
remap_0_to_1
:
1
;
/* 0=noremap, 1=remap 0->1 (for EZDrive) */
unsigned
remap_0_to_1
:
1
;
/* 0=noremap, 1=remap 0->1 (for EZDrive) */
unsigned
blocked
:
1
;
/* 1=powermanagment told us not to do anything, so sleep nicely */
unsigned
blocked
:
1
;
/* 1=powermanagment told us not to do anything, so sleep nicely */
unsigned
vdma
:
1
;
/* 1=doing PIO over DMA 0=doing normal DMA */
unsigned
vdma
:
1
;
/* 1=doing PIO over DMA 0=doing normal DMA */
unsigned
stroke
:
1
;
/* from: hdx=stroke */
unsigned
addressing
;
/* : 3;
unsigned
addressing
;
/* : 3;
* 0=28-bit
* 0=28-bit
* 1=48-bit
* 1=48-bit
...
@@ -1045,8 +1044,8 @@ extern struct proc_dir_entry *proc_ide_root;
...
@@ -1045,8 +1044,8 @@ extern struct proc_dir_entry *proc_ide_root;
extern
void
proc_ide_create
(
void
);
extern
void
proc_ide_create
(
void
);
extern
void
proc_ide_destroy
(
void
);
extern
void
proc_ide_destroy
(
void
);
extern
void
destroy_proc_ide_drives
(
ide_hwif_t
*
);
extern
void
create_proc_ide_interfaces
(
void
);
extern
void
create_proc_ide_interfaces
(
void
);
void
destroy_proc_ide_interface
(
ide_hwif_t
*
);
extern
void
ide_add_proc_entries
(
struct
proc_dir_entry
*
,
ide_proc_entry_t
*
,
void
*
);
extern
void
ide_add_proc_entries
(
struct
proc_dir_entry
*
,
ide_proc_entry_t
*
,
void
*
);
extern
void
ide_remove_proc_entries
(
struct
proc_dir_entry
*
,
ide_proc_entry_t
*
);
extern
void
ide_remove_proc_entries
(
struct
proc_dir_entry
*
,
ide_proc_entry_t
*
);
read_proc_t
proc_ide_read_capacity
;
read_proc_t
proc_ide_read_capacity
;
...
@@ -1073,6 +1072,7 @@ void ide_pci_create_host_proc(const char *, get_info_t *);
...
@@ -1073,6 +1072,7 @@ void ide_pci_create_host_proc(const char *, get_info_t *);
}
}
#else
#else
static
inline
void
create_proc_ide_interfaces
(
void
)
{
;
}
static
inline
void
create_proc_ide_interfaces
(
void
)
{
;
}
static
inline
void
destroy_proc_ide_interface
(
ide_hwif_t
*
hwif
)
{
;
}
#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;
#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;
#endif
#endif
...
@@ -1417,7 +1417,7 @@ extern int ideprobe_init(void);
...
@@ -1417,7 +1417,7 @@ extern int ideprobe_init(void);
extern
void
ide_scan_pcibus
(
int
scan_direction
)
__init
;
extern
void
ide_scan_pcibus
(
int
scan_direction
)
__init
;
extern
int
ide_pci_register_driver
(
struct
pci_driver
*
driver
);
extern
int
ide_pci_register_driver
(
struct
pci_driver
*
driver
);
extern
void
ide_pci_unregister_driver
(
struct
pci_driver
*
driver
);
extern
void
ide_pci_unregister_driver
(
struct
pci_driver
*
driver
);
extern
void
ide_pci_setup_ports
(
struct
pci_dev
*
dev
,
struct
ide_pci_device_s
*
d
,
int
autodma
,
int
pciirq
,
ata_index_t
*
index
);
void
ide_pci_setup_ports
(
struct
pci_dev
*
,
struct
ide_pci_device_s
*
,
int
,
ata_index_t
*
);
extern
void
ide_setup_pci_noise
(
struct
pci_dev
*
dev
,
struct
ide_pci_device_s
*
d
);
extern
void
ide_setup_pci_noise
(
struct
pci_dev
*
dev
,
struct
ide_pci_device_s
*
d
);
extern
void
default_hwif_iops
(
ide_hwif_t
*
);
extern
void
default_hwif_iops
(
ide_hwif_t
*
);
...
@@ -1452,9 +1452,7 @@ typedef struct ide_pci_enablebit_s {
...
@@ -1452,9 +1452,7 @@ typedef struct ide_pci_enablebit_s {
enum
{
enum
{
/* Uses ISA control ports not PCI ones. */
/* Uses ISA control ports not PCI ones. */
IDEPCI_FLAG_ISA_PORTS
=
(
1
<<
0
),
IDEPCI_FLAG_ISA_PORTS
=
(
1
<<
0
),
IDEPCI_FLAG_FORCE_PDC
=
(
1
<<
1
),
IDEPCI_FLAG_FORCE_MASTER
=
(
1
<<
1
),
IDEPCI_FLAG_FORCE_PDC
=
(
1
<<
2
),
};
};
typedef
struct
ide_pci_device_s
{
typedef
struct
ide_pci_device_s
{
...
...
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