drivers/mtd/nand/raw/omap2.c:261: warning: Function parameter or member 'chip' not described in 'omap_nand_data_in_pref'

From: kernel test robot
Date: Tue Dec 03 2024 - 04:55:43 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: cdd30ebb1b9f36159d66f088b61aee264e649d7a
commit: a9e849efca4f9c7732ea4a81f13ec96208994b22 mtd: rawnand: omap2: move to exec_op interface
date: 3 years ago
config: i386-buildonly-randconfig-001-20240106 (https://download.01.org/0day-ci/archive/20241203/202412031716.JfNIh1Uu-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241203/202412031716.JfNIh1Uu-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412031716.JfNIh1Uu-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/mtd/nand/raw/omap2.c:261: warning: Function parameter or member 'chip' not described in 'omap_nand_data_in_pref'
>> drivers/mtd/nand/raw/omap2.c:261: warning: Function parameter or member 'buf' not described in 'omap_nand_data_in_pref'
>> drivers/mtd/nand/raw/omap2.c:261: warning: Function parameter or member 'len' not described in 'omap_nand_data_in_pref'
>> drivers/mtd/nand/raw/omap2.c:261: warning: Function parameter or member 'force_8bit' not described in 'omap_nand_data_in_pref'
>> drivers/mtd/nand/raw/omap2.c:305: warning: Function parameter or member 'chip' not described in 'omap_nand_data_out_pref'
>> drivers/mtd/nand/raw/omap2.c:305: warning: Function parameter or member 'buf' not described in 'omap_nand_data_out_pref'
>> drivers/mtd/nand/raw/omap2.c:305: warning: Function parameter or member 'len' not described in 'omap_nand_data_out_pref'
>> drivers/mtd/nand/raw/omap2.c:305: warning: Function parameter or member 'force_8bit' not described in 'omap_nand_data_out_pref'
>> drivers/mtd/nand/raw/omap2.c:447: warning: Function parameter or member 'chip' not described in 'omap_nand_data_in_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:447: warning: Function parameter or member 'buf' not described in 'omap_nand_data_in_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:447: warning: Function parameter or member 'len' not described in 'omap_nand_data_in_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:447: warning: Function parameter or member 'force_8bit' not described in 'omap_nand_data_in_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:463: warning: Function parameter or member 'chip' not described in 'omap_nand_data_out_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:463: warning: Function parameter or member 'buf' not described in 'omap_nand_data_out_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:463: warning: Function parameter or member 'len' not described in 'omap_nand_data_out_dma_pref'
>> drivers/mtd/nand/raw/omap2.c:463: warning: Function parameter or member 'force_8bit' not described in 'omap_nand_data_out_dma_pref'


vim +261 drivers/mtd/nand/raw/omap2.c

65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 255
67ce04bf2746f8 drivers/mtd/nand/omap2.c Vimal Singh 2009-05-12 256 /**
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 257 * omap_nand_data_in_pref - NAND data in using prefetch engine
67ce04bf2746f8 drivers/mtd/nand/omap2.c Vimal Singh 2009-05-12 258 */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 259 static void omap_nand_data_in_pref(struct nand_chip *chip, void *buf,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 260 unsigned int len, bool force_8bit)
67ce04bf2746f8 drivers/mtd/nand/omap2.c Vimal Singh 2009-05-12 @261 {
0f808c1602bc75 drivers/mtd/nand/raw/omap2.c Boris Brezillon 2018-09-06 262 struct omap_nand_info *info = mtd_to_omap(nand_to_mtd(chip));
2c01946c6b9eba drivers/mtd/nand/omap2.c Sukumar Ghorai 2010-07-09 263 uint32_t r_count = 0;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 264 int ret = 0;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 265 u32 *p = (u32 *)buf;
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 266 unsigned int pref_len;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 267
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 268 if (force_8bit) {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 269 omap_nand_data_in(chip, buf, len, force_8bit);
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 270 return;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 271 }
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 272
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 273 /* read 32-bit words using prefetch and remaining bytes normally */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 274
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 275 /* configure and start prefetch transfer */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 276 pref_len = len - (len & 3);
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 277 ret = omap_prefetch_enable(info->gpmc_cs,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 278 PREFETCH_FIFOTHRESHOLD_MAX, 0x0, pref_len, 0x0, info);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 279 if (ret) {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 280 /* prefetch engine is busy, use CPU copy method */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 281 omap_nand_data_in(chip, buf, len, false);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 282 } else {
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 283 do {
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 284 r_count = readl(info->reg.gpmc_prefetch_status);
47f88af4ed80ac drivers/mtd/nand/omap2.c Afzal Mohammed 2012-09-29 285 r_count = PREFETCH_STATUS_FIFO_CNT(r_count);
2c01946c6b9eba drivers/mtd/nand/omap2.c Sukumar Ghorai 2010-07-09 286 r_count = r_count >> 2;
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 287 ioread32_rep(info->fifo, p, r_count);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 288 p += r_count;
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 289 pref_len -= r_count << 2;
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 290 } while (pref_len);
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 291 /* disable and stop the Prefetch engine */
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 292 omap_prefetch_reset(info->gpmc_cs, info);
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 293 /* fetch any remaining bytes */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 294 if (len & 3)
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 295 omap_nand_data_in(chip, p, len & 3, false);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 296 }
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 297 }
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 298
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 299 /**
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 300 * omap_nand_data_out_pref - NAND data out using Write Posting engine
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 301 */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 302 static void omap_nand_data_out_pref(struct nand_chip *chip,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 303 const void *buf, unsigned int len,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 304 bool force_8bit)
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 @305 {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 306 struct omap_nand_info *info = mtd_to_omap(nand_to_mtd(chip));
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 307 uint32_t w_count = 0;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 308 int i = 0, ret = 0;
c5d8c0cae4af7d drivers/mtd/nand/omap2.c Kishore Kadiyala 2011-05-11 309 u16 *p = (u16 *)buf;
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 310 unsigned long tim, limit;
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 311 u32 val;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 312
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 313 if (force_8bit) {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 314 omap_nand_data_out(chip, buf, len, force_8bit);
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 315 return;
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 316 }
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 317
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 318 /* take care of subpage writes */
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 319 if (len % 2 != 0) {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 320 writeb(*(u8 *)buf, info->fifo);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 321 p = (u16 *)(buf + 1);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 322 len--;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 323 }
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 324
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 325 /* configure and start prefetch transfer */
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 326 ret = omap_prefetch_enable(info->gpmc_cs,
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 327 PREFETCH_FIFOTHRESHOLD_MAX, 0x0, len, 0x1, info);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 328 if (ret) {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 329 /* write posting engine is busy, use CPU copy method */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 330 omap_nand_data_out(chip, buf, len, false);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 331 } else {
2c01946c6b9eba drivers/mtd/nand/omap2.c Sukumar Ghorai 2010-07-09 332 while (len) {
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 333 w_count = readl(info->reg.gpmc_prefetch_status);
47f88af4ed80ac drivers/mtd/nand/omap2.c Afzal Mohammed 2012-09-29 334 w_count = PREFETCH_STATUS_FIFO_CNT(w_count);
2c01946c6b9eba drivers/mtd/nand/omap2.c Sukumar Ghorai 2010-07-09 335 w_count = w_count >> 1;
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 336 for (i = 0; (i < w_count) && len; i++, len -= 2)
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 337 iowrite16(*p++, info->fifo);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 338 }
2c01946c6b9eba drivers/mtd/nand/omap2.c Sukumar Ghorai 2010-07-09 339 /* wait for data to flushed-out before reset the prefetch */
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 340 tim = 0;
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 341 limit = (loops_per_jiffy *
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 342 msecs_to_jiffies(OMAP_NAND_TIMEOUT_MS));
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 343 do {
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 344 cpu_relax();
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 345 val = readl(info->reg.gpmc_prefetch_status);
47f88af4ed80ac drivers/mtd/nand/omap2.c Afzal Mohammed 2012-09-29 346 val = PREFETCH_STATUS_COUNT(val);
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 347 } while (val && (tim++ < limit));
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 348
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 349 /* disable and stop the PFPW engine */
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 350 omap_prefetch_reset(info->gpmc_cs, info);
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 351 }
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 352 }
59e9c5ae17179f drivers/mtd/nand/omap2.c vimal singh 2009-07-13 353
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 354 /*
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 355 * omap_nand_dma_callback: callback on the completion of dma transfer
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 356 * @data: pointer to completion data structure
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 357 */
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 358 static void omap_nand_dma_callback(void *data)
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 359 {
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 360 complete((struct completion *) data);
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 361 }
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 362
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 363 /*
4cacbe226f3906 drivers/mtd/nand/omap2.c Peter Meerwald 2012-07-19 364 * omap_nand_dma_transfer: configure and start dma transfer
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 365 * @chip: nand chip structure
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 366 * @addr: virtual address in RAM of source/destination
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 367 * @len: number of data bytes to be transferred
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 368 * @is_write: flag for read/write operation
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 369 */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 370 static inline int omap_nand_dma_transfer(struct nand_chip *chip,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 371 const void *addr, unsigned int len,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 372 int is_write)
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 373 {
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 374 struct omap_nand_info *info = mtd_to_omap(nand_to_mtd(chip));
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 375 struct dma_async_tx_descriptor *tx;
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 376 enum dma_data_direction dir = is_write ? DMA_TO_DEVICE :
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 377 DMA_FROM_DEVICE;
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 378 struct scatterlist sg;
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 379 unsigned long tim, limit;
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 380 unsigned n;
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 381 int ret;
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 382 u32 val;
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 383
8c6f0fc4d2d505 drivers/mtd/nand/omap2.c Cooper Jr., Franklin 2016-04-15 384 if (!virt_addr_valid(addr))
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 385 goto out_copy;
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 386
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 387 sg_init_one(&sg, addr, len);
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 388 n = dma_map_sg(info->dma->device->dev, &sg, 1, dir);
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 389 if (n == 0) {
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 390 dev_err(&info->pdev->dev,
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 391 "Couldn't DMA map a %d byte buffer\n", len);
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 392 goto out_copy;
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 393 }
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 394
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 395 tx = dmaengine_prep_slave_sg(info->dma, &sg, n,
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 396 is_write ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM,
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 397 DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 398 if (!tx)
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 399 goto out_copy_unmap;
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 400
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 401 tx->callback = omap_nand_dma_callback;
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 402 tx->callback_param = &info->comp;
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 403 dmaengine_submit(tx);
763e7359109223 drivers/mtd/nand/omap2.c Russell King 2012-04-25 404
03d3a1df6da660 drivers/mtd/nand/omap2.c Cooper Jr., Franklin 2016-04-15 405 init_completion(&info->comp);
03d3a1df6da660 drivers/mtd/nand/omap2.c Cooper Jr., Franklin 2016-04-15 406
03d3a1df6da660 drivers/mtd/nand/omap2.c Cooper Jr., Franklin 2016-04-15 407 /* setup and start DMA using dma_addr */
03d3a1df6da660 drivers/mtd/nand/omap2.c Cooper Jr., Franklin 2016-04-15 408 dma_async_issue_pending(info->dma);
03d3a1df6da660 drivers/mtd/nand/omap2.c Cooper Jr., Franklin 2016-04-15 409
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 410 /* configure and start prefetch transfer */
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 411 ret = omap_prefetch_enable(info->gpmc_cs,
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 412 PREFETCH_FIFOTHRESHOLD_MAX, 0x1, len, is_write, info);
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 413 if (ret)
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 414 /* PFPW engine is busy, use cpu copy method */
d7efe2281db535 drivers/mtd/nand/omap2.c Grazvydas Ignotas 2012-04-11 415 goto out_copy_unmap;
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 416
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 417 wait_for_completion(&info->comp);
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 418 tim = 0;
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 419 limit = (loops_per_jiffy * msecs_to_jiffies(OMAP_NAND_TIMEOUT_MS));
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 420
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 421 do {
4e070376165a9b drivers/mtd/nand/omap2.c Sukumar Ghorai 2011-01-28 422 cpu_relax();
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 423 val = readl(info->reg.gpmc_prefetch_status);
47f88af4ed80ac drivers/mtd/nand/omap2.c Afzal Mohammed 2012-09-29 424 val = PREFETCH_STATUS_COUNT(val);
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 425 } while (val && (tim++ < limit));
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 426
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 427 /* disable and stop the PFPW engine */
65b97cf6b8deca drivers/mtd/nand/omap2.c Afzal Mohammed 2012-08-30 428 omap_prefetch_reset(info->gpmc_cs, info);
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 429
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 430 dma_unmap_sg(info->dma->device->dev, &sg, 1, dir);
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 431 return 0;
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 432
d7efe2281db535 drivers/mtd/nand/omap2.c Grazvydas Ignotas 2012-04-11 433 out_copy_unmap:
2df41d0533ad1a drivers/mtd/nand/omap2.c Russell King 2012-04-25 434 dma_unmap_sg(info->dma->device->dev, &sg, 1, dir);
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 435 out_copy:
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 436 is_write == 0 ? omap_nand_data_in(chip, (void *)addr, len, false)
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 437 : omap_nand_data_out(chip, addr, len, false);
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 438
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 439 return 0;
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 440 }
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 441
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 442 /**
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 443 * omap_nand_data_in_dma_pref - NAND data in using DMA and Prefetch
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 444 */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 445 static void omap_nand_data_in_dma_pref(struct nand_chip *chip, void *buf,
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 446 unsigned int len, bool force_8bit)
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 @447 {
7e534323c41621 drivers/mtd/nand/raw/omap2.c Boris Brezillon 2018-09-06 448 struct mtd_info *mtd = nand_to_mtd(chip);
7e534323c41621 drivers/mtd/nand/raw/omap2.c Boris Brezillon 2018-09-06 449
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 450 if (len <= mtd->oobsize)
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 451 omap_nand_data_in_pref(chip, buf, len, false);
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 452 else
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 453 /* start transfer in DMA mode */
a9e849efca4f9c drivers/mtd/nand/raw/omap2.c Roger Quadros 2021-12-09 454 omap_nand_dma_transfer(chip, buf, len, 0x0);
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 455 }
dfe32893cbe3e5 drivers/mtd/nand/omap2.c vimal singh 2009-07-13 456

:::::: The code at line 261 was first introduced by commit
:::::: 67ce04bf2746f8a1f8c2a104b313d20c63f68378 mtd: nand: add OMAP2/OMAP3 NAND driver

:::::: TO: Vimal Singh <vimalsingh@xxxxxx>
:::::: CC: David Woodhouse <David.Woodhouse@xxxxxxxxx>

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