Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: move PCI HCD resume routine

This patch (as1384) moves the resume_common() routine in hcd-pci.c a
little higher in the source file to avoid forward references in an
upcoming patch. It also replaces the "hibernated" argument with a
more general "event" argument, which will be useful when the routine
is called during a runtime resume.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Alan Stern and committed by
Greg Kroah-Hartman
057c58bf 2138a1f1

+39 -38
+39 -38
drivers/usb/core/hcd-pci.c
··· 403 403 return retval; 404 404 } 405 405 406 + static int resume_common(struct device *dev, int event) 407 + { 408 + struct pci_dev *pci_dev = to_pci_dev(dev); 409 + struct usb_hcd *hcd = pci_get_drvdata(pci_dev); 410 + int retval; 411 + 412 + if (hcd->state != HC_STATE_SUSPENDED) { 413 + dev_dbg(dev, "can't resume, not suspended!\n"); 414 + return 0; 415 + } 416 + 417 + retval = pci_enable_device(pci_dev); 418 + if (retval < 0) { 419 + dev_err(dev, "can't re-enable after resume, %d!\n", retval); 420 + return retval; 421 + } 422 + 423 + pci_set_master(pci_dev); 424 + 425 + clear_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); 426 + 427 + if (hcd->driver->pci_resume) { 428 + /* This call should be made only during system resume, 429 + * not during runtime resume. 430 + */ 431 + wait_for_companions(pci_dev, hcd); 432 + 433 + retval = hcd->driver->pci_resume(hcd, 434 + event == PM_EVENT_RESTORE); 435 + if (retval) { 436 + dev_err(dev, "PCI post-resume error %d!\n", retval); 437 + usb_hc_died(hcd); 438 + } 439 + } 440 + return retval; 441 + } 442 + 406 443 static int hcd_pci_suspend_noirq(struct device *dev) 407 444 { 408 445 struct pci_dev *pci_dev = to_pci_dev(dev); ··· 489 452 return 0; 490 453 } 491 454 492 - static int resume_common(struct device *dev, bool hibernated) 493 - { 494 - struct pci_dev *pci_dev = to_pci_dev(dev); 495 - struct usb_hcd *hcd = pci_get_drvdata(pci_dev); 496 - int retval; 497 - 498 - if (hcd->state != HC_STATE_SUSPENDED) { 499 - dev_dbg(dev, "can't resume, not suspended!\n"); 500 - return 0; 501 - } 502 - 503 - retval = pci_enable_device(pci_dev); 504 - if (retval < 0) { 505 - dev_err(dev, "can't re-enable after resume, %d!\n", retval); 506 - return retval; 507 - } 508 - 509 - pci_set_master(pci_dev); 510 - 511 - clear_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); 512 - 513 - if (hcd->driver->pci_resume) { 514 - /* This call should be made only during system resume, 515 - * not during runtime resume. 516 - */ 517 - wait_for_companions(pci_dev, hcd); 518 - 519 - retval = hcd->driver->pci_resume(hcd, hibernated); 520 - if (retval) { 521 - dev_err(dev, "PCI post-resume error %d!\n", retval); 522 - usb_hc_died(hcd); 523 - } 524 - } 525 - return retval; 526 - } 527 - 528 455 static int hcd_pci_resume(struct device *dev) 529 456 { 530 - return resume_common(dev, false); 457 + return resume_common(dev, PM_EVENT_RESUME); 531 458 } 532 459 533 460 static int hcd_pci_restore(struct device *dev) 534 461 { 535 - return resume_common(dev, true); 462 + return resume_common(dev, PM_EVENT_RESTORE); 536 463 } 537 464 538 465 const struct dev_pm_ops usb_hcd_pci_pm_ops = {