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
95a62965
Commit
95a62965
authored
Jul 28, 2005
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] PCI: start paying attention to a lot of pci function return values
Signed-off-by:
Greg Kroah-Hartman
<
gregkh@suse.de
>
parent
085ae41f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
39 additions
and
13 deletions
+39
-13
drivers/pci/bus.c
drivers/pci/bus.c
+2
-1
drivers/pci/pci-driver.c
drivers/pci/pci-driver.c
+4
-2
drivers/pci/pci.c
drivers/pci/pci.c
+5
-2
drivers/pci/pcie/portdrv_pci.c
drivers/pci/pcie/portdrv_pci.c
+6
-2
drivers/usb/core/hcd-pci.c
drivers/usb/core/hcd-pci.c
+19
-5
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ehci-hcd.c
+3
-1
No files found.
drivers/pci/bus.c
View file @
95a62965
...
...
@@ -140,10 +140,11 @@ void __devinit pci_bus_add_devices(struct pci_bus *bus)
void
pci_enable_bridges
(
struct
pci_bus
*
bus
)
{
struct
pci_dev
*
dev
;
int
retval
;
list_for_each_entry
(
dev
,
&
bus
->
devices
,
bus_list
)
{
if
(
dev
->
subordinate
)
{
pci_enable_device
(
dev
);
retval
=
pci_enable_device
(
dev
);
pci_set_master
(
dev
);
pci_enable_bridges
(
dev
->
subordinate
);
}
...
...
drivers/pci/pci-driver.c
View file @
95a62965
...
...
@@ -272,17 +272,19 @@ static int pci_device_suspend(struct device * dev, pm_message_t state)
}
/*
/*
* Default resume method for devices that have no driver provided resume,
* or not even a driver at all.
*/
static
void
pci_default_resume
(
struct
pci_dev
*
pci_dev
)
{
int
retval
;
/* restore the PCI config space */
pci_restore_state
(
pci_dev
);
/* if the device was enabled before suspend, reenable */
if
(
pci_dev
->
is_enabled
)
pci_enable_device
(
pci_dev
);
retval
=
pci_enable_device
(
pci_dev
);
/* if the device was busmaster before the suspend, make it busmaster again */
if
(
pci_dev
->
is_busmaster
)
pci_set_master
(
pci_dev
);
...
...
drivers/pci/pci.c
View file @
95a62965
...
...
@@ -444,8 +444,11 @@ pci_enable_device_bars(struct pci_dev *dev, int bars)
{
int
err
;
pci_set_power_state
(
dev
,
PCI_D0
);
if
((
err
=
pcibios_enable_device
(
dev
,
bars
))
<
0
)
err
=
pci_set_power_state
(
dev
,
PCI_D0
);
if
(
err
)
return
err
;
err
=
pcibios_enable_device
(
dev
,
bars
);
if
(
err
<
0
)
return
err
;
return
0
;
}
...
...
drivers/pci/pcie/portdrv_pci.c
View file @
95a62965
...
...
@@ -90,15 +90,19 @@ static void pcie_portdrv_save_config(struct pci_dev *dev)
pci_save_msi_state
(
dev
);
}
static
void
pcie_portdrv_restore_config
(
struct
pci_dev
*
dev
)
static
int
pcie_portdrv_restore_config
(
struct
pci_dev
*
dev
)
{
struct
pcie_port_device_ext
*
p_ext
=
pci_get_drvdata
(
dev
);
int
retval
;
pci_restore_state
(
dev
);
if
(
p_ext
->
interrupt_mode
==
PCIE_PORT_MSI_MODE
)
pci_restore_msi_state
(
dev
);
pci_enable_device
(
dev
);
retval
=
pci_enable_device
(
dev
);
if
(
retval
)
return
retval
;
pci_set_master
(
dev
);
return
0
;
}
/*
...
...
drivers/usb/core/hcd-pci.c
View file @
95a62965
...
...
@@ -260,8 +260,10 @@ int usb_hcd_pci_suspend (struct pci_dev *dev, pm_message_t message)
retval
=
pci_set_power_state
(
dev
,
PCI_D3hot
);
if
(
retval
==
0
)
{
dev_dbg
(
hcd
->
self
.
controller
,
"--> PCI D3
\n
"
);
pci_enable_wake
(
dev
,
PCI_D3hot
,
hcd
->
remote_wakeup
);
pci_enable_wake
(
dev
,
PCI_D3cold
,
hcd
->
remote_wakeup
);
retval
=
pci_enable_wake
(
dev
,
PCI_D3hot
,
hcd
->
remote_wakeup
);
if
(
retval
)
break
;
retval
=
pci_enable_wake
(
dev
,
PCI_D3cold
,
hcd
->
remote_wakeup
);
}
else
if
(
retval
<
0
)
{
dev_dbg
(
&
dev
->
dev
,
"PCI D3 suspend fail, %d
\n
"
,
retval
);
...
...
@@ -335,8 +337,20 @@ int usb_hcd_pci_resume (struct pci_dev *dev)
dev
->
current_state
);
}
#endif
pci_enable_wake
(
dev
,
dev
->
current_state
,
0
);
pci_enable_wake
(
dev
,
PCI_D3cold
,
0
);
retval
=
pci_enable_wake
(
dev
,
dev
->
current_state
,
0
);
if
(
retval
)
{
dev_err
(
hcd
->
self
.
controller
,
"can't enable_wake to %d, %d!
\n
"
,
dev
->
current_state
,
retval
);
return
retval
;
}
retval
=
pci_enable_wake
(
dev
,
PCI_D3cold
,
0
);
if
(
retval
)
{
dev_err
(
hcd
->
self
.
controller
,
"can't enable_wake to %d, %d!
\n
"
,
PCI_D3cold
,
retval
);
return
retval
;
}
}
else
{
/* Same basic cases: clean (powered/not), dirty */
dev_dbg
(
hcd
->
self
.
controller
,
"PCI legacy resume
\n
"
);
...
...
@@ -376,7 +390,7 @@ int usb_hcd_pci_resume (struct pci_dev *dev)
usb_hc_died
(
hcd
);
}
pci_enable_device
(
dev
);
retval
=
pci_enable_device
(
dev
);
return
retval
;
}
EXPORT_SYMBOL
(
usb_hcd_pci_resume
);
...
...
drivers/usb/host/ehci-hcd.c
View file @
95a62965
...
...
@@ -549,7 +549,9 @@ static int ehci_start (struct usb_hcd *hcd)
hcd
->
can_wakeup
=
(
port_wake
&
1
)
!=
0
;
/* help hc dma work well with cachelines */
pci_set_mwi
(
pdev
);
retval
=
pci_set_mwi
(
pdev
);
if
(
retval
)
ehci_dbg
(
ehci
,
"unable to enable MWI - not fatal.
\n
"
);
}
#endif
...
...
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