.. | .. |
---|
332 | 332 | static int __pciehp_link_set(struct controller *ctrl, bool enable) |
---|
333 | 333 | { |
---|
334 | 334 | struct pci_dev *pdev = ctrl_dev(ctrl); |
---|
335 | | - u16 lnk_ctrl; |
---|
336 | 335 | |
---|
337 | | - pcie_capability_read_word(pdev, PCI_EXP_LNKCTL, &lnk_ctrl); |
---|
| 336 | + pcie_capability_clear_and_set_word(pdev, PCI_EXP_LNKCTL, |
---|
| 337 | + PCI_EXP_LNKCTL_LD, |
---|
| 338 | + enable ? 0 : PCI_EXP_LNKCTL_LD); |
---|
338 | 339 | |
---|
339 | | - if (enable) |
---|
340 | | - lnk_ctrl &= ~PCI_EXP_LNKCTL_LD; |
---|
341 | | - else |
---|
342 | | - lnk_ctrl |= PCI_EXP_LNKCTL_LD; |
---|
343 | | - |
---|
344 | | - pcie_capability_write_word(pdev, PCI_EXP_LNKCTL, lnk_ctrl); |
---|
345 | | - ctrl_dbg(ctrl, "%s: lnk_ctrl = %x\n", __func__, lnk_ctrl); |
---|
346 | 340 | return 0; |
---|
347 | 341 | } |
---|
348 | 342 | |
---|