lkml.org 
[lkml]   [2023]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 14/17] r8169: Use pcie_lnkctl_clear_and_set() for changing LNKCTL
    From
    On 11.05.2023 15:14, Ilpo Järvinen wrote:
    > Don't assume that only the driver would be accessing LNKCTL. ASPM
    > policy changes can trigger write to LNKCTL outside of driver's control.
    >
    > Use pcie_lnkctl_clear_and_set() which does proper locking to avoid
    > losing concurrent updates to the register value.
    >

    Wouldn't it be more appropriate to add proper locking to the
    underlying pcie_capability_clear_and_set_word()?


    > Suggested-by: Lukas Wunner <lukas@wunner.de>
    > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    > ---
    > drivers/net/ethernet/realtek/r8169_main.c | 6 ++----
    > 1 file changed, 2 insertions(+), 4 deletions(-)
    >
    > diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
    > index a7e376e7e689..c0294a833681 100644
    > --- a/drivers/net/ethernet/realtek/r8169_main.c
    > +++ b/drivers/net/ethernet/realtek/r8169_main.c
    > @@ -2686,14 +2686,12 @@ static void __rtl_ephy_init(struct rtl8169_private *tp,
    >
    > static void rtl_disable_clock_request(struct rtl8169_private *tp)
    > {
    > - pcie_capability_clear_word(tp->pci_dev, PCI_EXP_LNKCTL,
    > - PCI_EXP_LNKCTL_CLKREQ_EN);
    > + pcie_lnkctl_clear_and_set(tp->pci_dev, PCI_EXP_LNKCTL_CLKREQ_EN, 0);
    > }
    >
    > static void rtl_enable_clock_request(struct rtl8169_private *tp)
    > {
    > - pcie_capability_set_word(tp->pci_dev, PCI_EXP_LNKCTL,
    > - PCI_EXP_LNKCTL_CLKREQ_EN);
    > + pcie_lnkctl_clear_and_set(tp->pci_dev, 0, PCI_EXP_LNKCTL_CLKREQ_EN);
    > }
    >
    > static void rtl_pcie_state_l2l3_disable(struct rtl8169_private *tp)

    \
     
     \ /
      Last update: 2023-05-11 21:51    [W:4.107 / U:0.724 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site