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
nexedi
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