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
d05fe5ad
Commit
d05fe5ad
authored
Nov 24, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux-scsi.bkbits.net/scsi-bugfixes-2.6
into home.osdl.org:/home/torvalds/v2.5/linux
parents
383d0b65
a3d93eb3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
156 deletions
+20
-156
Makefile
Makefile
+1
-1
arch/i386/pci/irq.c
arch/i386/pci/irq.c
+17
-154
drivers/net/sis190.c
drivers/net/sis190.c
+2
-1
No files found.
Makefile
View file @
d05fe5ad
VERSION
=
2
PATCHLEVEL
=
6
SUBLEVEL
=
0
EXTRAVERSION
=
-test
9
EXTRAVERSION
=
-test
10
# *DOCUMENTATION*
# To see a list of typical targets execute "make help"
...
...
arch/i386/pci/irq.c
View file @
d05fe5ad
...
...
@@ -327,152 +327,30 @@ static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq,
#define PIRQ_SIS_IRQ_DISABLE 0x80
#define PIRQ_SIS_USB_ENABLE 0x40
/* return value:
* -1 on error
* 0 for PCI INTA-INTD
* 0 or enable bit mask to check or set for onchip functions
*/
static
inline
int
pirq_sis5595_onchip
(
int
pirq
,
int
*
reg
)
{
int
ret
=
-
1
;
*
reg
=
pirq
;
switch
(
pirq
)
{
case
0x01
:
case
0x02
:
case
0x03
:
case
0x04
:
*
reg
+=
0x40
;
case
0x41
:
case
0x42
:
case
0x43
:
case
0x44
:
ret
=
0
;
break
;
case
0x62
:
ret
=
PIRQ_SIS_USB_ENABLE
;
/* documented for 5595 */
break
;
case
0x61
:
case
0x6a
:
case
0x7e
:
printk
(
KERN_INFO
"SiS pirq: IDE/ACPI/DAQ mapping not implemented: (%u)
\n
"
,
(
unsigned
)
pirq
);
/* fall thru */
default:
printk
(
KERN_INFO
"SiS router unknown request: (%u)
\n
"
,
(
unsigned
)
pirq
);
break
;
}
return
ret
;
}
/* return value:
* -1 on error
* 0 for PCI INTA-INTD
* 0 or enable bit mask to check or set for onchip functions
*/
static
inline
int
pirq_sis96x_onchip
(
int
pirq
,
int
*
reg
)
{
int
ret
=
-
1
;
*
reg
=
pirq
;
switch
(
pirq
)
{
case
0x01
:
case
0x02
:
case
0x03
:
case
0x04
:
*
reg
+=
0x40
;
case
0x41
:
case
0x42
:
case
0x43
:
case
0x44
:
case
0x60
:
case
0x61
:
case
0x62
:
case
0x63
:
ret
=
0
;
break
;
default:
printk
(
KERN_INFO
"SiS router unknown request: (%u)
\n
"
,
(
unsigned
)
pirq
);
break
;
}
return
ret
;
}
static
int
pirq_sis5595_get
(
struct
pci_dev
*
router
,
struct
pci_dev
*
dev
,
int
pirq
)
static
int
pirq_sis_get
(
struct
pci_dev
*
router
,
struct
pci_dev
*
dev
,
int
pirq
)
{
u8
x
;
int
reg
,
check
;
check
=
pirq_sis5595_onchip
(
pirq
,
&
reg
);
if
(
check
<
0
)
return
0
;
int
reg
;
reg
=
pirq
;
if
(
reg
>=
0x01
&&
reg
<=
0x04
)
reg
+=
0x40
;
pci_read_config_byte
(
router
,
reg
,
&
x
);
if
(
check
!=
0
&&
!
(
x
&
check
))
return
0
;
return
(
x
&
PIRQ_SIS_IRQ_DISABLE
)
?
0
:
(
x
&
PIRQ_SIS_IRQ_MASK
);
}
static
int
pirq_sis
96x_get
(
struct
pci_dev
*
router
,
struct
pci_dev
*
dev
,
int
p
irq
)
static
int
pirq_sis
_set
(
struct
pci_dev
*
router
,
struct
pci_dev
*
dev
,
int
pirq
,
int
irq
)
{
u8
x
;
int
reg
,
check
;
check
=
pirq_sis96x_onchip
(
pirq
,
&
reg
);
if
(
check
<
0
)
return
0
;
int
reg
;
reg
=
pirq
;
if
(
reg
>=
0x01
&&
reg
<=
0x04
)
reg
+=
0x40
;
pci_read_config_byte
(
router
,
reg
,
&
x
);
if
(
check
!=
0
&&
!
(
x
&
check
))
return
0
;
return
(
x
&
PIRQ_SIS_IRQ_DISABLE
)
?
0
:
(
x
&
PIRQ_SIS_IRQ_MASK
);
}
static
int
pirq_sis5595_set
(
struct
pci_dev
*
router
,
struct
pci_dev
*
dev
,
int
pirq
,
int
irq
)
{
u8
x
;
int
reg
,
set
;
set
=
pirq_sis5595_onchip
(
pirq
,
&
reg
);
if
(
set
<
0
)
return
0
;
x
=
(
irq
&
PIRQ_SIS_IRQ_MASK
);
if
(
x
==
0
)
x
=
PIRQ_SIS_IRQ_DISABLE
;
else
x
|=
set
;
pci_write_config_byte
(
router
,
reg
,
x
);
return
1
;
}
static
int
pirq_sis96x_set
(
struct
pci_dev
*
router
,
struct
pci_dev
*
dev
,
int
pirq
,
int
irq
)
{
u8
x
;
int
reg
,
set
;
set
=
pirq_sis96x_onchip
(
pirq
,
&
reg
);
if
(
set
<
0
)
return
0
;
x
=
(
irq
&
PIRQ_SIS_IRQ_MASK
);
if
(
x
==
0
)
x
=
PIRQ_SIS_IRQ_DISABLE
;
else
x
|=
set
;
x
&=
~
(
PIRQ_SIS_IRQ_MASK
|
PIRQ_SIS_IRQ_DISABLE
);
x
|=
irq
?
irq
:
PIRQ_SIS_IRQ_DISABLE
;
pci_write_config_byte
(
router
,
reg
,
x
);
return
1
;
}
...
...
@@ -657,26 +535,11 @@ static __init int sis_router_probe(struct irq_router *r, struct pci_dev *router,
if
(
device
!=
PCI_DEVICE_ID_SI_503
)
return
0
;
/*
* In case of SiS south bridge, we need to detect the two
* kinds of routing tables we have seen so far (5595 and 96x).
*
* The 96x tends to still come with routing tables that claim
* to be 503's.. Silly thing. Check the actual router chip.
*/
if
((
router
->
device
&
0xfff0
)
==
0x0960
)
{
r
->
name
=
"SIS96x"
;
r
->
get
=
pirq_sis96x_get
;
r
->
set
=
pirq_sis96x_set
;
DBG
(
"PCI: Detecting SiS router at %02x:%02x : SiS096x detected
\n
"
,
rt
->
rtr_bus
,
rt
->
rtr_devfn
);
}
else
{
r
->
name
=
"SIS5595"
;
r
->
get
=
pirq_sis5595_get
;
r
->
set
=
pirq_sis5595_set
;
DBG
(
"PCI: Detecting SiS router at %02x:%02x : SiS5595 detected
\n
"
,
rt
->
rtr_bus
,
rt
->
rtr_devfn
);
}
r
->
name
=
"SIS"
;
r
->
get
=
pirq_sis_get
;
r
->
set
=
pirq_sis_set
;
DBG
(
"PCI: Detecting SiS router at %02x:%02x
\n
"
,
rt
->
rtr_bus
,
rt
->
rtr_devfn
);
return
1
;
}
...
...
drivers/net/sis190.c
View file @
d05fe5ad
...
...
@@ -949,7 +949,8 @@ SiS190_start_xmit(struct sk_buff *skb, struct net_device *dev)
drop_tx:
tp
->
stats
.
tx_dropped
++
;
dev_kfree_skb
(
skb
);
if
(
skb
)
dev_kfree_skb
(
skb
);
return
0
;
}
...
...
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