linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e
@ 2025-07-31  6:57 Victor Shih
  2025-07-31  6:57 ` [PATCH V4 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Victor Shih @ 2025-07-31  6:57 UTC (permalink / raw)
  To: ulf.hansson, adrian.hunter
  Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu,
	Victor Shih

From: Victor Shih <victor.shih@genesyslogic.com.tw>

These patches add a sdhci_gli_mask_replay_timer_timeout() function
to simplify some of the code and mask the replay timer timeout of AER
for the GL9763e chipset.

Changes in v4 (July. 31, 2025)
* Rebase on latest mmc/next.
* Patch#2: Add new message to the commit message to explain
	   why it has a stable tag.

----------------- original cover letter from v3 -----------------
These patches add a sdhci_gli_mask_replay_timer_timeout() function
to simplify some of the code and mask the replay timer timeout of AER
for the GL9763e chipset.

Changes in v3 (July. 29, 2025)
* Rebase on latest mmc/next.
* Split patch#2 in V2 into patch#2 and patch#3.
* Patch#1: Correct the wrong parameters in the
           sdhci_gli_mask_replay_timer_timeout() function.
           Add new message to the commit message to explain
           why it has a stable tag.
           Add fixes tag to the commit message.
* Patch#2: Add fixes tag to the commit message.
* Patch#3: Add fixes tag to the commit message.

----------------- original cover letter from v2 -----------------
These patches add a sdhci_gli_mask_replay_timer_timeout() function
to simplify some of the code and mask the replay timer timeout of AER
for the GL9763e chipset.

Changes in v2 (July. 25, 2025)
* Rebase on latest mmc/next.
* Patch#1: Add a sdhci_gli_mask_replay_timer_timeout() function
           to simplify some of the code.
* Patch#2: Mask replay timer timeout of AER for the GL9763e.
* Patch#2: Rename the gli_set_gl9763e() to gl9763e_hw_setting()
           for consistency.

----------------- original cover letter from v1 -----------------
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.

Changes in v1 (July. 16, 2025)
* Rebase on latest mmc/next.
* Mask replay timer timeout of AER for the GL9763e.

Victor Shih (3):
  mmc: sdhci-pci-gli: Add a new function to simplify the code
  mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for
    consistency
  mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER

 drivers/mmc/host/sdhci-pci-gli.c | 37 ++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 16 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH V4 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code
  2025-07-31  6:57 [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
@ 2025-07-31  6:57 ` Victor Shih
  2025-07-31  6:57 ` [PATCH V4 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Victor Shih @ 2025-07-31  6:57 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
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);
 }
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V4 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency
  2025-07-31  6:57 [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
  2025-07-31  6:57 ` [PATCH V4 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih
@ 2025-07-31  6:57 ` Victor Shih
  2025-07-31  6:57 ` [PATCH V4 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih
  2025-08-14 14:11 ` [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
  3 siblings, 0 replies; 6+ messages in thread
From: Victor Shih @ 2025-07-31  6:57 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, 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
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
---
 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] 6+ messages in thread

* [PATCH V4 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER
  2025-07-31  6:57 [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
  2025-07-31  6:57 ` [PATCH V4 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih
  2025-07-31  6:57 ` [PATCH V4 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih
@ 2025-07-31  6:57 ` Victor Shih
  2025-08-14 14:11 ` [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
  3 siblings, 0 replies; 6+ messages in thread
From: Victor Shih @ 2025-07-31  6:57 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
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);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e
  2025-07-31  6:57 [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
                   ` (2 preceding siblings ...)
  2025-07-31  6:57 ` [PATCH V4 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih
@ 2025-08-14 14:11 ` Victor Shih
  2025-08-18 10:54   ` Ulf Hansson
  3 siblings, 1 reply; 6+ messages in thread
From: Victor Shih @ 2025-08-14 14:11 UTC (permalink / raw)
  To: ulf.hansson, adrian.hunter
  Cc: linux-mmc, linux-kernel, benchuanggli, ben.chuang, HL.Liu,
	Victor Shih

Hi, Ulf

I'm embarrassed to bother you, but could you help to  please review
this series of patches?
If there are any parts that need to be modified, please let me know.

Thanks, Victor Shih


On Thu, Jul 31, 2025 at 2:57 PM Victor Shih <victorshihgli@gmail.com> wrote:
>
> From: Victor Shih <victor.shih@genesyslogic.com.tw>
>
> These patches add a sdhci_gli_mask_replay_timer_timeout() function
> to simplify some of the code and mask the replay timer timeout of AER
> for the GL9763e chipset.
>
> Changes in v4 (July. 31, 2025)
> * Rebase on latest mmc/next.
> * Patch#2: Add new message to the commit message to explain
>            why it has a stable tag.
>
> ----------------- original cover letter from v3 -----------------
> These patches add a sdhci_gli_mask_replay_timer_timeout() function
> to simplify some of the code and mask the replay timer timeout of AER
> for the GL9763e chipset.
>
> Changes in v3 (July. 29, 2025)
> * Rebase on latest mmc/next.
> * Split patch#2 in V2 into patch#2 and patch#3.
> * Patch#1: Correct the wrong parameters in the
>            sdhci_gli_mask_replay_timer_timeout() function.
>            Add new message to the commit message to explain
>            why it has a stable tag.
>            Add fixes tag to the commit message.
> * Patch#2: Add fixes tag to the commit message.
> * Patch#3: Add fixes tag to the commit message.
>
> ----------------- original cover letter from v2 -----------------
> These patches add a sdhci_gli_mask_replay_timer_timeout() function
> to simplify some of the code and mask the replay timer timeout of AER
> for the GL9763e chipset.
>
> Changes in v2 (July. 25, 2025)
> * Rebase on latest mmc/next.
> * Patch#1: Add a sdhci_gli_mask_replay_timer_timeout() function
>            to simplify some of the code.
> * Patch#2: Mask replay timer timeout of AER for the GL9763e.
> * Patch#2: Rename the gli_set_gl9763e() to gl9763e_hw_setting()
>            for consistency.
>
> ----------------- original cover letter from v1 -----------------
> 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.
>
> Changes in v1 (July. 16, 2025)
> * Rebase on latest mmc/next.
> * Mask replay timer timeout of AER for the GL9763e.
>
> Victor Shih (3):
>   mmc: sdhci-pci-gli: Add a new function to simplify the code
>   mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for
>     consistency
>   mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER
>
>  drivers/mmc/host/sdhci-pci-gli.c | 37 ++++++++++++++++++--------------
>  1 file changed, 21 insertions(+), 16 deletions(-)
>
> --
> 2.43.0
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e
  2025-08-14 14:11 ` [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
@ 2025-08-18 10:54   ` Ulf Hansson
  0 siblings, 0 replies; 6+ messages in thread
From: Ulf Hansson @ 2025-08-18 10:54 UTC (permalink / raw)
  To: Victor Shih
  Cc: adrian.hunter, linux-mmc, linux-kernel, benchuanggli, ben.chuang,
	HL.Liu, Victor Shih

On Thu, 14 Aug 2025 at 16:11, Victor Shih <victorshihgli@gmail.com> wrote:
>
> Hi, Ulf
>
> I'm embarrassed to bother you, but could you help to  please review
> this series of patches?
> If there are any parts that need to be modified, please let me know.

No worries for pinging me, I have been off for a while and catching up
on everything.

The series looks great and I have applied it for fixes, thanks!

Kind regards
Uffe


>
> Thanks, Victor Shih
>
>
> On Thu, Jul 31, 2025 at 2:57 PM Victor Shih <victorshihgli@gmail.com> wrote:
> >
> > From: Victor Shih <victor.shih@genesyslogic.com.tw>
> >
> > These patches add a sdhci_gli_mask_replay_timer_timeout() function
> > to simplify some of the code and mask the replay timer timeout of AER
> > for the GL9763e chipset.
> >
> > Changes in v4 (July. 31, 2025)
> > * Rebase on latest mmc/next.
> > * Patch#2: Add new message to the commit message to explain
> >            why it has a stable tag.
> >
> > ----------------- original cover letter from v3 -----------------
> > These patches add a sdhci_gli_mask_replay_timer_timeout() function
> > to simplify some of the code and mask the replay timer timeout of AER
> > for the GL9763e chipset.
> >
> > Changes in v3 (July. 29, 2025)
> > * Rebase on latest mmc/next.
> > * Split patch#2 in V2 into patch#2 and patch#3.
> > * Patch#1: Correct the wrong parameters in the
> >            sdhci_gli_mask_replay_timer_timeout() function.
> >            Add new message to the commit message to explain
> >            why it has a stable tag.
> >            Add fixes tag to the commit message.
> > * Patch#2: Add fixes tag to the commit message.
> > * Patch#3: Add fixes tag to the commit message.
> >
> > ----------------- original cover letter from v2 -----------------
> > These patches add a sdhci_gli_mask_replay_timer_timeout() function
> > to simplify some of the code and mask the replay timer timeout of AER
> > for the GL9763e chipset.
> >
> > Changes in v2 (July. 25, 2025)
> > * Rebase on latest mmc/next.
> > * Patch#1: Add a sdhci_gli_mask_replay_timer_timeout() function
> >            to simplify some of the code.
> > * Patch#2: Mask replay timer timeout of AER for the GL9763e.
> > * Patch#2: Rename the gli_set_gl9763e() to gl9763e_hw_setting()
> >            for consistency.
> >
> > ----------------- original cover letter from v1 -----------------
> > 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.
> >
> > Changes in v1 (July. 16, 2025)
> > * Rebase on latest mmc/next.
> > * Mask replay timer timeout of AER for the GL9763e.
> >
> > Victor Shih (3):
> >   mmc: sdhci-pci-gli: Add a new function to simplify the code
> >   mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for
> >     consistency
> >   mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER
> >
> >  drivers/mmc/host/sdhci-pci-gli.c | 37 ++++++++++++++++++--------------
> >  1 file changed, 21 insertions(+), 16 deletions(-)
> >
> > --
> > 2.43.0
> >

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-08-18 10:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-31  6:57 [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
2025-07-31  6:57 ` [PATCH V4 1/3] mmc: sdhci-pci-gli: Add a new function to simplify the code Victor Shih
2025-07-31  6:57 ` [PATCH V4 2/3] mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency Victor Shih
2025-07-31  6:57 ` [PATCH V4 3/3] mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER Victor Shih
2025-08-14 14:11 ` [PATCH V4 0/3] Mask the replay timer timeout of AER for GL9763e Victor Shih
2025-08-18 10:54   ` Ulf Hansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).