Linux MultiMedia Card development
 help / color / mirror / Atom feed
* [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
       [not found] <CGME20251209064525epcas5p4904259a2a7fb971c077bfa03acce8c79@epcas5p4.samsung.com>
@ 2025-12-09  6:49 ` ping.gao
  2025-12-09  7:03   ` Shawn Lin
                     ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: ping.gao @ 2025-12-09  6:49 UTC (permalink / raw)
  To: jh80.chung, ulf.hansson, linux-mmc, linux-kernel; +Cc: ping.gao

Use vendor drv function to let other vendor can add some vendor function
before and after request

Signed-off-by: ping.gao <ping.gao@samsung.com>
---
 drivers/mmc/host/dw_mmc.c | 7 ++++++-
 drivers/mmc/host/dw_mmc.h | 2 ++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index c5db92bbb094..5f1353b7f8d6 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1416,6 +1416,7 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
 	struct dw_mci_slot *slot = mmc_priv(mmc);
 	struct dw_mci *host = slot->host;
+	const struct dw_mci_drv_data *drv_data = host->drv_data;
 
 	WARN_ON(slot->mrq);
 
@@ -1430,7 +1431,8 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 		mmc_request_done(mmc, mrq);
 		return;
 	}
-
+	if (drv_data && drv_data->pre_request)
+		drv_data->pre_request(host);
 	spin_lock_bh(&host->lock);
 
 	dw_mci_queue_request(host, slot, mrq);
@@ -1897,6 +1899,7 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
 {
 	struct dw_mci_slot *slot;
 	struct mmc_host	*prev_mmc = host->slot->mmc;
+	const struct dw_mci_drv_data *drv_data = host->drv_dat
 
 	WARN_ON(host->cmd || host->data);
 
@@ -1921,6 +1924,8 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
 
 	spin_unlock(&host->lock);
 	mmc_request_done(prev_mmc, mrq);
+	if (drv_data && drv_data->post_request_end)
+		drv_data->post_request_end(host);
 	spin_lock(&host->lock);
 }
 
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 648b4a5641bf..6c258e0865e7 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -618,5 +618,7 @@ struct dw_mci_drv_data {
 					  unsigned int timeout_ns);
 	u32		(*get_drto_clks)(struct dw_mci *host);
 	void		(*hw_reset)(struct dw_mci *host);
+	void		(*pre_request)(struct dw_mci *host);
+	void		(*post_request_end)(struct dw_mci *host);
 };
 #endif /* _DW_MMC_H_ */
-- 
2.50.1


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

* Re: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
  2025-12-09  6:49 ` [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper ping.gao
@ 2025-12-09  7:03   ` Shawn Lin
  2025-12-09  9:46   ` Christoph Hellwig
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Shawn Lin @ 2025-12-09  7:03 UTC (permalink / raw)
  To: ping.gao; +Cc: shawn.lin, jh80.chung, linux-mmc, ulf.hansson, linux-kernel

On 2025/12/09 Tuesday 14:49, ping.gao wrote:
> Use vendor drv function to let other vendor can add some vendor function
> before and after request
> 

Without a real user, these are dead code.
Please add a driver using it, and explain how the variant driver use it.

> Signed-off-by: ping.gao <ping.gao@samsung.com>
> ---
>   drivers/mmc/host/dw_mmc.c | 7 ++++++-
>   drivers/mmc/host/dw_mmc.h | 2 ++
>   2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index c5db92bbb094..5f1353b7f8d6 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1416,6 +1416,7 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
>   {
>   	struct dw_mci_slot *slot = mmc_priv(mmc);
>   	struct dw_mci *host = slot->host;
> +	const struct dw_mci_drv_data *drv_data = host->drv_data;
>   
>   	WARN_ON(slot->mrq);
>   
> @@ -1430,7 +1431,8 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
>   		mmc_request_done(mmc, mrq);
>   		return;
>   	}
> -
> +	if (drv_data && drv_data->pre_request)
> +		drv_data->pre_request(host);
>   	spin_lock_bh(&host->lock);
>   
>   	dw_mci_queue_request(host, slot, mrq);
> @@ -1897,6 +1899,7 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
>   {
>   	struct dw_mci_slot *slot;
>   	struct mmc_host	*prev_mmc = host->slot->mmc;
> +	const struct dw_mci_drv_data *drv_data = host->drv_dat
>   
>   	WARN_ON(host->cmd || host->data);
>   
> @@ -1921,6 +1924,8 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
>   
>   	spin_unlock(&host->lock);
>   	mmc_request_done(prev_mmc, mrq);
> +	if (drv_data && drv_data->post_request_end)
> +		drv_data->post_request_end(host);
>   	spin_lock(&host->lock);
>   }
>   
> diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
> index 648b4a5641bf..6c258e0865e7 100644
> --- a/drivers/mmc/host/dw_mmc.h
> +++ b/drivers/mmc/host/dw_mmc.h
> @@ -618,5 +618,7 @@ struct dw_mci_drv_data {
>   					  unsigned int timeout_ns);
>   	u32		(*get_drto_clks)(struct dw_mci *host);
>   	void		(*hw_reset)(struct dw_mci *host);
> +	void		(*pre_request)(struct dw_mci *host);
> +	void		(*post_request_end)(struct dw_mci *host);
>   };
>   #endif /* _DW_MMC_H_ */


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

* Re: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
  2025-12-09  6:49 ` [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper ping.gao
  2025-12-09  7:03   ` Shawn Lin
@ 2025-12-09  9:46   ` Christoph Hellwig
  2025-12-09 18:05   ` kernel test robot
  2025-12-09 18:57   ` kernel test robot
  3 siblings, 0 replies; 7+ messages in thread
From: Christoph Hellwig @ 2025-12-09  9:46 UTC (permalink / raw)
  To: ping.gao; +Cc: jh80.chung, ulf.hansson, linux-mmc, linux-kernel

On Tue, Dec 09, 2025 at 02:49:10PM +0800, ping.gao wrote:
> Use vendor drv function to let other vendor can add some vendor function

Why would the vendor matter?

And where is the user of this?


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

* Re: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
  2025-12-09  6:49 ` [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper ping.gao
  2025-12-09  7:03   ` Shawn Lin
  2025-12-09  9:46   ` Christoph Hellwig
@ 2025-12-09 18:05   ` kernel test robot
  2025-12-09 18:57   ` kernel test robot
  3 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2025-12-09 18:05 UTC (permalink / raw)
  To: ping.gao, jh80.chung, ulf.hansson, linux-mmc, linux-kernel
  Cc: oe-kbuild-all, ping.gao

Hi ping.gao,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on ulf-hansson-mmc-mirror/next v6.18 next-20251209]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/ping-gao/mmc-dw_mmc-Use-pre_request-post_request_end-helper/20251209-144626
base:   linus/master
patch link:    https://lore.kernel.org/r/20251209064910.3643039-1-ping.gao%40samsung.com
patch subject: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
config: csky-randconfig-002-20251209 (https://download.01.org/0day-ci/archive/20251210/202512100130.DkmKHepR-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251210/202512100130.DkmKHepR-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512100130.DkmKHepR-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/mmc/host/dw_mmc.c: In function 'dw_mci_request_end':
>> drivers/mmc/host/dw_mmc.c:1902:56: error: 'struct dw_mci' has no member named 'drv_dat'; did you mean 'drv_data'?
    1902 |         const struct dw_mci_drv_data *drv_data = host->drv_dat
         |                                                        ^~~~~~~
         |                                                        drv_data
   In file included from arch/csky/include/asm/bug.h:18,
                    from include/linux/bug.h:5,
                    from include/linux/random.h:6,
                    from include/linux/nodemask.h:94,
                    from include/linux/list_lru.h:12,
                    from include/linux/fs/super_types.h:7,
                    from include/linux/fs/super.h:5,
                    from include/linux/fs.h:5,
                    from include/linux/highmem.h:5,
                    from include/linux/bvec.h:10,
                    from include/linux/blk_types.h:10,
                    from include/linux/blkdev.h:9,
                    from drivers/mmc/host/dw_mmc.c:10:
>> include/asm-generic/bug.h:154:29: error: expected expression before '{' token
     154 | #define WARN_ON(condition) ({                                           \
         |                             ^
   drivers/mmc/host/dw_mmc.c:1904:9: note: in expansion of macro 'WARN_ON'
    1904 |         WARN_ON(host->cmd || host->data);
         |         ^~~~~~~


vim +1902 drivers/mmc/host/dw_mmc.c

  1895	
  1896	static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
  1897		__releases(&host->lock)
  1898		__acquires(&host->lock)
  1899	{
  1900		struct dw_mci_slot *slot;
  1901		struct mmc_host	*prev_mmc = host->slot->mmc;
> 1902		const struct dw_mci_drv_data *drv_data = host->drv_dat
  1903	
  1904		WARN_ON(host->cmd || host->data);
  1905	
  1906		host->slot->mrq = NULL;
  1907		host->mrq = NULL;
  1908		if (!list_empty(&host->queue)) {
  1909			slot = list_entry(host->queue.next,
  1910					  struct dw_mci_slot, queue_node);
  1911			list_del(&slot->queue_node);
  1912			dev_vdbg(host->dev, "list not empty: %s is next\n",
  1913				 mmc_hostname(slot->mmc));
  1914			host->state = STATE_SENDING_CMD;
  1915			dw_mci_start_request(host, slot);
  1916		} else {
  1917			dev_vdbg(host->dev, "list empty\n");
  1918	
  1919			if (host->state == STATE_SENDING_CMD11)
  1920				host->state = STATE_WAITING_CMD11_DONE;
  1921			else
  1922				host->state = STATE_IDLE;
  1923		}
  1924	
  1925		spin_unlock(&host->lock);
  1926		mmc_request_done(prev_mmc, mrq);
  1927		if (drv_data && drv_data->post_request_end)
  1928			drv_data->post_request_end(host);
  1929		spin_lock(&host->lock);
  1930	}
  1931	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* Re: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
  2025-12-09  6:49 ` [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper ping.gao
                     ` (2 preceding siblings ...)
  2025-12-09 18:05   ` kernel test robot
@ 2025-12-09 18:57   ` kernel test robot
  3 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2025-12-09 18:57 UTC (permalink / raw)
  To: ping.gao, jh80.chung, ulf.hansson, linux-mmc, linux-kernel
  Cc: llvm, oe-kbuild-all, ping.gao

Hi ping.gao,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on ulf-hansson-mmc-mirror/next v6.18 next-20251209]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/ping-gao/mmc-dw_mmc-Use-pre_request-post_request_end-helper/20251209-144626
base:   linus/master
patch link:    https://lore.kernel.org/r/20251209064910.3643039-1-ping.gao%40samsung.com
patch subject: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
config: riscv-defconfig (https://download.01.org/0day-ci/archive/20251210/202512100224.drEVwdNL-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 6ec8c4351cfc1d0627d1633b02ea787bd29c77d8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251210/202512100224.drEVwdNL-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512100224.drEVwdNL-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/mmc/host/dw_mmc.c:1902:49: error: no member named 'drv_dat' in 'struct dw_mci'
    1902 |         const struct dw_mci_drv_data *drv_data = host->drv_dat
         |                                                  ~~~~  ^
>> drivers/mmc/host/dw_mmc.c:1904:2: error: expected expression
    1904 |         WARN_ON(host->cmd || host->data);
         |         ^
   include/asm-generic/bug.h:109:29: note: expanded from macro 'WARN_ON'
     109 | #define WARN_ON(condition) ({                                           \
         |                             ^
   2 errors generated.


vim +1902 drivers/mmc/host/dw_mmc.c

  1895	
  1896	static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
  1897		__releases(&host->lock)
  1898		__acquires(&host->lock)
  1899	{
  1900		struct dw_mci_slot *slot;
  1901		struct mmc_host	*prev_mmc = host->slot->mmc;
> 1902		const struct dw_mci_drv_data *drv_data = host->drv_dat
  1903	
> 1904		WARN_ON(host->cmd || host->data);
  1905	
  1906		host->slot->mrq = NULL;
  1907		host->mrq = NULL;
  1908		if (!list_empty(&host->queue)) {
  1909			slot = list_entry(host->queue.next,
  1910					  struct dw_mci_slot, queue_node);
  1911			list_del(&slot->queue_node);
  1912			dev_vdbg(host->dev, "list not empty: %s is next\n",
  1913				 mmc_hostname(slot->mmc));
  1914			host->state = STATE_SENDING_CMD;
  1915			dw_mci_start_request(host, slot);
  1916		} else {
  1917			dev_vdbg(host->dev, "list empty\n");
  1918	
  1919			if (host->state == STATE_SENDING_CMD11)
  1920				host->state = STATE_WAITING_CMD11_DONE;
  1921			else
  1922				host->state = STATE_IDLE;
  1923		}
  1924	
  1925		spin_unlock(&host->lock);
  1926		mmc_request_done(prev_mmc, mrq);
  1927		if (drv_data && drv_data->post_request_end)
  1928			drv_data->post_request_end(host);
  1929		spin_lock(&host->lock);
  1930	}
  1931	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
       [not found] <CGME20251210022622epcas5p3faca823fc4bf50267e4b660d4776cb1d@epcas5p3.samsung.com>
@ 2025-12-10  2:30 ` ping.gao
  2025-12-10 10:45   ` Ulf Hansson
  0 siblings, 1 reply; 7+ messages in thread
From: ping.gao @ 2025-12-10  2:30 UTC (permalink / raw)
  To: jh80.chung, ulf.hansson, linux-mmc, linux-kernel; +Cc: ping.gao

Use vendor drv function to let other vendor can add some vendor function
before and after request

Signed-off-by: ping.gao <ping.gao@samsung.com>
---
 drivers/mmc/host/dw_mmc.c | 7 ++++++-
 drivers/mmc/host/dw_mmc.h | 2 ++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index c5db92bbb094..04fb92579509 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1416,6 +1416,7 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
 	struct dw_mci_slot *slot = mmc_priv(mmc);
 	struct dw_mci *host = slot->host;
+	const struct dw_mci_drv_data *drv_data = host->drv_data;
 
 	WARN_ON(slot->mrq);
 
@@ -1430,7 +1431,8 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 		mmc_request_done(mmc, mrq);
 		return;
 	}
-
+	if (drv_data && drv_data->pre_request)
+		drv_data->pre_request(host);
 	spin_lock_bh(&host->lock);
 
 	dw_mci_queue_request(host, slot, mrq);
@@ -1897,6 +1899,7 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
 {
 	struct dw_mci_slot *slot;
 	struct mmc_host	*prev_mmc = host->slot->mmc;
+	const struct dw_mci_drv_data *drv_data = host->drv_data;
 
 	WARN_ON(host->cmd || host->data);
 
@@ -1921,6 +1924,8 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
 
 	spin_unlock(&host->lock);
 	mmc_request_done(prev_mmc, mrq);
+	if (drv_data && drv_data->post_request_end)
+		drv_data->post_request_end(host);
 	spin_lock(&host->lock);
 }
 
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 648b4a5641bf..6c258e0865e7 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -618,5 +618,7 @@ struct dw_mci_drv_data {
 					  unsigned int timeout_ns);
 	u32		(*get_drto_clks)(struct dw_mci *host);
 	void		(*hw_reset)(struct dw_mci *host);
+	void		(*pre_request)(struct dw_mci *host);
+	void		(*post_request_end)(struct dw_mci *host);
 };
 #endif /* _DW_MMC_H_ */
-- 
2.50.1


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

* Re: [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper
  2025-12-10  2:30 ` ping.gao
@ 2025-12-10 10:45   ` Ulf Hansson
  0 siblings, 0 replies; 7+ messages in thread
From: Ulf Hansson @ 2025-12-10 10:45 UTC (permalink / raw)
  To: ping.gao; +Cc: jh80.chung, linux-mmc, linux-kernel

On Wed, 10 Dec 2025 at 03:26, ping.gao <ping.gao@samsung.com> wrote:
>
> Use vendor drv function to let other vendor can add some vendor function
> before and after request
>
> Signed-off-by: ping.gao <ping.gao@samsung.com>
> ---
>  drivers/mmc/host/dw_mmc.c | 7 ++++++-
>  drivers/mmc/host/dw_mmc.h | 2 ++
>  2 files changed, 8 insertions(+), 1 deletion(-)

In general we don't add code to the kernel that isn't being used, for
several reasons.

If you want this to be applied, you also need to provide a user of
these callbacks. In this way, the code will be used, but it also
allows us to understand if the callbacks are the correct way to
implement what you need.

Kind regards
Uffe

>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index c5db92bbb094..04fb92579509 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1416,6 +1416,7 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
>  {
>         struct dw_mci_slot *slot = mmc_priv(mmc);
>         struct dw_mci *host = slot->host;
> +       const struct dw_mci_drv_data *drv_data = host->drv_data;
>
>         WARN_ON(slot->mrq);
>
> @@ -1430,7 +1431,8 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
>                 mmc_request_done(mmc, mrq);
>                 return;
>         }
> -
> +       if (drv_data && drv_data->pre_request)
> +               drv_data->pre_request(host);
>         spin_lock_bh(&host->lock);
>
>         dw_mci_queue_request(host, slot, mrq);
> @@ -1897,6 +1899,7 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
>  {
>         struct dw_mci_slot *slot;
>         struct mmc_host *prev_mmc = host->slot->mmc;
> +       const struct dw_mci_drv_data *drv_data = host->drv_data;
>
>         WARN_ON(host->cmd || host->data);
>
> @@ -1921,6 +1924,8 @@ static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq)
>
>         spin_unlock(&host->lock);
>         mmc_request_done(prev_mmc, mrq);
> +       if (drv_data && drv_data->post_request_end)
> +               drv_data->post_request_end(host);
>         spin_lock(&host->lock);
>  }
>
> diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
> index 648b4a5641bf..6c258e0865e7 100644
> --- a/drivers/mmc/host/dw_mmc.h
> +++ b/drivers/mmc/host/dw_mmc.h
> @@ -618,5 +618,7 @@ struct dw_mci_drv_data {
>                                           unsigned int timeout_ns);
>         u32             (*get_drto_clks)(struct dw_mci *host);
>         void            (*hw_reset)(struct dw_mci *host);
> +       void            (*pre_request)(struct dw_mci *host);
> +       void            (*post_request_end)(struct dw_mci *host);
>  };
>  #endif /* _DW_MMC_H_ */
> --
> 2.50.1
>

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

end of thread, other threads:[~2025-12-10 10:45 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CGME20251209064525epcas5p4904259a2a7fb971c077bfa03acce8c79@epcas5p4.samsung.com>
2025-12-09  6:49 ` [PATCH] mmc: dw_mmc: Use pre_request & post_request_end helper ping.gao
2025-12-09  7:03   ` Shawn Lin
2025-12-09  9:46   ` Christoph Hellwig
2025-12-09 18:05   ` kernel test robot
2025-12-09 18:57   ` kernel test robot
     [not found] <CGME20251210022622epcas5p3faca823fc4bf50267e4b660d4776cb1d@epcas5p3.samsung.com>
2025-12-10  2:30 ` ping.gao
2025-12-10 10:45   ` Ulf Hansson

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