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
dd797d81
Commit
dd797d81
authored
Aug 02, 2008
by
Dominik Brodowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcmcia: use dev_printk and dev_dbg in yenta_socket
Signed-off-by:
Dominik Brodowski
<
linux@dominikbrodowski.net
>
parent
6e86841d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
97 additions
and
77 deletions
+97
-77
drivers/pcmcia/o2micro.h
drivers/pcmcia/o2micro.h
+7
-3
drivers/pcmcia/ti113x.h
drivers/pcmcia/ti113x.h
+43
-35
drivers/pcmcia/yenta_socket.c
drivers/pcmcia/yenta_socket.c
+47
-39
No files found.
drivers/pcmcia/o2micro.h
View file @
dd797d81
...
...
@@ -140,7 +140,8 @@ static int o2micro_override(struct yenta_socket *socket)
a
=
config_readb
(
socket
,
O2_RESERVED1
);
b
=
config_readb
(
socket
,
O2_RESERVED2
);
printk
(
KERN_INFO
"Yenta O2: res at 0x94/0xD4: %02x/%02x
\n
"
,
a
,
b
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"O2: res at 0x94/0xD4: %02x/%02x
\n
"
,
a
,
b
);
switch
(
socket
->
dev
->
device
)
{
/*
...
...
@@ -153,7 +154,9 @@ static int o2micro_override(struct yenta_socket *socket)
case
PCI_DEVICE_ID_O2_6812
:
case
PCI_DEVICE_ID_O2_6832
:
case
PCI_DEVICE_ID_O2_6836
:
printk
(
KERN_INFO
"Yenta O2: old bridge, disabling read prefetch/write burst
\n
"
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Yenta O2: old bridge, disabling read "
"prefetch/write burst
\n
"
);
config_writeb
(
socket
,
O2_RESERVED1
,
a
&
~
(
O2_RES_READ_PREFETCH
|
O2_RES_WRITE_BURST
));
config_writeb
(
socket
,
O2_RESERVED2
,
...
...
@@ -161,7 +164,8 @@ static int o2micro_override(struct yenta_socket *socket)
break
;
default:
printk
(
KERN_INFO
"Yenta O2: enabling read prefetch/write burst
\n
"
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"O2: enabling read prefetch/write burst
\n
"
);
config_writeb
(
socket
,
O2_RESERVED1
,
a
|
O2_RES_READ_PREFETCH
|
O2_RES_WRITE_BURST
);
config_writeb
(
socket
,
O2_RESERVED2
,
...
...
drivers/pcmcia/ti113x.h
View file @
dd797d81
...
...
@@ -339,8 +339,8 @@ static void ti12xx_irqroute_func0(struct yenta_socket *socket)
mfunc
=
mfunc_old
=
config_readl
(
socket
,
TI122X_MFUNC
);
devctl
=
config_readb
(
socket
,
TI113X_DEVICE_CONTROL
);
printk
(
KERN_INFO
"Yenta TI: socket %s, mfunc 0x%08x, devctl 0x%02x
\n
"
,
pci_name
(
socket
->
dev
)
,
mfunc
,
devctl
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: mfunc 0x%08x, devctl 0x%02x
\n
"
,
mfunc
,
devctl
);
/* make sure PCI interrupts are enabled before probing */
ti_init
(
socket
);
...
...
@@ -354,8 +354,8 @@ static void ti12xx_irqroute_func0(struct yenta_socket *socket)
* We're here which means PCI interrupts are _not_ delivered. try to
* find the right setting (all serial or parallel)
*/
printk
(
KERN_INFO
"Yenta TI: socket %s probing PCI interrupt failed, trying to fix
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: probing PCI interrupt failed, trying to fix
\n
"
);
/* for serial PCI make sure MFUNC3 is set to IRQSER */
if
((
devctl
&
TI113X_DCR_IMODE_MASK
)
==
TI12XX_DCR_IMODE_ALL_SERIAL
)
{
...
...
@@ -379,8 +379,8 @@ static void ti12xx_irqroute_func0(struct yenta_socket *socket)
pci_irq_status
=
yenta_probe_cb_irq
(
socket
);
if
(
pci_irq_status
==
1
)
{
printk
(
KERN_INFO
"Yenta TI: socket %s all-serial interrupts ok
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: all-serial interrupts ok
\n
"
);
mfunc_old
=
mfunc
;
goto
out
;
}
...
...
@@ -395,8 +395,8 @@ static void ti12xx_irqroute_func0(struct yenta_socket *socket)
}
/* serial PCI interrupts not working fall back to parallel */
printk
(
KERN_INFO
"Yenta TI: socket %s falling back to parallel PCI interrupts
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: falling back to parallel PCI interrupts
\n
"
);
devctl
&=
~
TI113X_DCR_IMODE_MASK
;
devctl
|=
TI113X_DCR_IMODE_SERIAL
;
/* serial ISA could be right */
config_writeb
(
socket
,
TI113X_DEVICE_CONTROL
,
devctl
);
...
...
@@ -427,8 +427,8 @@ static void ti12xx_irqroute_func0(struct yenta_socket *socket)
pci_irq_status
=
yenta_probe_cb_irq
(
socket
);
if
(
pci_irq_status
==
1
)
{
mfunc_old
=
mfunc
;
printk
(
KERN_INFO
"Yenta TI: socket %s parallel PCI interrupts ok
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: parallel PCI interrupts ok
\n
"
);
}
else
{
/* not working, back to old value */
mfunc
=
mfunc_old
;
...
...
@@ -440,8 +440,9 @@ static void ti12xx_irqroute_func0(struct yenta_socket *socket)
out:
if
(
pci_irq_status
<
1
)
{
socket
->
cb_irq
=
0
;
printk
(
KERN_INFO
"Yenta TI: socket %s no PCI interrupts. Fish. Please report.
\n
"
,
pci_name
(
socket
->
dev
));
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Yenta TI: no PCI interrupts. Fish. "
"Please report.
\n
"
);
}
}
...
...
@@ -513,8 +514,9 @@ static void ti12xx_irqroute_func1(struct yenta_socket *socket)
mfunc
=
mfunc_old
=
config_readl
(
socket
,
TI122X_MFUNC
);
devctl
=
config_readb
(
socket
,
TI113X_DEVICE_CONTROL
);
printk
(
KERN_INFO
"Yenta TI: socket %s, mfunc 0x%08x, devctl 0x%02x
\n
"
,
pci_name
(
socket
->
dev
),
mfunc
,
devctl
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: mfunc 0x%08x, devctl 0x%02x
\n
"
,
mfunc
,
devctl
);
/* if IRQs are configured as tied, align irq of func1 with func0 */
sysctl
=
config_readl
(
socket
,
TI113X_SYSTEM_CONTROL
);
...
...
@@ -533,9 +535,8 @@ static void ti12xx_irqroute_func1(struct yenta_socket *socket)
* We're here which means PCI interrupts are _not_ delivered. try to
* find the right setting
*/
printk
(
KERN_INFO
"Yenta TI: socket %s probing PCI interrupt failed, trying to fix
\n
"
,
pci_name
(
socket
->
dev
));
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: probing PCI interrupt failed, trying to fix
\n
"
);
/* if all serial: set INTRTIE, probe again */
if
((
devctl
&
TI113X_DCR_IMODE_MASK
)
==
TI12XX_DCR_IMODE_ALL_SERIAL
)
{
...
...
@@ -544,8 +545,8 @@ static void ti12xx_irqroute_func1(struct yenta_socket *socket)
if
(
ti12xx_tie_interrupts
(
socket
,
&
old_irq
))
{
pci_irq_status
=
yenta_probe_cb_irq
(
socket
);
if
(
pci_irq_status
==
1
)
{
printk
(
KERN_INFO
"Yenta TI: socket %s all-serial interrupts, tied ok
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: all-serial interrupts, tied ok
\n
"
);
goto
out
;
}
...
...
@@ -582,8 +583,8 @@ static void ti12xx_irqroute_func1(struct yenta_socket *socket)
pci_irq_status
=
yenta_probe_cb_irq
(
socket
);
if
(
pci_irq_status
==
1
)
{
printk
(
KERN_INFO
"Yenta TI: socket %s parallel PCI interrupts ok
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: parallel PCI interrupts ok
\n
"
);
goto
out
;
}
...
...
@@ -593,13 +594,13 @@ static void ti12xx_irqroute_func1(struct yenta_socket *socket)
if
(
pci_irq_status
==
-
1
)
goto
out
;
}
/* still nothing: set INTRTIE */
if
(
ti12xx_tie_interrupts
(
socket
,
&
old_irq
))
{
pci_irq_status
=
yenta_probe_cb_irq
(
socket
);
if
(
pci_irq_status
==
1
)
{
printk
(
KERN_INFO
"Yenta TI: socket %s parallel PCI interrupts, tied ok
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: parallel PCI interrupts, tied ok
\n
"
);
goto
out
;
}
...
...
@@ -610,8 +611,8 @@ static void ti12xx_irqroute_func1(struct yenta_socket *socket)
out:
if
(
pci_irq_status
<
1
)
{
socket
->
cb_irq
=
0
;
printk
(
KERN_INFO
"Yenta TI: socket %s no PCI interrupts. Fish. Please report.
\n
"
,
pci_name
(
socket
->
dev
)
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"TI: no PCI interrupts. Fish. Please report.
\n
"
);
}
}
...
...
@@ -815,11 +816,13 @@ static int ti12xx_override(struct yenta_socket *socket)
/* make sure that memory burst is active */
val_orig
=
val
=
config_readl
(
socket
,
TI113X_SYSTEM_CONTROL
);
if
(
disable_clkrun
&&
PCI_FUNC
(
socket
->
dev
->
devfn
)
==
0
)
{
printk
(
KERN_INFO
"Yenta: Disabling CLKRUN feature
\n
"
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Disabling CLKRUN feature
\n
"
);
val
|=
TI113X_SCR_KEEPCLK
;
}
if
(
!
(
val
&
TI122X_SCR_MRBURSTUP
))
{
printk
(
KERN_INFO
"Yenta: Enabling burst memory read transactions
\n
"
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Enabling burst memory read transactions
\n
"
);
val
|=
TI122X_SCR_MRBURSTUP
;
}
if
(
val_orig
!=
val
)
...
...
@@ -830,10 +833,12 @@ static int ti12xx_override(struct yenta_socket *socket)
* CSC interrupts to PCI rather than INTVAL.
*/
val
=
config_readb
(
socket
,
TI1250_DIAGNOSTIC
);
printk
(
KERN_INFO
"Yenta: Using %s to route CSC interrupts to PCI
\n
"
,
(
val
&
TI1250_DIAG_PCI_CSC
)
?
"CSCINT"
:
"INTVAL"
);
printk
(
KERN_INFO
"Yenta: Routing CardBus interrupts to %s
\n
"
,
(
val
&
TI1250_DIAG_PCI_IREQ
)
?
"PCI"
:
"ISA"
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Using %s to route CSC interrupts to PCI
\n
"
,
(
val
&
TI1250_DIAG_PCI_CSC
)
?
"CSCINT"
:
"INTVAL"
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Routing CardBus interrupts to %s
\n
"
,
(
val
&
TI1250_DIAG_PCI_IREQ
)
?
"PCI"
:
"ISA"
);
/* do irqrouting, depending on function */
if
(
PCI_FUNC
(
socket
->
dev
->
devfn
)
==
0
)
...
...
@@ -858,8 +863,9 @@ static int ti1250_override(struct yenta_socket *socket)
diag
|=
TI1250_DIAG_PCI_CSC
|
TI1250_DIAG_PCI_IREQ
;
if
(
diag
!=
old
)
{
printk
(
KERN_INFO
"Yenta: adjusting diagnostic: %02x -> %02x
\n
"
,
old
,
diag
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"adjusting diagnostic: %02x -> %02x
\n
"
,
old
,
diag
);
config_writeb
(
socket
,
TI1250_DIAGNOSTIC
,
diag
);
}
...
...
@@ -924,7 +930,9 @@ static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus)
/* default to clear TLTEnable bit, old behaviour */
test_c9
&=
~
ENE_TEST_C9_TLTENABLE
;
printk
(
KERN_INFO
"yenta EnE: chaning testregister 0xC9, %02x -> %02x
\n
"
,
old_c9
,
test_c9
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"EnE: chaning testregister 0xC9, %02x -> %02x
\n
"
,
old_c9
,
test_c9
);
config_writeb
(
socket
,
ENE_TEST_C9
,
test_c9
);
}
...
...
drivers/pcmcia/yenta_socket.c
View file @
dd797d81
...
...
@@ -38,11 +38,7 @@ static int pwr_irqs_off;
module_param
(
pwr_irqs_off
,
bool
,
0644
);
MODULE_PARM_DESC
(
pwr_irqs_off
,
"Force IRQs off during power-on of slot. Use only when seeing IRQ storms!"
);
#if 0
#define debug(x,args...) printk(KERN_DEBUG "%s: " x, __func__ , ##args)
#else
#define debug(x,args...)
#endif
#define debug(x, s, args...) dev_dbg(&s->dev->dev, x, ##args)
/* Don't ask.. */
#define to_cycles(ns) ((ns)/120)
...
...
@@ -69,13 +65,13 @@ MODULE_PARM_DESC (override_bios, "yenta ignore bios resource allocation");
static
inline
u32
cb_readl
(
struct
yenta_socket
*
socket
,
unsigned
reg
)
{
u32
val
=
readl
(
socket
->
base
+
reg
);
debug
(
"%
p %
04x %08x
\n
"
,
socket
,
reg
,
val
);
debug
(
"%04x %08x
\n
"
,
socket
,
reg
,
val
);
return
val
;
}
static
inline
void
cb_writel
(
struct
yenta_socket
*
socket
,
unsigned
reg
,
u32
val
)
{
debug
(
"%
p %
04x %08x
\n
"
,
socket
,
reg
,
val
);
debug
(
"%04x %08x
\n
"
,
socket
,
reg
,
val
);
writel
(
val
,
socket
->
base
+
reg
);
readl
(
socket
->
base
+
reg
);
/* avoid problems with PCI write posting */
}
...
...
@@ -84,7 +80,7 @@ static inline u8 config_readb(struct yenta_socket *socket, unsigned offset)
{
u8
val
;
pci_read_config_byte
(
socket
->
dev
,
offset
,
&
val
);
debug
(
"%
p %
04x %02x
\n
"
,
socket
,
offset
,
val
);
debug
(
"%04x %02x
\n
"
,
socket
,
offset
,
val
);
return
val
;
}
...
...
@@ -92,7 +88,7 @@ static inline u16 config_readw(struct yenta_socket *socket, unsigned offset)
{
u16
val
;
pci_read_config_word
(
socket
->
dev
,
offset
,
&
val
);
debug
(
"%
p %
04x %04x
\n
"
,
socket
,
offset
,
val
);
debug
(
"%04x %04x
\n
"
,
socket
,
offset
,
val
);
return
val
;
}
...
...
@@ -100,32 +96,32 @@ static inline u32 config_readl(struct yenta_socket *socket, unsigned offset)
{
u32
val
;
pci_read_config_dword
(
socket
->
dev
,
offset
,
&
val
);
debug
(
"%
p %
04x %08x
\n
"
,
socket
,
offset
,
val
);
debug
(
"%04x %08x
\n
"
,
socket
,
offset
,
val
);
return
val
;
}
static
inline
void
config_writeb
(
struct
yenta_socket
*
socket
,
unsigned
offset
,
u8
val
)
{
debug
(
"%
p %
04x %02x
\n
"
,
socket
,
offset
,
val
);
debug
(
"%04x %02x
\n
"
,
socket
,
offset
,
val
);
pci_write_config_byte
(
socket
->
dev
,
offset
,
val
);
}
static
inline
void
config_writew
(
struct
yenta_socket
*
socket
,
unsigned
offset
,
u16
val
)
{
debug
(
"%
p %
04x %04x
\n
"
,
socket
,
offset
,
val
);
debug
(
"%04x %04x
\n
"
,
socket
,
offset
,
val
);
pci_write_config_word
(
socket
->
dev
,
offset
,
val
);
}
static
inline
void
config_writel
(
struct
yenta_socket
*
socket
,
unsigned
offset
,
u32
val
)
{
debug
(
"%
p %
04x %08x
\n
"
,
socket
,
offset
,
val
);
debug
(
"%04x %08x
\n
"
,
socket
,
offset
,
val
);
pci_write_config_dword
(
socket
->
dev
,
offset
,
val
);
}
static
inline
u8
exca_readb
(
struct
yenta_socket
*
socket
,
unsigned
reg
)
{
u8
val
=
readb
(
socket
->
base
+
0x800
+
reg
);
debug
(
"%
p %
04x %02x
\n
"
,
socket
,
reg
,
val
);
debug
(
"%04x %02x
\n
"
,
socket
,
reg
,
val
);
return
val
;
}
...
...
@@ -134,20 +130,20 @@ static inline u8 exca_readw(struct yenta_socket *socket, unsigned reg)
u16
val
;
val
=
readb
(
socket
->
base
+
0x800
+
reg
);
val
|=
readb
(
socket
->
base
+
0x800
+
reg
+
1
)
<<
8
;
debug
(
"%
p %
04x %04x
\n
"
,
socket
,
reg
,
val
);
debug
(
"%04x %04x
\n
"
,
socket
,
reg
,
val
);
return
val
;
}
static
inline
void
exca_writeb
(
struct
yenta_socket
*
socket
,
unsigned
reg
,
u8
val
)
{
debug
(
"%
p %
04x %02x
\n
"
,
socket
,
reg
,
val
);
debug
(
"%04x %02x
\n
"
,
socket
,
reg
,
val
);
writeb
(
val
,
socket
->
base
+
0x800
+
reg
);
readb
(
socket
->
base
+
0x800
+
reg
);
/* PCI write posting... */
}
static
void
exca_writew
(
struct
yenta_socket
*
socket
,
unsigned
reg
,
u16
val
)
{
debug
(
"%
p %
04x %04x
\n
"
,
socket
,
reg
,
val
);
debug
(
"%04x %04x
\n
"
,
socket
,
reg
,
val
);
writeb
(
val
,
socket
->
base
+
0x800
+
reg
);
writeb
(
val
>>
8
,
socket
->
base
+
0x800
+
reg
+
1
);
...
...
@@ -207,7 +203,7 @@ static int yenta_get_status(struct pcmcia_socket *sock, unsigned int *value)
if
(
state
&
CB_CBCARD
)
{
val
|=
SS_CARDBUS
;
val
|=
SS_CARDBUS
;
val
|=
(
state
&
CB_CARDSTS
)
?
SS_STSCHG
:
0
;
val
|=
(
state
&
(
CB_CDETECT1
|
CB_CDETECT2
))
?
0
:
SS_DETECT
;
val
|=
(
state
&
CB_PWRCYCLE
)
?
SS_POWERON
|
SS_READY
:
0
;
...
...
@@ -650,8 +646,10 @@ static int yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned type
root
=
pci_find_parent_resource
(
socket
->
dev
,
res
);
if
(
root
&&
(
request_resource
(
root
,
res
)
==
0
))
return
0
;
printk
(
KERN_INFO
"yenta %s: Preassigned resource %d busy or not available, reconfiguring...
\n
"
,
pci_name
(
socket
->
dev
),
nr
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"Preassigned resource %d busy or not available, "
"reconfiguring...
\n
"
,
nr
);
}
if
(
type
&
IORESOURCE_IO
)
{
...
...
@@ -674,8 +672,9 @@ static int yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned type
return
1
;
}
printk
(
KERN_INFO
"yenta %s: no resource of type %x available, trying to continue...
\n
"
,
pci_name
(
socket
->
dev
),
type
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"no resource of type %x available, trying to continue...
\n
"
,
type
);
res
->
start
=
res
->
end
=
res
->
flags
=
0
;
return
0
;
}
...
...
@@ -923,7 +922,8 @@ static int yenta_probe_cb_irq(struct yenta_socket *socket)
socket
->
probe_status
=
0
;
if
(
request_irq
(
socket
->
cb_irq
,
yenta_probe_handler
,
IRQF_SHARED
,
"yenta"
,
socket
))
{
printk
(
KERN_WARNING
"Yenta: request_irq() in yenta_probe_cb_irq() failed!
\n
"
);
dev_printk
(
KERN_WARNING
,
&
socket
->
dev
->
dev
,
"request_irq() in yenta_probe_cb_irq() failed!
\n
"
);
return
-
1
;
}
...
...
@@ -960,8 +960,9 @@ static void yenta_get_socket_capabilities(struct yenta_socket *socket, u32 isa_i
else
socket
->
socket
.
irq_mask
=
0
;
printk
(
KERN_INFO
"Yenta: ISA IRQ mask 0x%04x, PCI irq %d
\n
"
,
socket
->
socket
.
irq_mask
,
socket
->
cb_irq
);
dev_printk
(
KERN_INFO
,
&
socket
->
dev
->
dev
,
"ISA IRQ mask 0x%04x, PCI irq %d
\n
"
,
socket
->
socket
.
irq_mask
,
socket
->
cb_irq
);
}
/*
...
...
@@ -1051,8 +1052,9 @@ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge)
/* Show that the wanted subordinate number is not possible: */
if
(
cardbus_bridge
->
subordinate
>
upper_limit
)
printk
(
KERN_WARNING
"Yenta: Upper limit for fixing this "
"bridge's parent bridge: #%02x
\n
"
,
upper_limit
);
dev_printk
(
KERN_WARNING
,
&
cardbus_bridge
->
dev
,
"Upper limit for fixing this "
"bridge's parent bridge: #%02x
\n
"
,
upper_limit
);
/* If we have room to increase the bridge's subordinate number, */
if
(
bridge_to_fix
->
subordinate
<
upper_limit
)
{
...
...
@@ -1061,10 +1063,11 @@ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge)
unsigned
char
subordinate_to_assign
=
min
(
cardbus_bridge
->
subordinate
,
upper_limit
);
printk
(
KERN_INFO
"Yenta: Raising subordinate bus# of parent "
"bus (#%02x) from #%02x to #%02x
\n
"
,
bridge_to_fix
->
number
,
bridge_to_fix
->
subordinate
,
subordinate_to_assign
);
dev_printk
(
KERN_INFO
,
&
bridge_to_fix
->
dev
,
"Raising subordinate bus# of parent "
"bus (#%02x) from #%02x to #%02x
\n
"
,
bridge_to_fix
->
number
,
bridge_to_fix
->
subordinate
,
subordinate_to_assign
);
/* Save the new subordinate in the bus struct of the bridge */
bridge_to_fix
->
subordinate
=
subordinate_to_assign
;
...
...
@@ -1091,8 +1094,8 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
* Bail out if so.
*/
if
(
!
dev
->
subordinate
)
{
printk
(
KERN_ERR
"Yenta: no bus associated with %s
! "
"(try 'pci=assign-busses')
\n
"
,
pci_name
(
dev
)
);
dev_printk
(
KERN_ERR
,
&
dev
->
dev
,
"no bus associated
! "
"(try 'pci=assign-busses')
\n
"
);
return
-
ENODEV
;
}
...
...
@@ -1127,7 +1130,7 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
goto
disable
;
if
(
!
pci_resource_start
(
dev
,
0
))
{
printk
(
KERN_ERR
"No cardbus resource!
\n
"
);
dev_printk
(
KERN_ERR
,
&
dev
->
dev
,
"No cardbus resource!
\n
"
);
ret
=
-
ENODEV
;
goto
release
;
}
...
...
@@ -1146,8 +1149,8 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
* report the subsystem vendor and device for help debugging
* the irq stuff...
*/
printk
(
KERN_INFO
"Yenta: CardBus bridge found at %s
[%04x:%04x]
\n
"
,
pci_name
(
dev
),
dev
->
subsystem_vendor
,
dev
->
subsystem_device
);
dev_printk
(
KERN_INFO
,
&
dev
->
dev
,
"CardBus bridge found
[%04x:%04x]
\n
"
,
dev
->
subsystem_vendor
,
dev
->
subsystem_device
);
yenta_config_init
(
socket
);
...
...
@@ -1179,8 +1182,12 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
socket
->
poll_timer
.
data
=
(
unsigned
long
)
socket
;
socket
->
poll_timer
.
expires
=
jiffies
+
HZ
;
add_timer
(
&
socket
->
poll_timer
);
printk
(
KERN_INFO
"Yenta: no PCI IRQ, CardBus support disabled for this socket.
\n
"
KERN_INFO
"Yenta: check your BIOS CardBus, BIOS IRQ or ACPI settings.
\n
"
);
dev_printk
(
KERN_INFO
,
&
dev
->
dev
,
"no PCI IRQ, CardBus support disabled for this "
"socket.
\n
"
);
dev_printk
(
KERN_INFO
,
&
dev
->
dev
,
"check your BIOS CardBus, BIOS IRQ or ACPI "
"settings.
\n
"
);
}
else
{
socket
->
socket
.
features
|=
SS_CAP_CARDBUS
;
}
...
...
@@ -1188,7 +1195,8 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
/* Figure out what the dang thing can do for the PCMCIA layer... */
yenta_interrogate
(
socket
);
yenta_get_socket_capabilities
(
socket
,
isa_interrupts
);
printk
(
KERN_INFO
"Socket status: %08x
\n
"
,
cb_readl
(
socket
,
CB_SOCKET_STATE
));
dev_printk
(
KERN_INFO
,
&
dev
->
dev
,
"Socket status: %08x
\n
"
,
cb_readl
(
socket
,
CB_SOCKET_STATE
));
yenta_fixup_parent_bridge
(
dev
->
subordinate
);
...
...
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