[PATCH v1 4/5] mmc: atmel-mci: Incapsulate used to be a platform data into host structure

kernel test robot lkp at intel.com
Wed Apr 17 13:42:07 PDT 2024


Hi Andy,

kernel test robot noticed the following build warnings:

[auto build test WARNING on soc/for-next]
[also build test WARNING on linus/master v6.9-rc4 next-20240417]
[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/Andy-Shevchenko/mmc-atmel-mci-Get-rid-of-platform-data-leftovers/20240418-005915
base:   https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
patch link:    https://lore.kernel.org/r/20240417165708.2965612-5-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v1 4/5] mmc: atmel-mci: Incapsulate used to be a platform data into host structure
config: arm-defconfig (https://download.01.org/0day-ci/archive/20240418/202404180428.bZDYDFAE-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240418/202404180428.bZDYDFAE-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202404180428.bZDYDFAE-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/mmc/host/atmel-mci.c:378: warning: Function parameter or struct member 'pdata' not described in 'atmel_mci'


vim +378 drivers/mmc/host/atmel-mci.c

65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30  245  
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  246  /**
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  247   * struct atmel_mci - MMC controller state shared between all slots
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  248   * @lock: Spinlock protecting the queue and associated data.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  249   * @regs: Pointer to MMIO registers.
796211b7953bd1 Ludovic Desroches  2011-08-11  250   * @sg: Scatterlist entry currently being processed by PIO or PDC code.
f51874b7ec92cb Lee Jones          2020-07-01  251   * @sg_len: Size of the scatterlist
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  252   * @pio_offset: Offset into the current scatterlist entry.
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  253   * @buffer: Buffer used if we don't have the r/w proof capability. We
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  254   *      don't have the time to switch pdc buffers so we have to use only
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  255   *      one buffer for the full transaction.
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  256   * @buf_size: size of the buffer.
f51874b7ec92cb Lee Jones          2020-07-01  257   * @buf_phys_addr: buffer address needed for pdc.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  258   * @cur_slot: The slot which is currently using the controller.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  259   * @mrq: The request currently being processed on @cur_slot,
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  260   *	or NULL if the controller is idle.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  261   * @cmd: The command currently being sent to the card, or NULL.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  262   * @data: The data currently being transferred, or NULL if no data
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  263   *	transfer is in progress.
796211b7953bd1 Ludovic Desroches  2011-08-11  264   * @data_size: just data->blocks * data->blksz.
65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30  265   * @dma: DMA client state.
65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30  266   * @data_chan: DMA channel being used for the current data transfer.
f51874b7ec92cb Lee Jones          2020-07-01  267   * @dma_conf: Configuration for the DMA slave
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  268   * @cmd_status: Snapshot of SR taken upon completion of the current
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  269   *	command. Only valid when EVENT_CMD_COMPLETE is pending.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  270   * @data_status: Snapshot of SR taken upon completion of the current
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  271   *	data transfer. Only valid when EVENT_DATA_COMPLETE or
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  272   *	EVENT_DATA_ERROR is pending.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  273   * @stop_cmdr: Value to be loaded into CMDR when the stop command is
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  274   *	to be sent.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  275   * @tasklet: Tasklet running the request state machine.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  276   * @pending_events: Bitmask of events flagged by the interrupt handler
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  277   *	to be processed by the tasklet.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  278   * @completed_events: Bitmask of events which the state machine has
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  279   *	processed.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  280   * @state: Tasklet state.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  281   * @queue: List of slots waiting for access to the controller.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  282   * @need_clock_update: Update the clock rate before the next request.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  283   * @need_reset: Reset controller before next request.
24011f346471f7 Ludovic Desroches  2012-05-16  284   * @timer: Timer to balance the data timeout error flag which cannot rise.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  285   * @mode_reg: Value of the MR register.
74791a2dc8dc2a Nicolas Ferre      2009-12-14  286   * @cfg_reg: Value of the CFG register.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  287   * @bus_hz: The rate of @mck in Hz. This forms the basis for MMC bus
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  288   *	rate and timeout calculations.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  289   * @mapbase: Physical address of the MMIO registers.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  290   * @mck: The peripheral bus clock hooked up to the MMC controller.
d9faa6e8381c3a Andy Shevchenko    2024-04-17  291   * @dev: Device associated with the MMC controller.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  292   * @slot: Slots sharing this MMC controller.
796211b7953bd1 Ludovic Desroches  2011-08-11  293   * @caps: MCI capabilities depending on MCI version.
796211b7953bd1 Ludovic Desroches  2011-08-11  294   * @prepare_data: function to setup MCI before data transfer which
796211b7953bd1 Ludovic Desroches  2011-08-11  295   * depends on MCI capabilities.
796211b7953bd1 Ludovic Desroches  2011-08-11  296   * @submit_data: function to start data transfer which depends on MCI
796211b7953bd1 Ludovic Desroches  2011-08-11  297   * capabilities.
796211b7953bd1 Ludovic Desroches  2011-08-11  298   * @stop_transfer: function to stop data transfer which depends on MCI
796211b7953bd1 Ludovic Desroches  2011-08-11  299   * capabilities.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  300   *
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  301   * Locking
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  302   * =======
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  303   *
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  304   * @lock is a softirq-safe spinlock protecting @queue as well as
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  305   * @cur_slot, @mrq and @state. These must always be updated
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  306   * at the same time while holding @lock.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  307   *
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  308   * @lock also protects mode_reg and need_clock_update since these are
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  309   * used to synchronize mode register updates with the queue
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  310   * processing.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  311   *
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  312   * The @mrq field of struct atmel_mci_slot is also protected by @lock,
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  313   * and must always be written at the same time as the slot is added to
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  314   * @queue.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  315   *
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  316   * @pending_events and @completed_events are accessed using atomic bit
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  317   * operations, so they don't need any locking.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  318   *
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  319   * None of the fields touched by the interrupt handler need any
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  320   * locking. However, ordering is important: Before EVENT_DATA_ERROR or
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  321   * EVENT_DATA_COMPLETE is set in @pending_events, all data-related
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  322   * interrupts must be disabled and @data_status updated with a
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  323   * snapshot of SR. Similarly, before EVENT_CMD_COMPLETE is set, the
25985edcedea63 Lucas De Marchi    2011-03-30  324   * CMDRDY interrupt must be disabled and @cmd_status updated with a
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  325   * snapshot of SR, and before EVENT_XFER_COMPLETE can be set, the
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  326   * bytes_xfered field of @data must be written. This is ensured by
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  327   * using barriers.
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  328   */
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  329  struct atmel_mci {
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  330  	spinlock_t		lock;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  331  	void __iomem		*regs;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  332  
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  333  	struct scatterlist	*sg;
bdbc5d0c60f3e9 Terry Barnaby      2013-04-08  334  	unsigned int		sg_len;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  335  	unsigned int		pio_offset;
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  336  	unsigned int		*buffer;
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  337  	unsigned int		buf_size;
7a90dcc2d7ceb6 Ludovic Desroches  2012-05-16  338  	dma_addr_t		buf_phys_addr;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  339  
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  340  	struct atmel_mci_slot	*cur_slot;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  341  	struct mmc_request	*mrq;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  342  	struct mmc_command	*cmd;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  343  	struct mmc_data		*data;
796211b7953bd1 Ludovic Desroches  2011-08-11  344  	unsigned int		data_size;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  345  
65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30  346  	struct atmel_mci_dma	dma;
65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30  347  	struct dma_chan		*data_chan;
e2b35f3dbfc080 Viresh Kumar       2012-02-01  348  	struct dma_slave_config	dma_conf;
65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30  349  
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  350  	u32			cmd_status;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  351  	u32			data_status;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  352  	u32			stop_cmdr;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  353  
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  354  	struct tasklet_struct	tasklet;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  355  	unsigned long		pending_events;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  356  	unsigned long		completed_events;
c06ad2580dca4e Haavard Skinnemoen 2008-07-31  357  	enum atmel_mci_state	state;
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  358  	struct list_head	queue;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  359  
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  360  	bool			need_clock_update;
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  361  	bool			need_reset;
24011f346471f7 Ludovic Desroches  2012-05-16  362  	struct timer_list	timer;
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  363  	u32			mode_reg;
74791a2dc8dc2a Nicolas Ferre      2009-12-14  364  	u32			cfg_reg;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  365  	unsigned long		bus_hz;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  366  	unsigned long		mapbase;
7d2be0749a5909 Haavard Skinnemoen 2008-06-30  367  	struct clk		*mck;
d9faa6e8381c3a Andy Shevchenko    2024-04-17  368  	struct device		*dev;
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  369  
e20b1c52f08695 Andy Shevchenko    2024-04-17  370  	struct mci_slot_pdata	pdata[ATMCI_MAX_NR_SLOTS];
2c96a293bbd6b3 Ludovic Desroches  2011-08-11  371  	struct atmel_mci_slot	*slot[ATMCI_MAX_NR_SLOTS];
796211b7953bd1 Ludovic Desroches  2011-08-11  372  
796211b7953bd1 Ludovic Desroches  2011-08-11  373  	struct atmel_mci_caps   caps;
796211b7953bd1 Ludovic Desroches  2011-08-11  374  
796211b7953bd1 Ludovic Desroches  2011-08-11  375  	u32 (*prepare_data)(struct atmel_mci *host, struct mmc_data *data);
796211b7953bd1 Ludovic Desroches  2011-08-11  376  	void (*submit_data)(struct atmel_mci *host, struct mmc_data *data);
796211b7953bd1 Ludovic Desroches  2011-08-11  377  	void (*stop_transfer)(struct atmel_mci *host);
965ebf33ea5afb Haavard Skinnemoen 2008-09-17 @378  };
965ebf33ea5afb Haavard Skinnemoen 2008-09-17  379  

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



More information about the linux-arm-kernel mailing list