public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
@ 2024-03-16 20:13 Marek Vasut
  2024-04-23 23:17 ` Marek Vasut
  0 siblings, 1 reply; 7+ messages in thread
From: Marek Vasut @ 2024-03-16 20:13 UTC (permalink / raw)
  To: u-boot; +Cc: Marek Vasut, Jaehoon Chung, Peng Fan, Simon Glass

In case the cyclic framework is enabled, poll the card detect of already
initialized cards and deinitialize them in case they are removed. Since
the card initialization is a longer process and card initialization is
done on first access to an uninitialized card anyway, avoid initializing
newly detected uninitialized cards in the cyclic callback.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
---
V2: Move the cyclic registration/unregistration into mmc init/deinit
V3: Replace if (CONFIG_IS_ENABLED(CYCLIC)...) with #if as the former
    does not work with structure members
V4: Stuff the code with CONFIG_IS_ENABLED() variants to avoid #ifdefs
---
 drivers/mmc/mmc.c | 32 ++++++++++++++++++++++++++++++++
 include/mmc.h     |  3 +++
 2 files changed, 35 insertions(+)

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index eb5010c1465..e90ffd5dcd1 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -2985,6 +2985,20 @@ static int mmc_complete_init(struct mmc *mmc)
 	return err;
 }
 
+static void __maybe_unused mmc_cyclic_cd_poll(void *ctx)
+{
+	struct mmc *m = ctx;
+
+	if (!m->has_init)
+		return;
+
+	if (mmc_getcd(m))
+		return;
+
+	mmc_deinit(m);
+	m->has_init = 0;
+}
+
 int mmc_init(struct mmc *mmc)
 {
 	int err = 0;
@@ -3007,6 +3021,19 @@ int mmc_init(struct mmc *mmc)
 	if (err)
 		pr_info("%s: %d, time %lu\n", __func__, err, get_timer(start));
 
+	if (CONFIG_IS_ENABLED(CYCLIC, (!mmc->cyclic), (NULL))) {
+		/* Register cyclic function for card detect polling */
+		CONFIG_IS_ENABLED(CYCLIC,
+			(mmc->cyclic = cyclic_register(mmc_cyclic_cd_poll,
+						       100 * 1000,
+						       mmc->cfg->name, mmc)));
+		if (CONFIG_IS_ENABLED(CYCLIC, (!mmc->cyclic), (NULL))) {
+			printf("Failed to register %s CD poll function\n",
+			       mmc->cfg->name);
+			err = -EINVAL;
+		}
+	}
+
 	return err;
 }
 
@@ -3014,6 +3041,11 @@ int mmc_deinit(struct mmc *mmc)
 {
 	u32 caps_filtered;
 
+	if (CONFIG_IS_ENABLED(CYCLIC, (mmc->cyclic), (NULL))) {
+		cyclic_unregister(CONFIG_IS_ENABLED(CYCLIC, (mmc->cyclic), NULL));
+		CONFIG_IS_ENABLED(CYCLIC, (mmc->cyclic = NULL));
+	}
+
 	if (!CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) &&
 	    !CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) &&
 	    !CONFIG_IS_ENABLED(MMC_HS400_SUPPORT))
diff --git a/include/mmc.h b/include/mmc.h
index 1022db3ffa7..706566fa1ad 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -14,6 +14,7 @@
 #include <linux/sizes.h>
 #include <linux/compiler.h>
 #include <linux/dma-direction.h>
+#include <cyclic.h>
 #include <part.h>
 
 struct bd_info;
@@ -739,6 +740,8 @@ struct mmc {
 	u8 hs400_tuning;
 
 	enum bus_mode user_speed_mode; /* input speed mode from user */
+
+	CONFIG_IS_ENABLED(CYCLIC, (struct cyclic_info *cyclic));
 };
 
 #if CONFIG_IS_ENABLED(DM_MMC)
-- 
2.43.0


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

* Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
  2024-03-16 20:13 [PATCH v4] mmc: Poll CD in case cyclic framework is enabled Marek Vasut
@ 2024-04-23 23:17 ` Marek Vasut
  2024-04-26  6:27   ` Jaehoon Chung
  0 siblings, 1 reply; 7+ messages in thread
From: Marek Vasut @ 2024-04-23 23:17 UTC (permalink / raw)
  To: u-boot, Jaehoon Chung; +Cc: Peng Fan, Simon Glass

On 3/16/24 9:13 PM, Marek Vasut wrote:
> In case the cyclic framework is enabled, poll the card detect of already
> initialized cards and deinitialize them in case they are removed. Since
> the card initialization is a longer process and card initialization is
> done on first access to an uninitialized card anyway, avoid initializing
> newly detected uninitialized cards in the cyclic callback.

Any input on this ?

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

* RE: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
  2024-04-23 23:17 ` Marek Vasut
@ 2024-04-26  6:27   ` Jaehoon Chung
  2024-04-26 11:41     ` Marek Vasut
  0 siblings, 1 reply; 7+ messages in thread
From: Jaehoon Chung @ 2024-04-26  6:27 UTC (permalink / raw)
  To: 'Marek Vasut', u-boot; +Cc: 'Peng Fan', 'Simon Glass'

Dear Marek,

> -----Original Message-----
> From: Marek Vasut <marek.vasut@mailbox.org>
> Sent: Wednesday, April 24, 2024 8:18 AM
> To: u-boot@lists.denx.de; Jaehoon Chung <jh80.chung@samsung.com>
> Cc: Peng Fan <peng.fan@nxp.com>; Simon Glass <sjg@chromium.org>
> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
>
> On 3/16/24 9:13 PM, Marek Vasut wrote:
> > In case the cyclic framework is enabled, poll the card detect of already
> > initialized cards and deinitialize them in case they are removed. Since
> > the card initialization is a longer process and card initialization is
> > done on first access to an uninitialized card anyway, avoid initializing
> > newly detected uninitialized cards in the cyclic callback.
>
> Any input on this ?

When I have applied your patch from patchwork, it didn't apply directly.
If you're ok, I will apply after touch your patch. Is it ok?

Best Regards,
Jaehoon Chung



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

* Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
  2024-04-26  6:27   ` Jaehoon Chung
@ 2024-04-26 11:41     ` Marek Vasut
  2024-04-29 22:36       ` Jaehoon Chung
  0 siblings, 1 reply; 7+ messages in thread
From: Marek Vasut @ 2024-04-26 11:41 UTC (permalink / raw)
  To: Jaehoon Chung, u-boot; +Cc: 'Peng Fan', 'Simon Glass'

On 4/26/24 8:27 AM, Jaehoon Chung wrote:
> Dear Marek,
> 
>> -----Original Message-----
>> From: Marek Vasut <marek.vasut@mailbox.org>
>> Sent: Wednesday, April 24, 2024 8:18 AM
>> To: u-boot@lists.denx.de; Jaehoon Chung <jh80.chung@samsung.com>
>> Cc: Peng Fan <peng.fan@nxp.com>; Simon Glass <sjg@chromium.org>
>> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
>>
>> On 3/16/24 9:13 PM, Marek Vasut wrote:
>>> In case the cyclic framework is enabled, poll the card detect of already
>>> initialized cards and deinitialize them in case they are removed. Since
>>> the card initialization is a longer process and card initialization is
>>> done on first access to an uninitialized card anyway, avoid initializing
>>> newly detected uninitialized cards in the cyclic callback.
>>
>> Any input on this ?
> 
> When I have applied your patch from patchwork, it didn't apply directly.
> If you're ok, I will apply after touch your patch. Is it ok?

Sure.

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

* RE: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
  2024-04-26 11:41     ` Marek Vasut
@ 2024-04-29 22:36       ` Jaehoon Chung
  2024-04-30  1:48         ` Marek Vasut
  0 siblings, 1 reply; 7+ messages in thread
From: Jaehoon Chung @ 2024-04-29 22:36 UTC (permalink / raw)
  To: 'Marek Vasut', u-boot; +Cc: 'Peng Fan', 'Simon Glass'



> -----Original Message-----
> From: Marek Vasut <marek.vasut@mailbox.org>
> Sent: Friday, April 26, 2024 8:41 PM
> To: Jaehoon Chung <jh80.chung@samsung.com>; u-boot@lists.denx.de
> Cc: 'Peng Fan' <peng.fan@nxp.com>; 'Simon Glass' <sjg@chromium.org>
> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
>
> On 4/26/24 8:27 AM, Jaehoon Chung wrote:
> > Dear Marek,
> >
> >> -----Original Message-----
> >> From: Marek Vasut <marek.vasut@mailbox.org>
> >> Sent: Wednesday, April 24, 2024 8:18 AM
> >> To: u-boot@lists.denx.de; Jaehoon Chung <jh80.chung@samsung.com>
> >> Cc: Peng Fan <peng.fan@nxp.com>; Simon Glass <sjg@chromium.org>
> >> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
> >>
> >> On 3/16/24 9:13 PM, Marek Vasut wrote:
> >>> In case the cyclic framework is enabled, poll the card detect of already
> >>> initialized cards and deinitialize them in case they are removed. Since
> >>> the card initialization is a longer process and card initialization is
> >>> done on first access to an uninitialized card anyway, avoid initializing
> >>> newly detected uninitialized cards in the cyclic callback.
> >>
> >> Any input on this ?
> >
> > When I have applied your patch from patchwork, it didn't apply directly.
> > If you're ok, I will apply after touch your patch. Is it ok?
>
> Sure.

After touching your patch, I will inform again to you.

Best Regards,
Jaehoon Chung



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

* Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
  2024-04-29 22:36       ` Jaehoon Chung
@ 2024-04-30  1:48         ` Marek Vasut
  2024-09-05 18:32           ` Marek Vasut
  0 siblings, 1 reply; 7+ messages in thread
From: Marek Vasut @ 2024-04-30  1:48 UTC (permalink / raw)
  To: Jaehoon Chung, u-boot; +Cc: 'Peng Fan', 'Simon Glass'

On 4/30/24 12:36 AM, Jaehoon Chung wrote:
> 
> 
>> -----Original Message-----
>> From: Marek Vasut <marek.vasut@mailbox.org>
>> Sent: Friday, April 26, 2024 8:41 PM
>> To: Jaehoon Chung <jh80.chung@samsung.com>; u-boot@lists.denx.de
>> Cc: 'Peng Fan' <peng.fan@nxp.com>; 'Simon Glass' <sjg@chromium.org>
>> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
>>
>> On 4/26/24 8:27 AM, Jaehoon Chung wrote:
>>> Dear Marek,
>>>
>>>> -----Original Message-----
>>>> From: Marek Vasut <marek.vasut@mailbox.org>
>>>> Sent: Wednesday, April 24, 2024 8:18 AM
>>>> To: u-boot@lists.denx.de; Jaehoon Chung <jh80.chung@samsung.com>
>>>> Cc: Peng Fan <peng.fan@nxp.com>; Simon Glass <sjg@chromium.org>
>>>> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
>>>>
>>>> On 3/16/24 9:13 PM, Marek Vasut wrote:
>>>>> In case the cyclic framework is enabled, poll the card detect of already
>>>>> initialized cards and deinitialize them in case they are removed. Since
>>>>> the card initialization is a longer process and card initialization is
>>>>> done on first access to an uninitialized card anyway, avoid initializing
>>>>> newly detected uninitialized cards in the cyclic callback.
>>>>
>>>> Any input on this ?
>>>
>>> When I have applied your patch from patchwork, it didn't apply directly.
>>> If you're ok, I will apply after touch your patch. Is it ok?
>>
>> Sure.
> 
> After touching your patch, I will inform again to you.

btw. what is the problem with the patch ?

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

* Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
  2024-04-30  1:48         ` Marek Vasut
@ 2024-09-05 18:32           ` Marek Vasut
  0 siblings, 0 replies; 7+ messages in thread
From: Marek Vasut @ 2024-09-05 18:32 UTC (permalink / raw)
  To: Jaehoon Chung, u-boot, Tom Rini; +Cc: 'Peng Fan', 'Simon Glass'

On 4/30/24 3:48 AM, Marek Vasut wrote:
> On 4/30/24 12:36 AM, Jaehoon Chung wrote:
>>
>>
>>> -----Original Message-----
>>> From: Marek Vasut <marek.vasut@mailbox.org>
>>> Sent: Friday, April 26, 2024 8:41 PM
>>> To: Jaehoon Chung <jh80.chung@samsung.com>; u-boot@lists.denx.de
>>> Cc: 'Peng Fan' <peng.fan@nxp.com>; 'Simon Glass' <sjg@chromium.org>
>>> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is enabled
>>>
>>> On 4/26/24 8:27 AM, Jaehoon Chung wrote:
>>>> Dear Marek,
>>>>
>>>>> -----Original Message-----
>>>>> From: Marek Vasut <marek.vasut@mailbox.org>
>>>>> Sent: Wednesday, April 24, 2024 8:18 AM
>>>>> To: u-boot@lists.denx.de; Jaehoon Chung <jh80.chung@samsung.com>
>>>>> Cc: Peng Fan <peng.fan@nxp.com>; Simon Glass <sjg@chromium.org>
>>>>> Subject: Re: [PATCH v4] mmc: Poll CD in case cyclic framework is 
>>>>> enabled
>>>>>
>>>>> On 3/16/24 9:13 PM, Marek Vasut wrote:
>>>>>> In case the cyclic framework is enabled, poll the card detect of 
>>>>>> already
>>>>>> initialized cards and deinitialize them in case they are removed. 
>>>>>> Since
>>>>>> the card initialization is a longer process and card 
>>>>>> initialization is
>>>>>> done on first access to an uninitialized card anyway, avoid 
>>>>>> initializing
>>>>>> newly detected uninitialized cards in the cyclic callback.
>>>>>
>>>>> Any input on this ?
>>>>
>>>> When I have applied your patch from patchwork, it didn't apply 
>>>> directly.
>>>> If you're ok, I will apply after touch your patch. Is it ok?
>>>
>>> Sure.
>>
>> After touching your patch, I will inform again to you.
> 
> btw. what is the problem with the patch ?

Any news ?

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

end of thread, other threads:[~2024-09-05 18:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-16 20:13 [PATCH v4] mmc: Poll CD in case cyclic framework is enabled Marek Vasut
2024-04-23 23:17 ` Marek Vasut
2024-04-26  6:27   ` Jaehoon Chung
2024-04-26 11:41     ` Marek Vasut
2024-04-29 22:36       ` Jaehoon Chung
2024-04-30  1:48         ` Marek Vasut
2024-09-05 18:32           ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox