* [PATCH V3 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code [not found] <20250729065806.423902-1-victorshihgli@gmail.com> @ 2025-07-29 6:58 ` Victor Shih 2025-07-30 15:53 ` Adrian Hunter 2025-07-29 6:58 ` [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih 2025-07-29 6:58 ` [PATCH V3 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih 2 siblings, 1 reply; 7+ messages in thread From: Victor Shih @ 2025-07-29 6:58 UTC (permalink / raw) To: ulf.hansson, adrian.hunter Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, Victor Shih, stable From: Victor Shih <victor.shih@genesyslogic.com.tw> In preparation to fix replay timer timeout, add sdhci_gli_mask_replay_timer_timeout() function to simplify some of the code, allowing it to be re-used. Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") Cc: stable@vger.kernel.org --- drivers/mmc/host/sdhci-pci-gli.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c index 4c2ae71770f7..f678c91f8d3e 100644 --- a/drivers/mmc/host/sdhci-pci-gli.c +++ b/drivers/mmc/host/sdhci-pci-gli.c @@ -287,6 +287,20 @@ #define GLI_MAX_TUNING_LOOP 40 /* Genesys Logic chipset */ +static void sdhci_gli_mask_replay_timer_timeout(struct pci_dev *pdev) +{ + int aer; + u32 value; + + /* mask the replay timer timeout of AER */ + aer = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); + if (aer) { + pci_read_config_dword(pdev, aer + PCI_ERR_COR_MASK, &value); + value |= PCI_ERR_COR_REP_TIMER; + pci_write_config_dword(pdev, aer + PCI_ERR_COR_MASK, value); + } +} + static inline void gl9750_wt_on(struct sdhci_host *host) { u32 wt_value; @@ -607,7 +621,6 @@ static void gl9750_hw_setting(struct sdhci_host *host) { struct sdhci_pci_slot *slot = sdhci_priv(host); struct pci_dev *pdev; - int aer; u32 value; pdev = slot->chip->pdev; @@ -626,12 +639,7 @@ static void gl9750_hw_setting(struct sdhci_host *host) pci_set_power_state(pdev, PCI_D0); /* mask the replay timer timeout of AER */ - aer = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); - if (aer) { - pci_read_config_dword(pdev, aer + PCI_ERR_COR_MASK, &value); - value |= PCI_ERR_COR_REP_TIMER; - pci_write_config_dword(pdev, aer + PCI_ERR_COR_MASK, value); - } + sdhci_gli_mask_replay_timer_timeout(pdev); gl9750_wt_off(host); } @@ -806,7 +814,6 @@ static void sdhci_gl9755_set_clock(struct sdhci_host *host, unsigned int clock) static void gl9755_hw_setting(struct sdhci_pci_slot *slot) { struct pci_dev *pdev = slot->chip->pdev; - int aer; u32 value; gl9755_wt_on(pdev); @@ -841,12 +848,7 @@ static void gl9755_hw_setting(struct sdhci_pci_slot *slot) pci_set_power_state(pdev, PCI_D0); /* mask the replay timer timeout of AER */ - aer = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); - if (aer) { - pci_read_config_dword(pdev, aer + PCI_ERR_COR_MASK, &value); - value |= PCI_ERR_COR_REP_TIMER; - pci_write_config_dword(pdev, aer + PCI_ERR_COR_MASK, value); - } + sdhci_gli_mask_replay_timer_timeout(pdev); gl9755_wt_off(pdev); } -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH V3 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code 2025-07-29 6:58 ` [PATCH V3 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih @ 2025-07-30 15:53 ` Adrian Hunter 0 siblings, 0 replies; 7+ messages in thread From: Adrian Hunter @ 2025-07-30 15:53 UTC (permalink / raw) To: Victor Shih, ulf.hansson Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, stable On 29/07/2025 09:58, Victor Shih wrote: > From: Victor Shih <victor.shih@genesyslogic.com.tw> > > In preparation to fix replay timer timeout, add > sdhci_gli_mask_replay_timer_timeout() function > to simplify some of the code, allowing it to be re-used. > > Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> > Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") > Cc: stable@vger.kernel.org Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > drivers/mmc/host/sdhci-pci-gli.c | 30 ++++++++++++++++-------------- > 1 file changed, 16 insertions(+), 14 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c > index 4c2ae71770f7..f678c91f8d3e 100644 > --- a/drivers/mmc/host/sdhci-pci-gli.c > +++ b/drivers/mmc/host/sdhci-pci-gli.c > @@ -287,6 +287,20 @@ > #define GLI_MAX_TUNING_LOOP 40 > > /* Genesys Logic chipset */ > +static void sdhci_gli_mask_replay_timer_timeout(struct pci_dev *pdev) > +{ > + int aer; > + u32 value; > + > + /* mask the replay timer timeout of AER */ > + aer = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); > + if (aer) { > + pci_read_config_dword(pdev, aer + PCI_ERR_COR_MASK, &value); > + value |= PCI_ERR_COR_REP_TIMER; > + pci_write_config_dword(pdev, aer + PCI_ERR_COR_MASK, value); > + } > +} > + > static inline void gl9750_wt_on(struct sdhci_host *host) > { > u32 wt_value; > @@ -607,7 +621,6 @@ static void gl9750_hw_setting(struct sdhci_host *host) > { > struct sdhci_pci_slot *slot = sdhci_priv(host); > struct pci_dev *pdev; > - int aer; > u32 value; > > pdev = slot->chip->pdev; > @@ -626,12 +639,7 @@ static void gl9750_hw_setting(struct sdhci_host *host) > pci_set_power_state(pdev, PCI_D0); > > /* mask the replay timer timeout of AER */ > - aer = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); > - if (aer) { > - pci_read_config_dword(pdev, aer + PCI_ERR_COR_MASK, &value); > - value |= PCI_ERR_COR_REP_TIMER; > - pci_write_config_dword(pdev, aer + PCI_ERR_COR_MASK, value); > - } > + sdhci_gli_mask_replay_timer_timeout(pdev); > > gl9750_wt_off(host); > } > @@ -806,7 +814,6 @@ static void sdhci_gl9755_set_clock(struct sdhci_host *host, unsigned int clock) > static void gl9755_hw_setting(struct sdhci_pci_slot *slot) > { > struct pci_dev *pdev = slot->chip->pdev; > - int aer; > u32 value; > > gl9755_wt_on(pdev); > @@ -841,12 +848,7 @@ static void gl9755_hw_setting(struct sdhci_pci_slot *slot) > pci_set_power_state(pdev, PCI_D0); > > /* mask the replay timer timeout of AER */ > - aer = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); > - if (aer) { > - pci_read_config_dword(pdev, aer + PCI_ERR_COR_MASK, &value); > - value |= PCI_ERR_COR_REP_TIMER; > - pci_write_config_dword(pdev, aer + PCI_ERR_COR_MASK, value); > - } > + sdhci_gli_mask_replay_timer_timeout(pdev); > > gl9755_wt_off(pdev); > } ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency [not found] <20250729065806.423902-1-victorshihgli@gmail.com> 2025-07-29 6:58 ` [PATCH V3 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih @ 2025-07-29 6:58 ` Victor Shih 2025-07-30 15:54 ` Adrian Hunter 2025-07-29 6:58 ` [PATCH V3 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih 2 siblings, 1 reply; 7+ messages in thread From: Victor Shih @ 2025-07-29 6:58 UTC (permalink / raw) To: ulf.hansson, adrian.hunter Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, Victor Shih, stable From: Victor Shih <victor.shih@genesyslogic.com.tw> Rename the gli_set_gl9763e() to gl9763e_hw_setting() for consistency. Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") Cc: stable@vger.kernel.org --- drivers/mmc/host/sdhci-pci-gli.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c index f678c91f8d3e..436f0460222f 100644 --- a/drivers/mmc/host/sdhci-pci-gli.c +++ b/drivers/mmc/host/sdhci-pci-gli.c @@ -1753,7 +1753,7 @@ static int gl9763e_add_host(struct sdhci_pci_slot *slot) return ret; } -static void gli_set_gl9763e(struct sdhci_pci_slot *slot) +static void gl9763e_hw_setting(struct sdhci_pci_slot *slot) { struct pci_dev *pdev = slot->chip->pdev; u32 value; @@ -1925,7 +1925,7 @@ static int gli_probe_slot_gl9763e(struct sdhci_pci_slot *slot) gli_pcie_enable_msi(slot); host->mmc_host_ops.hs400_enhanced_strobe = gl9763e_hs400_enhanced_strobe; - gli_set_gl9763e(slot); + gl9763e_hw_setting(slot); sdhci_enable_v4_mode(host); return 0; -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency 2025-07-29 6:58 ` [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih @ 2025-07-30 15:54 ` Adrian Hunter 2025-07-31 6:52 ` Victor Shih 0 siblings, 1 reply; 7+ messages in thread From: Adrian Hunter @ 2025-07-30 15:54 UTC (permalink / raw) To: Victor Shih, ulf.hansson Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, stable On 29/07/2025 09:58, Victor Shih wrote: > From: Victor Shih <victor.shih@genesyslogic.com.tw> > Also needs to explain in the commit message, why it has a stable tag, say: In preparation to fix replay timer timeout, rename the gli_set_gl9763e() to gl9763e_hw_setting() for consistency. With that: Acked-by: Adrian Hunter <adrian.hunter@intel.com> > Rename the gli_set_gl9763e() to gl9763e_hw_setting() for consistency. > > Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> > Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") > Cc: stable@vger.kernel.org > --- > drivers/mmc/host/sdhci-pci-gli.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c > index f678c91f8d3e..436f0460222f 100644 > --- a/drivers/mmc/host/sdhci-pci-gli.c > +++ b/drivers/mmc/host/sdhci-pci-gli.c > @@ -1753,7 +1753,7 @@ static int gl9763e_add_host(struct sdhci_pci_slot *slot) > return ret; > } > > -static void gli_set_gl9763e(struct sdhci_pci_slot *slot) > +static void gl9763e_hw_setting(struct sdhci_pci_slot *slot) > { > struct pci_dev *pdev = slot->chip->pdev; > u32 value; > @@ -1925,7 +1925,7 @@ static int gli_probe_slot_gl9763e(struct sdhci_pci_slot *slot) > gli_pcie_enable_msi(slot); > host->mmc_host_ops.hs400_enhanced_strobe = > gl9763e_hs400_enhanced_strobe; > - gli_set_gl9763e(slot); > + gl9763e_hw_setting(slot); > sdhci_enable_v4_mode(host); > > return 0; ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency 2025-07-30 15:54 ` Adrian Hunter @ 2025-07-31 6:52 ` Victor Shih 0 siblings, 0 replies; 7+ messages in thread From: Victor Shih @ 2025-07-31 6:52 UTC (permalink / raw) To: Adrian Hunter Cc: ulf.hansson, linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, stable On Wed, Jul 30, 2025 at 11:54 PM Adrian Hunter <adrian.hunter@intel.com> wrote: > > On 29/07/2025 09:58, Victor Shih wrote: > > From: Victor Shih <victor.shih@genesyslogic.com.tw> > > > > Also needs to explain in the commit message, why it has a stable tag, say: > > In preparation to fix replay timer timeout, rename the gli_set_gl9763e() to > gl9763e_hw_setting() for consistency. > > With that: > > Acked-by: Adrian Hunter <adrian.hunter@intel.com> > Hi, Adrian I will update the commit message in the next version and also keep your acked-by tag. Thanks, Victor Shih > > Rename the gli_set_gl9763e() to gl9763e_hw_setting() for consistency. > > > > Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> > > Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") > > Cc: stable@vger.kernel.org > > --- > > drivers/mmc/host/sdhci-pci-gli.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c > > index f678c91f8d3e..436f0460222f 100644 > > --- a/drivers/mmc/host/sdhci-pci-gli.c > > +++ b/drivers/mmc/host/sdhci-pci-gli.c > > @@ -1753,7 +1753,7 @@ static int gl9763e_add_host(struct sdhci_pci_slot *slot) > > return ret; > > } > > > > -static void gli_set_gl9763e(struct sdhci_pci_slot *slot) > > +static void gl9763e_hw_setting(struct sdhci_pci_slot *slot) > > { > > struct pci_dev *pdev = slot->chip->pdev; > > u32 value; > > @@ -1925,7 +1925,7 @@ static int gli_probe_slot_gl9763e(struct sdhci_pci_slot *slot) > > gli_pcie_enable_msi(slot); > > host->mmc_host_ops.hs400_enhanced_strobe = > > gl9763e_hs400_enhanced_strobe; > > - gli_set_gl9763e(slot); > > + gl9763e_hw_setting(slot); > > sdhci_enable_v4_mode(host); > > > > return 0; > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V3 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER [not found] <20250729065806.423902-1-victorshihgli@gmail.com> 2025-07-29 6:58 ` [PATCH V3 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih 2025-07-29 6:58 ` [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih @ 2025-07-29 6:58 ` Victor Shih 2025-07-30 15:54 ` Adrian Hunter 2 siblings, 1 reply; 7+ messages in thread From: Victor Shih @ 2025-07-29 6:58 UTC (permalink / raw) To: ulf.hansson, adrian.hunter Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, Victor Shih, stable From: Victor Shih <victor.shih@genesyslogic.com.tw> Due to a flaw in the hardware design, the GL9763e replay timer frequently times out when ASPM is enabled. As a result, the warning messages will often appear in the system log when the system accesses the GL9763e PCI config. Therefore, the replay timer timeout must be masked. Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") Cc: stable@vger.kernel.org --- drivers/mmc/host/sdhci-pci-gli.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c index 436f0460222f..3a1de477e9af 100644 --- a/drivers/mmc/host/sdhci-pci-gli.c +++ b/drivers/mmc/host/sdhci-pci-gli.c @@ -1782,6 +1782,9 @@ static void gl9763e_hw_setting(struct sdhci_pci_slot *slot) value |= FIELD_PREP(GLI_9763E_HS400_RXDLY, GLI_9763E_HS400_RXDLY_5); pci_write_config_dword(pdev, PCIE_GLI_9763E_CLKRXDLY, value); + /* mask the replay timer timeout of AER */ + sdhci_gli_mask_replay_timer_timeout(pdev); + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); value &= ~GLI_9763E_VHS_REV; value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R); -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH V3 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER 2025-07-29 6:58 ` [PATCH V3 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih @ 2025-07-30 15:54 ` Adrian Hunter 0 siblings, 0 replies; 7+ messages in thread From: Adrian Hunter @ 2025-07-30 15:54 UTC (permalink / raw) To: Victor Shih, ulf.hansson Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu, Victor Shih, stable On 29/07/2025 09:58, Victor Shih wrote: > From: Victor Shih <victor.shih@genesyslogic.com.tw> > > Due to a flaw in the hardware design, the GL9763e replay timer frequently > times out when ASPM is enabled. As a result, the warning messages will > often appear in the system log when the system accesses the GL9763e > PCI config. Therefore, the replay timer timeout must be masked. > > Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw> > Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support") > Cc: stable@vger.kernel.org Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > drivers/mmc/host/sdhci-pci-gli.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c > index 436f0460222f..3a1de477e9af 100644 > --- a/drivers/mmc/host/sdhci-pci-gli.c > +++ b/drivers/mmc/host/sdhci-pci-gli.c > @@ -1782,6 +1782,9 @@ static void gl9763e_hw_setting(struct sdhci_pci_slot *slot) > value |= FIELD_PREP(GLI_9763E_HS400_RXDLY, GLI_9763E_HS400_RXDLY_5); > pci_write_config_dword(pdev, PCIE_GLI_9763E_CLKRXDLY, value); > > + /* mask the replay timer timeout of AER */ > + sdhci_gli_mask_replay_timer_timeout(pdev); > + > pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); > value &= ~GLI_9763E_VHS_REV; > value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R); ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-07-31 6:53 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250729065806.423902-1-victorshihgli@gmail.com>
2025-07-29 6:58 ` [PATCH V3 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih
2025-07-30 15:53 ` Adrian Hunter
2025-07-29 6:58 ` [PATCH V3 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih
2025-07-30 15:54 ` Adrian Hunter
2025-07-31 6:52 ` Victor Shih
2025-07-29 6:58 ` [PATCH V3 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih
2025-07-30 15:54 ` Adrian Hunter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox