From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6654862511811206563==" MIME-Version: 1.0 From: Dan Carpenter Subject: [xlnx:master 59/60] drivers/mtd/spi-nor/spi-nor.c:5455:22: warning: Unused variable: np_spi Date: Thu, 04 Feb 2021 14:03:01 +0300 Message-ID: <20210204110301.GJ20820@kadam> List-Id: To: kbuild@lists.01.org --===============6654862511811206563== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://github.com/Xilinx/linux-xlnx master head: 043f8a226a752a1dd11f7ff64cee6dbe7334d394 commit: c0b33b8ccd38096c815f2dd39746044d0aa079d3 [59/60] staging: xlnxsync:= Fix the uapi header license compiler: nios2-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot cppcheck possible warnings: (new ones prefixed by >>, may not real problems) drivers/mtd/spi-nor/spi-nor.c:4170:24: warning: Boolean result is used i= n bitwise operation. Clarify expression with parentheses. [clarifyCondition] map_id =3D map_id << 1 | !!(*buf & read_data_mask); This works but it would be more readable as: map_id =3D (map_id << 1) | !!(*buf & read_data_mask); ^ >> drivers/mtd/spi-nor/spi-nor.c:5455:22: warning: Unused variable: np_spi = [unusedVariable] struct device_node *np_spi; ^ drivers/mtd/spi-nor/spi-nor.c:5456:6: warning: Unused variable: is_dual = [unusedVariable] u32 is_dual; ^ Add moar ifdefs! vim +5455 drivers/mtd/spi-nor/spi-nor.c cfc5604c488ccd Cyrille Pitchen 2017-04-25 5445 int spi_nor_scan(s= truct spi_nor *nor, const char *name, cfc5604c488ccd Cyrille Pitchen 2017-04-25 5446 const struct sp= i_nor_hwcaps *hwcaps) b199489d37b21c Huang Shijie 2014-02-24 5447 { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5448 struct flash_info= *info =3D NULL; b199489d37b21c Huang Shijie 2014-02-24 5449 struct device *de= v =3D nor->dev; 1976367173a47f Brian Norris 2015-08-13 5450 struct mtd_info *= mtd =3D &nor->mtd; 9c7d787508be6d Brian Norris 2015-10-30 5451 struct device_nod= e *np =3D spi_nor_get_flash_node(nor); 1e35a56781b4b5 Tudor Ambarus 2019-08-23 5452 struct spi_nor_fl= ash_parameter *params =3D &nor->params; b199489d37b21c Huang Shijie 2014-02-24 5453 int ret; b199489d37b21c Huang Shijie 2014-02-24 5454 int i; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 @5455 struct device_nod= e *np_spi; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5456 u32 is_dual; b199489d37b21c Huang Shijie 2014-02-24 5457 = b199489d37b21c Huang Shijie 2014-02-24 5458 ret =3D spi_nor_c= heck(nor); b199489d37b21c Huang Shijie 2014-02-24 5459 if (ret) b199489d37b21c Huang Shijie 2014-02-24 5460 return ret; b199489d37b21c Huang Shijie 2014-02-24 5461 = cfc5604c488ccd Cyrille Pitchen 2017-04-25 5462 /* Reset SPI prot= ocol for all commands. */ cfc5604c488ccd Cyrille Pitchen 2017-04-25 5463 nor->reg_proto = =3D SNOR_PROTO_1_1_1; cfc5604c488ccd Cyrille Pitchen 2017-04-25 5464 nor->read_proto = =3D SNOR_PROTO_1_1_1; cfc5604c488ccd Cyrille Pitchen 2017-04-25 5465 nor->write_proto = =3D SNOR_PROTO_1_1_1; cfc5604c488ccd Cyrille Pitchen 2017-04-25 5466 = f173f26a4d543f Vignesh Raghavendra 2019-08-06 5467 /* f173f26a4d543f Vignesh Raghavendra 2019-08-06 5468 * We need the bo= unce buffer early to read/write registers when going f173f26a4d543f Vignesh Raghavendra 2019-08-06 5469 * through the sp= i-mem layer (buffers have to be DMA-able). b35b9a10362d20 Boris Brezillon 2019-08-06 5470 * For spi-mem dr= ivers, we'll reallocate a new buffer if b35b9a10362d20 Boris Brezillon 2019-08-06 5471 * nor->page_size= turns out to be greater than PAGE_SIZE (which b35b9a10362d20 Boris Brezillon 2019-08-06 5472 * shouldn't happ= en before long since NOR pages are usually less b35b9a10362d20 Boris Brezillon 2019-08-06 5473 * than 1KB) afte= r spi_nor_scan() returns. f173f26a4d543f Vignesh Raghavendra 2019-08-06 5474 */ f173f26a4d543f Vignesh Raghavendra 2019-08-06 5475 nor->bouncebuf_si= ze =3D PAGE_SIZE; f173f26a4d543f Vignesh Raghavendra 2019-08-06 5476 nor->bouncebuf = =3D devm_kmalloc(dev, nor->bouncebuf_size, f173f26a4d543f Vignesh Raghavendra 2019-08-06 5477 GFP_KERN= EL); f173f26a4d543f Vignesh Raghavendra 2019-08-06 5478 if (!nor->bounceb= uf) f173f26a4d543f Vignesh Raghavendra 2019-08-06 5479 return -ENOMEM; f173f26a4d543f Vignesh Raghavendra 2019-08-06 5480 = 620df2497415a9 Tudor Ambarus 2019-08-24 5481 info =3D spi_nor_= get_flash_info(nor, name); 620df2497415a9 Tudor Ambarus 2019-08-24 5482 if (IS_ERR(info)) 620df2497415a9 Tudor Ambarus 2019-08-24 5483 return PTR_ERR(i= nfo); b199489d37b21c Huang Shijie 2014-02-24 5484 = b296379fef7ce9 Boris Brezillon 2018-12-06 5485 nor->info =3D inf= o; b296379fef7ce9 Boris Brezillon 2018-12-06 5486 = dcc935b06f1f29 Zhuohao Lee 2019-08-28 5487 spi_nor_debugfs_i= nit(nor, info); dcc935b06f1f29 Zhuohao Lee 2019-08-28 5488 = b199489d37b21c Huang Shijie 2014-02-24 5489 mutex_init(&nor->= lock); b199489d37b21c Huang Shijie 2014-02-24 5490 = e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5491 /* e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5492 * Make sure the = XSR_RDY flag is set before calling e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5493 * spi_nor_wait_t= ill_ready(). Xilinx S3AN share MFR e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5494 * with Atmel spi= -nor e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5495 */ ad3bba06b63697 Boris Brezillon 2019-07-30 5496 if (info->flags &= SPI_NOR_XSR_RDY) e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5497 nor->flags |=3D = SNOR_F_READY_XSR_RDY; e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5498 = dff972458acb05 Boris Brezillon 2019-08-24 5499 if (info->flags &= SPI_NOR_HAS_LOCK) dff972458acb05 Boris Brezillon 2019-08-24 5500 nor->flags |=3D = SNOR_F_HAS_LOCK; dff972458acb05 Boris Brezillon 2019-08-24 5501 = bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5502 if ((u16)JEDEC_MF= R(nor->info) !=3D SNOR_MFR_MICRON) bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5503 nor->flags |=3D = SNOR_F_BROKEN_OCTAL_DDR; bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5504 = 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5505 /* 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5506 * Atmel, SST, In= tel/Numonyx, and others serial NOR tend to power up 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5507 * with the softw= are protection bits set. 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5508 */ 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5509 if (JEDEC_MFR(nor= ->info) =3D=3D SNOR_MFR_ATMEL || 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5510 JEDEC_MFR(nor= ->info) =3D=3D SNOR_MFR_INTEL || 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5511 JEDEC_MFR(nor= ->info) =3D=3D SNOR_MFR_SST || 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5512 nor->info->fl= ags & SPI_NOR_HAS_LOCK) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5513 write_enable(nor= ); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5514 write_sr(nor, 0); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5515 if (info->flags = & SST_GLOBAL_PROT_UNLK) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5516 write_enable(no= r); abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5517 if (nor->spimem= ) { abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5518 struct spi_mem= _op op =3D abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5519 SPI_MEM_OP(SP= I_MEM_OP_CMD(GLOBAL_BLKPROT_UNLK, 1), abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5520 SPI_MEM_O= P_NO_ADDR, abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5521 SPI_MEM_O= P_NO_DUMMY, abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5522 SPI_MEM_O= P_NO_DATA); abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5523 = abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5524 spi_mem_exec_o= p(nor->spimem, &op); abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5525 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5526 /* Unlock glob= al write protection bits */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5527 nor->write_reg= (nor, GLOBAL_BLKPROT_UNLK, NULL, 0); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5528 } abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5529 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5530 spi_nor_wait_til= l_ready(nor); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5531 } 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5532 = 1c1d8d98e1c706 Tudor Ambarus 2019-08-24 5533 /* Init flash par= ameters based on flash_info struct and SFDP */ 1c1d8d98e1c706 Tudor Ambarus 2019-08-24 5534 spi_nor_init_para= ms(nor); cfc5604c488ccd Cyrille Pitchen 2017-04-25 5535 = 32f1b7c8352fd3 Rafa=C5=82 Mi=C5=82ecki 2014-09-28 5536 if (!mt= d->name) b199489d37b21c Huang Shijie 2014-02-24 5537 mtd->name =3D de= v_name(dev); c9ec3900abf279 Brian Norris 2015-08-13 5538 mtd->priv =3D nor; b199489d37b21c Huang Shijie 2014-02-24 5539 mtd->type =3D MTD= _NORFLASH; b199489d37b21c Huang Shijie 2014-02-24 5540 mtd->writesize = =3D 1; b199489d37b21c Huang Shijie 2014-02-24 5541 mtd->flags =3D MT= D_CAP_NORFLASH; 1e35a56781b4b5 Tudor Ambarus 2019-08-23 5542 mtd->size =3D par= ams->size; b199489d37b21c Huang Shijie 2014-02-24 5543 mtd->_erase =3D s= pi_nor_erase; b199489d37b21c Huang Shijie 2014-02-24 5544 mtd->_read =3D sp= i_nor_read; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5545 nor->page_size = =3D params->page_size; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5546 #ifdef CONFIG_OF 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5547 np_spi =3D of_get= _next_parent(np); e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5548 if (((of_property= _match_string(np_spi, "compatible", e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5549 "xlnx,z= ynq-qspi-1.0") >=3D 0) || e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5550 (of_property_mat= ch_string(np_spi, "compatible", e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5551 "xlnx,zynqmp-q= spi-1.0") >=3D 0)) || e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5552 (of_property_mat= ch_string(np_spi, "compatible", e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5553 "xlnx,versal-q= spi-1.0") >=3D 0)) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5554 if (of_property_= read_u32(np_spi, "is-dual", 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5555 &is_dual) < = 0) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5556 /* Default to s= ingle if prop not defined */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5557 nor->shift =3D = 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5558 nor->isstacked = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5559 nor->isparallel= =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5560 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5561 if (is_dual =3D= =3D 1) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5562 /* dual parall= el */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5563 nor->shift =3D= 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5564 info->sector_s= ize <<=3D nor->shift; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5565 info->page_siz= e <<=3D nor->shift; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5566 mtd->size <<= =3D nor->shift; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5567 nor->isparalle= l =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5568 nor->isstacked= =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5569 nor->spi->mast= er->flags |=3D e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5570 (SPI_MASTER_= DATA_STRIPE e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5571 | SPI_MASTER= _BOTH_CS); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5572 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5573 #ifdef CONFIG_SPI_= ZYNQ_QSPI_DUAL_STACKED 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5574 /* dual stacke= d */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5575 nor->shift =3D= 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5576 mtd->size <<= =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5577 info->n_sector= s <<=3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5578 nor->isstacked= =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5579 nor->isparalle= l =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5580 #else 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5581 u32 is_stacked; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5582 = 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5583 if (of_propert= y_read_u32(np_spi, 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5584 "is-stacke= d", 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5585 &is_stacke= d) < 0) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5586 is_stacked = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5587 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5588 if (is_stacked= ) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5589 /* dual stack= ed */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5590 nor->shift = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5591 mtd->size <<= =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5592 info->n_secto= rs <<=3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5593 nor->isstacke= d =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5594 nor->isparall= el =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5595 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5596 /* single */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5597 nor->shift = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5598 nor->isstacke= d =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5599 nor->isparall= el =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5600 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5601 #endif 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5602 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5603 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5604 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5605 #else 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5606 /* Default to sin= gle */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5607 nor->shift =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5608 nor->isstacked = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5609 nor->isparallel = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5610 #endif d6084fc83c8249 Kamal Dasu 2017-08-22 5611 mtd->_resume =3D = spi_nor_resume; b199489d37b21c Huang Shijie 2014-02-24 5612 = dff972458acb05 Boris Brezillon 2019-08-24 5613 if (nor->params.l= ocking_ops) { b199489d37b21c Huang Shijie 2014-02-24 5614 mtd->_lock =3D s= pi_nor_lock; b199489d37b21c Huang Shijie 2014-02-24 5615 mtd->_unlock =3D= spi_nor_unlock; 5bf0e69b67a560 Brian Norris 2015-09-01 5616 mtd->_is_locked = =3D spi_nor_is_locked; b199489d37b21c Huang Shijie 2014-02-24 5617 } b199489d37b21c Huang Shijie 2014-02-24 5618 = b199489d37b21c Huang Shijie 2014-02-24 5619 /* sst nor chips = use AAI word program */ b199489d37b21c Huang Shijie 2014-02-24 5620 if (info->flags &= SST_WRITE) b199489d37b21c Huang Shijie 2014-02-24 5621 mtd->_write =3D = sst_write; b199489d37b21c Huang Shijie 2014-02-24 5622 else b199489d37b21c Huang Shijie 2014-02-24 5623 mtd->_write =3D = spi_nor_write; b199489d37b21c Huang Shijie 2014-02-24 5624 = 51983b7dcf3a50 Brian Norris 2014-09-10 5625 if (info->flags &= USE_FSR) 51983b7dcf3a50 Brian Norris 2014-09-10 5626 nor->flags |=3D = SNOR_F_USE_FSR; 3dd8012a8eeb37 Brian Norris 2016-01-29 5627 if (info->flags &= SPI_NOR_HAS_TB) 3dd8012a8eeb37 Brian Norris 2016-01-29 5628 nor->flags |=3D = SNOR_F_HAS_SR_TB; 2f5ad7f0f3e167 mar.krzeminski 2017-01-06 5629 if (info->flags &= NO_CHIP_ERASE) 2f5ad7f0f3e167 mar.krzeminski 2017-01-06 5630 nor->flags |=3D = SNOR_F_NO_OP_CHIP_ERASE; c4b3eacc1dfef5 Alexander Sverdlin 2017-07-17 5631 if (info->flags &= USE_CLSR) c4b3eacc1dfef5 Alexander Sverdlin 2017-07-17 5632 nor->flags |=3D = SNOR_F_USE_CLSR; c14deddec1fbd8 grmoore(a)altera.com 2014-04-29 5633 = b199489d37b21c Huang Shijie 2014-02-24 5634 if (info->flags &= SPI_NOR_NO_ERASE) b199489d37b21c Huang Shijie 2014-02-24 5635 mtd->flags |=3D = MTD_NO_ERASE; b199489d37b21c Huang Shijie 2014-02-24 5636 = b199489d37b21c Huang Shijie 2014-02-24 5637 mtd->dev.parent = =3D dev; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5638 nor->jedec_id =3D= info->id[0]; b199489d37b21c Huang Shijie 2014-02-24 5639 mtd->writebufsize= =3D nor->page_size; b199489d37b21c Huang Shijie 2014-02-24 5640 = bb276262e88dae Brian Norris 2018-07-27 5641 if (of_property_r= ead_bool(np, "broken-flash-reset")) bb276262e88dae Brian Norris 2018-07-27 5642 nor->flags |=3D = SNOR_F_BROKEN_RESET; bb276262e88dae Brian Norris 2018-07-27 5643 = cfc5604c488ccd Cyrille Pitchen 2017-04-25 5644 /* cfc5604c488ccd Cyrille Pitchen 2017-04-25 5645 * Configure the = SPI memory: cfc5604c488ccd Cyrille Pitchen 2017-04-25 5646 * - select op co= des for (Fast) Read, Page Program and Sector Erase. cfc5604c488ccd Cyrille Pitchen 2017-04-25 5647 * - set the numb= er of dummy cycles (mode cycles + wait states). cfc5604c488ccd Cyrille Pitchen 2017-04-25 5648 * - set the SPI = protocols for register and memory accesses. cfc5604c488ccd Cyrille Pitchen 2017-04-25 5649 */ 1e35a56781b4b5 Tudor Ambarus 2019-08-23 5650 ret =3D spi_nor_s= etup(nor, hwcaps); cfc5604c488ccd Cyrille Pitchen 2017-04-25 5651 if (ret) b199489d37b21c Huang Shijie 2014-02-24 5652 return ret; b199489d37b21c Huang Shijie 2014-02-24 5653 = 92094ebc385ef5 Boris Brezillon 2019-08-24 5654 if (info->flags &= SPI_NOR_4B_OPCODES) 548ed6847f5303 Boris Brezillon 2018-12-06 5655 nor->flags |=3D = SNOR_F_4B_OPCODES; 548ed6847f5303 Boris Brezillon 2018-12-06 5656 = 696ce50f4e9377 Tudor Ambarus 2019-08-24 5657 ret =3D spi_nor_s= et_addr_width(nor); 696ce50f4e9377 Tudor Ambarus 2019-08-24 5658 if (ret) 696ce50f4e9377 Tudor Ambarus 2019-08-24 5659 return ret; c67cbb839da9cc Brian Norris 2015-11-10 5660 = 46dde01f6bab35 Kamal Dasu 2017-08-22 5661 /* Send all the r= equired SPI flash commands to initialize device */ 46dde01f6bab35 Kamal Dasu 2017-08-22 5662 ret =3D spi_nor_i= nit(nor); 46dde01f6bab35 Kamal Dasu 2017-08-22 5663 if (ret) 46dde01f6bab35 Kamal Dasu 2017-08-22 5664 return ret; 46dde01f6bab35 Kamal Dasu 2017-08-22 5665 = 06bb6f5a69dfc5 Rafa=C5=82 Mi=C5=82ecki 2015-08-10 5666 dev_inf= o(dev, "%s (%lld Kbytes)\n", info->name, b199489d37b21c Huang Shijie 2014-02-24 5667 (long long)mtd-= >size >> 10); b199489d37b21c Huang Shijie 2014-02-24 5668 = b199489d37b21c Huang Shijie 2014-02-24 5669 dev_dbg(dev, b199489d37b21c Huang Shijie 2014-02-24 5670 "mtd .name =3D %= s, .size =3D 0x%llx (%lldMiB), " b199489d37b21c Huang Shijie 2014-02-24 5671 ".erasesize =3D = 0x%.8x (%uKiB) .numeraseregions =3D %d\n", b199489d37b21c Huang Shijie 2014-02-24 5672 mtd->name, (long= long)mtd->size, (long long)(mtd->size >> 20), b199489d37b21c Huang Shijie 2014-02-24 5673 mtd->erasesize, = mtd->erasesize / 1024, mtd->numeraseregions); b199489d37b21c Huang Shijie 2014-02-24 5674 = bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5675 if (hwcaps->mask = & (SNOR_HWCAPS_READ_8_8_8 | SNOR_HWCAPS_PP_8_8_8)) { bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5676 if (!(nor->flags= & SNOR_F_BROKEN_OCTAL_DDR)) { bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5677 ret =3D spi_nor= _switch_micron_octal_ddr(nor); bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5678 if (ret) bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5679 return ret; bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5680 } bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5681 } bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5682 = b199489d37b21c Huang Shijie 2014-02-24 5683 if (mtd->numerase= regions) b199489d37b21c Huang Shijie 2014-02-24 5684 for (i =3D 0; i = < mtd->numeraseregions; i++) b199489d37b21c Huang Shijie 2014-02-24 5685 dev_dbg(dev, b199489d37b21c Huang Shijie 2014-02-24 5686 "mtd.eraseregi= ons[%d] =3D { .offset =3D 0x%llx, " b199489d37b21c Huang Shijie 2014-02-24 5687 ".erasesize = =3D 0x%.8x (%uKiB), " b199489d37b21c Huang Shijie 2014-02-24 5688 ".numblocks = =3D %d }\n", b199489d37b21c Huang Shijie 2014-02-24 5689 i, (long long)= mtd->eraseregions[i].offset, b199489d37b21c Huang Shijie 2014-02-24 5690 mtd->eraseregi= ons[i].erasesize, b199489d37b21c Huang Shijie 2014-02-24 5691 mtd->eraseregi= ons[i].erasesize / 1024, b199489d37b21c Huang Shijie 2014-02-24 5692 mtd->eraseregi= ons[i].numblocks); b199489d37b21c Huang Shijie 2014-02-24 5693 return 0; b199489d37b21c Huang Shijie 2014-02-24 5694 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org = _______________________________________________ kbuild mailing list -- kbuild(a)lists.01.org To unsubscribe send an email to kbuild-leave(a)lists.01.org --===============6654862511811206563==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D28D8C433E0 for ; Thu, 4 Feb 2021 11:05:00 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7275064E7B for ; Thu, 4 Feb 2021 11:05:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7275064E7B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:To:From:Date: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=QRIBz61D0f29XJj0Mr4QeoLpvCISQLvG3jjfMv5B7vc=; b=s66maQX11qQMHc3CnRJYV0Dw+T 5NK+hP1gMPxULznBGbmiKUimIlkaSjKH9BeBtBTl45rUn499ENnHDfdRv5Ncj+yMksqf5eeV9Fzg+ OKwVqGKvIpkHJf489V2M4JE1GnMVlY15iMhHY+4OA54db0Ucy+lQ2RwLIp5jlnlZr5Ml6aag2oEel vTEaj4hARQD/HYxOPTxGVKy4Y5jzHChxKjZKYqkYYOmAhuHwE4fQyBqiNOg16qLlN87gQ6r+RXz7U E/jqdYGTbBSzWMgFsqIcSPtMzmx0iI2kCTxGdlU+watEU6910RysLjXCZGd3dONt7nF8sykTTMnr8 vvB+bs5Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l7cPz-0000uS-Le; Thu, 04 Feb 2021 11:03:23 +0000 Received: from userp2130.oracle.com ([156.151.31.86]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l7cPw-0000u2-91 for linux-arm-kernel@lists.infradead.org; Thu, 04 Feb 2021 11:03:21 +0000 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 114B0SHr025551; Thu, 4 Feb 2021 11:03:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : mime-version : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=nEkHVwKKrqHR1R+3PIoAbtwx2QnjD/dT9IpfVsoyY4A=; b=cYeLnWieJik3tsV9OO+HXifdMXowH/xm60Z1e1BC5VioVhAaI7w7gvJk3Fp7faEvos6h x9pxS/cyQeF8FgYgvlhGJOXfpKeeg2+n7AJoc39Xt7Wpy7y2b6fNca8sCJ7X4qNuMfEW 86PBNiv6qG5U8MSjSfNbVgW7GXhn1DKspZYP6NjrsuxQD7NVvbev4arYBmHe2cuJv26U RGc8wD/u+Bu3nPLGT6S/LZtxLfVMu5IuGHVKBSj3Ykidgh/7p9X96FSib0B7xDt1dKQL fMH/gG8Q7E0c5DaFHdDIJPM42h70HW3+0HaDkDzKL48HuK8pOlrbpCjNSuAXysjjNo7Z Zg== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2130.oracle.com with ESMTP id 36cxvr7dw4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Feb 2021 11:03:13 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 114B0JPI143893; Thu, 4 Feb 2021 11:03:12 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3020.oracle.com with ESMTP id 36dh7v07u5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Feb 2021 11:03:12 +0000 Received: from abhmp0003.oracle.com (abhmp0003.oracle.com [141.146.116.9]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 114B39Me010432; Thu, 4 Feb 2021 11:03:10 GMT Received: from kadam (/102.36.221.92) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 04 Feb 2021 03:03:08 -0800 Date: Thu, 4 Feb 2021 14:03:01 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Vishal Sagar Subject: [kbuild] [xlnx:master 59/60] drivers/mtd/spi-nor/spi-nor.c:5455:22: warning: Unused variable: np_spi Message-ID: <20210204110301.GJ20820@kadam> MIME-Version: 1.0 Content-Disposition: inline Message-ID-Hash: GRWAKXKXHXJTY7JHJL2FFWM6KPNGFYFQ User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9884 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102040069 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9884 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 priorityscore=1501 spamscore=0 impostorscore=0 clxscore=1011 suspectscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102040069 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210204_060320_572256_D1BE3ACF X-CRM114-Status: GOOD ( 17.78 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michal Simek , Hyun Kwon , kbuild-all@lists.01.org, lkp@intel.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org dHJlZTogICBodHRwczovL2dpdGh1Yi5jb20vWGlsaW54L2xpbnV4LXhsbnggIG1hc3RlcgpoZWFk OiAgIDA0M2Y4YTIyNmE3NTJhMWRkMTFmN2ZmNjRjZWU2ZGJlNzMzNGQzOTQKY29tbWl0OiBjMGIz M2I4Y2NkMzgwOTZjODE1ZjJkZDM5NzQ2MDQ0ZDBhYTA3OWQzIFs1OS82MF0gc3RhZ2luZzogeGxu eHN5bmM6IEZpeCB0aGUgdWFwaSBoZWFkZXIgbGljZW5zZQpjb21waWxlcjogbmlvczItbGludXgt Z2NjIChHQ0MpIDkuMy4wCgpJZiB5b3UgZml4IHRoZSBpc3N1ZSwga2luZGx5IGFkZCBmb2xsb3dp bmcgdGFnIGFzIGFwcHJvcHJpYXRlClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtw QGludGVsLmNvbT4KCmNwcGNoZWNrIHBvc3NpYmxlIHdhcm5pbmdzOiAobmV3IG9uZXMgcHJlZml4 ZWQgYnkgPj4sIG1heSBub3QgcmVhbCBwcm9ibGVtcykKCiAgIGRyaXZlcnMvbXRkL3NwaS1ub3Iv c3BpLW5vci5jOjQxNzA6MjQ6IHdhcm5pbmc6IEJvb2xlYW4gcmVzdWx0IGlzIHVzZWQgaW4gYml0 d2lzZSBvcGVyYXRpb24uIENsYXJpZnkgZXhwcmVzc2lvbiB3aXRoIHBhcmVudGhlc2VzLiBbY2xh cmlmeUNvbmRpdGlvbl0KICAgICBtYXBfaWQgPSBtYXBfaWQgPDwgMSB8ICEhKCpidWYgJiByZWFk X2RhdGFfbWFzayk7CgpUaGlzIHdvcmtzIGJ1dCBpdCB3b3VsZCBiZSBtb3JlIHJlYWRhYmxlIGFz OgoKCW1hcF9pZCA9IChtYXBfaWQgPDwgMSkgfCAhISgqYnVmICYgcmVhZF9kYXRhX21hc2spOwog ICAgICAgICAgICAgICAgICAgICAgICAgIF4KPj4gZHJpdmVycy9tdGQvc3BpLW5vci9zcGktbm9y LmM6NTQ1NToyMjogd2FybmluZzogVW51c2VkIHZhcmlhYmxlOiBucF9zcGkgW3VudXNlZFZhcmlh YmxlXQogICAgc3RydWN0IGRldmljZV9ub2RlICpucF9zcGk7CiAgICAgICAgICAgICAgICAgICAg ICAgIF4KICAgZHJpdmVycy9tdGQvc3BpLW5vci9zcGktbm9yLmM6NTQ1Njo2OiB3YXJuaW5nOiBV bnVzZWQgdmFyaWFibGU6IGlzX2R1YWwgW3VudXNlZFZhcmlhYmxlXQogICAgdTMyIGlzX2R1YWw7 CiAgICAgICAgXgoKQWRkIG1vYXIgaWZkZWZzIQoKdmltICs1NDU1IGRyaXZlcnMvbXRkL3NwaS1u b3Ivc3BpLW5vci5jCgpjZmM1NjA0YzQ4OGNjZCBDeXJpbGxlIFBpdGNoZW4gICAgICAgICAyMDE3 LTA0LTI1ICA1NDQ1ICBpbnQgc3BpX25vcl9zY2FuKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0 IGNoYXIgKm5hbWUsCmNmYzU2MDRjNDg4Y2NkIEN5cmlsbGUgUGl0Y2hlbiAgICAgICAgIDIwMTct MDQtMjUgIDU0NDYgIAkJIGNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyAqaHdjYXBzKQpiMTk5 NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NDQ3ICB7CjRh MTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU0NDggIAlz dHJ1Y3QgZmxhc2hfaW5mbyAqaW5mbyA9IE5VTEw7CmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWpp ZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU0NDkgIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBub3It PmRldjsKMTk3NjM2NzE3M2E0N2YgQnJpYW4gTm9ycmlzICAgICAgICAgICAgMjAxNS0wOC0xMyAg NTQ1MCAgCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gJm5vci0+bXRkOwo5YzdkNzg3NTA4YmU2ZCBC cmlhbiBOb3JyaXMgICAgICAgICAgICAyMDE1LTEwLTMwICA1NDUxICAJc3RydWN0IGRldmljZV9u b2RlICpucCA9IHNwaV9ub3JfZ2V0X2ZsYXNoX25vZGUobm9yKTsKMWUzNWE1Njc4MWI0YjUgVHVk b3IgQW1iYXJ1cyAgICAgICAgICAgMjAxOS0wOC0yMyAgNTQ1MiAgCXN0cnVjdCBzcGlfbm9yX2Zs YXNoX3BhcmFtZXRlciAqcGFyYW1zID0gJm5vci0+cGFyYW1zOwpiMTk5NDg5ZDM3YjIxYyBIdWFu ZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NDUzICAJaW50IHJldDsKYjE5OTQ4OWQz N2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTQ1NCAgCWludCBpOwo0 YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5IEA1NDU1ICAJ c3RydWN0IGRldmljZV9ub2RlICpucF9zcGk7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgIDIwMjAtMDEtMTkgIDU0NTYgIAl1MzIgaXNfZHVhbDsKYjE5OTQ4OWQzN2IyMWMg SHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTQ1NyAgCmIxOTk0ODlkMzdiMjFj IEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU0NTggIAlyZXQgPSBzcGlfbm9y X2NoZWNrKG5vcik7CmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQt MDItMjQgIDU0NTkgIAlpZiAocmV0KQpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAg ICAgICAyMDE0LTAyLTI0ICA1NDYwICAJCXJldHVybiByZXQ7CmIxOTk0ODlkMzdiMjFjIEh1YW5n IFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU0NjEgIApjZmM1NjA0YzQ4OGNjZCBDeXJp bGxlIFBpdGNoZW4gICAgICAgICAyMDE3LTA0LTI1ICA1NDYyICAJLyogUmVzZXQgU1BJIHByb3Rv Y29sIGZvciBhbGwgY29tbWFuZHMuICovCmNmYzU2MDRjNDg4Y2NkIEN5cmlsbGUgUGl0Y2hlbiAg ICAgICAgIDIwMTctMDQtMjUgIDU0NjMgIAlub3ItPnJlZ19wcm90byA9IFNOT1JfUFJPVE9fMV8x XzE7CmNmYzU2MDRjNDg4Y2NkIEN5cmlsbGUgUGl0Y2hlbiAgICAgICAgIDIwMTctMDQtMjUgIDU0 NjQgIAlub3ItPnJlYWRfcHJvdG8gPSBTTk9SX1BST1RPXzFfMV8xOwpjZmM1NjA0YzQ4OGNjZCBD eXJpbGxlIFBpdGNoZW4gICAgICAgICAyMDE3LTA0LTI1ICA1NDY1ICAJbm9yLT53cml0ZV9wcm90 byA9IFNOT1JfUFJPVE9fMV8xXzE7CmNmYzU2MDRjNDg4Y2NkIEN5cmlsbGUgUGl0Y2hlbiAgICAg ICAgIDIwMTctMDQtMjUgIDU0NjYgIApmMTczZjI2YTRkNTQzZiBWaWduZXNoIFJhZ2hhdmVuZHJh ICAgICAyMDE5LTA4LTA2ICA1NDY3ICAJLyoKZjE3M2YyNmE0ZDU0M2YgVmlnbmVzaCBSYWdoYXZl bmRyYSAgICAgMjAxOS0wOC0wNiAgNTQ2OCAgCSAqIFdlIG5lZWQgdGhlIGJvdW5jZSBidWZmZXIg ZWFybHkgdG8gcmVhZC93cml0ZSByZWdpc3RlcnMgd2hlbiBnb2luZwpmMTczZjI2YTRkNTQzZiBW aWduZXNoIFJhZ2hhdmVuZHJhICAgICAyMDE5LTA4LTA2ICA1NDY5ICAJICogdGhyb3VnaCB0aGUg c3BpLW1lbSBsYXllciAoYnVmZmVycyBoYXZlIHRvIGJlIERNQS1hYmxlKS4KYjM1YjlhMTAzNjJk MjAgQm9yaXMgQnJlemlsbG9uICAgICAgICAgMjAxOS0wOC0wNiAgNTQ3MCAgCSAqIEZvciBzcGkt bWVtIGRyaXZlcnMsIHdlJ2xsIHJlYWxsb2NhdGUgYSBuZXcgYnVmZmVyIGlmCmIzNWI5YTEwMzYy ZDIwIEJvcmlzIEJyZXppbGxvbiAgICAgICAgIDIwMTktMDgtMDYgIDU0NzEgIAkgKiBub3ItPnBh Z2Vfc2l6ZSB0dXJucyBvdXQgdG8gYmUgZ3JlYXRlciB0aGFuIFBBR0VfU0laRSAod2hpY2gKYjM1 YjlhMTAzNjJkMjAgQm9yaXMgQnJlemlsbG9uICAgICAgICAgMjAxOS0wOC0wNiAgNTQ3MiAgCSAq IHNob3VsZG4ndCBoYXBwZW4gYmVmb3JlIGxvbmcgc2luY2UgTk9SIHBhZ2VzIGFyZSB1c3VhbGx5 IGxlc3MKYjM1YjlhMTAzNjJkMjAgQm9yaXMgQnJlemlsbG9uICAgICAgICAgMjAxOS0wOC0wNiAg NTQ3MyAgCSAqIHRoYW4gMUtCKSBhZnRlciBzcGlfbm9yX3NjYW4oKSByZXR1cm5zLgpmMTczZjI2 YTRkNTQzZiBWaWduZXNoIFJhZ2hhdmVuZHJhICAgICAyMDE5LTA4LTA2ICA1NDc0ICAJICovCmYx NzNmMjZhNGQ1NDNmIFZpZ25lc2ggUmFnaGF2ZW5kcmEgICAgIDIwMTktMDgtMDYgIDU0NzUgIAlu b3ItPmJvdW5jZWJ1Zl9zaXplID0gUEFHRV9TSVpFOwpmMTczZjI2YTRkNTQzZiBWaWduZXNoIFJh Z2hhdmVuZHJhICAgICAyMDE5LTA4LTA2ICA1NDc2ICAJbm9yLT5ib3VuY2VidWYgPSBkZXZtX2tt YWxsb2MoZGV2LCBub3ItPmJvdW5jZWJ1Zl9zaXplLApmMTczZjI2YTRkNTQzZiBWaWduZXNoIFJh Z2hhdmVuZHJhICAgICAyMDE5LTA4LTA2ICA1NDc3ICAJCQkJICAgICAgR0ZQX0tFUk5FTCk7CmYx NzNmMjZhNGQ1NDNmIFZpZ25lc2ggUmFnaGF2ZW5kcmEgICAgIDIwMTktMDgtMDYgIDU0NzggIAlp ZiAoIW5vci0+Ym91bmNlYnVmKQpmMTczZjI2YTRkNTQzZiBWaWduZXNoIFJhZ2hhdmVuZHJhICAg ICAyMDE5LTA4LTA2ICA1NDc5ICAJCXJldHVybiAtRU5PTUVNOwpmMTczZjI2YTRkNTQzZiBWaWdu ZXNoIFJhZ2hhdmVuZHJhICAgICAyMDE5LTA4LTA2ICA1NDgwICAKNjIwZGYyNDk3NDE1YTkgVHVk b3IgQW1iYXJ1cyAgICAgICAgICAgMjAxOS0wOC0yNCAgNTQ4MSAgCWluZm8gPSBzcGlfbm9yX2dl dF9mbGFzaF9pbmZvKG5vciwgbmFtZSk7CjYyMGRmMjQ5NzQxNWE5IFR1ZG9yIEFtYmFydXMgICAg ICAgICAgIDIwMTktMDgtMjQgIDU0ODIgIAlpZiAoSVNfRVJSKGluZm8pKQo2MjBkZjI0OTc0MTVh OSBUdWRvciBBbWJhcnVzICAgICAgICAgICAyMDE5LTA4LTI0ICA1NDgzICAJCXJldHVybiBQVFJf RVJSKGluZm8pOwpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAy LTI0ICA1NDg0ICAKYjI5NjM3OWZlZjdjZTkgQm9yaXMgQnJlemlsbG9uICAgICAgICAgMjAxOC0x Mi0wNiAgNTQ4NSAgCW5vci0+aW5mbyA9IGluZm87CmIyOTYzNzlmZWY3Y2U5IEJvcmlzIEJyZXpp bGxvbiAgICAgICAgIDIwMTgtMTItMDYgIDU0ODYgIApkY2M5MzViMDZmMWYyOSBaaHVvaGFvIExl ZSAgICAgICAgICAgICAyMDE5LTA4LTI4ICA1NDg3ICAJc3BpX25vcl9kZWJ1Z2ZzX2luaXQobm9y LCBpbmZvKTsKZGNjOTM1YjA2ZjFmMjkgWmh1b2hhbyBMZWUgICAgICAgICAgICAgMjAxOS0wOC0y OCAgNTQ4OCAgCmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDIt MjQgIDU0ODkgIAltdXRleF9pbml0KCZub3ItPmxvY2spOwpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBT aGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NDkwICAKZTk5Y2E5OGYxZDcxOTAgUmljYXJk byBSaWJhbGRhIERlbGdhZG8gMjAxNi0xMi0wMiAgNTQ5MSAgCS8qCmU5OWNhOThmMWQ3MTkwIFJp Y2FyZG8gUmliYWxkYSBEZWxnYWRvIDIwMTYtMTItMDIgIDU0OTIgIAkgKiBNYWtlIHN1cmUgdGhl IFhTUl9SRFkgZmxhZyBpcyBzZXQgYmVmb3JlIGNhbGxpbmcKZTk5Y2E5OGYxZDcxOTAgUmljYXJk byBSaWJhbGRhIERlbGdhZG8gMjAxNi0xMi0wMiAgNTQ5MyAgCSAqIHNwaV9ub3Jfd2FpdF90aWxs X3JlYWR5KCkuIFhpbGlueCBTM0FOIHNoYXJlIE1GUgplOTljYTk4ZjFkNzE5MCBSaWNhcmRvIFJp YmFsZGEgRGVsZ2FkbyAyMDE2LTEyLTAyICA1NDk0ICAJICogd2l0aCBBdG1lbCBzcGktbm9yCmU5 OWNhOThmMWQ3MTkwIFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDIwMTYtMTItMDIgIDU0OTUgIAkg Ki8KYWQzYmJhMDZiNjM2OTcgQm9yaXMgQnJlemlsbG9uICAgICAgICAgMjAxOS0wNy0zMCAgNTQ5 NiAgCWlmIChpbmZvLT5mbGFncyAmIFNQSV9OT1JfWFNSX1JEWSkKZTk5Y2E5OGYxZDcxOTAgUmlj YXJkbyBSaWJhbGRhIERlbGdhZG8gMjAxNi0xMi0wMiAgNTQ5NyAgCQlub3ItPmZsYWdzIHw9ICBT Tk9SX0ZfUkVBRFlfWFNSX1JEWTsKZTk5Y2E5OGYxZDcxOTAgUmljYXJkbyBSaWJhbGRhIERlbGdh ZG8gMjAxNi0xMi0wMiAgNTQ5OCAgCmRmZjk3MjQ1OGFjYjA1IEJvcmlzIEJyZXppbGxvbiAgICAg ICAgIDIwMTktMDgtMjQgIDU0OTkgIAlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX0hBU19MT0NL KQpkZmY5NzI0NThhY2IwNSBCb3JpcyBCcmV6aWxsb24gICAgICAgICAyMDE5LTA4LTI0ICA1NTAw ICAJCW5vci0+ZmxhZ3MgfD0gU05PUl9GX0hBU19MT0NLOwpkZmY5NzI0NThhY2IwNSBCb3JpcyBC cmV6aWxsb24gICAgICAgICAyMDE5LTA4LTI0ICA1NTAxICAKYmM5ODM0ZDgyZmZiMTMgU2FpIEty aXNobmEgUG90dGh1cmkgICAgMjAxOS0xMi0yNiAgNTUwMiAgCWlmICgodTE2KUpFREVDX01GUihu b3ItPmluZm8pICE9IFNOT1JfTUZSX01JQ1JPTikKYmM5ODM0ZDgyZmZiMTMgU2FpIEtyaXNobmEg UG90dGh1cmkgICAgMjAxOS0xMi0yNiAgNTUwMyAgCQlub3ItPmZsYWdzIHw9IFNOT1JfRl9CUk9L RU5fT0NUQUxfRERSOwpiYzk4MzRkODJmZmIxMyBTYWkgS3Jpc2huYSBQb3R0aHVyaSAgICAyMDE5 LTEyLTI2ICA1NTA0ICAKMTkxZjVjMmVkNGI2ZmEgVHVkb3IgQW1iYXJ1cyAgICAgICAgICAgMjAx OS0wNi0xMCAgNTUwNSAgCS8qCjE5MWY1YzJlZDRiNmZhIFR1ZG9yIEFtYmFydXMgICAgICAgICAg IDIwMTktMDYtMTAgIDU1MDYgIAkgKiBBdG1lbCwgU1NULCBJbnRlbC9OdW1vbnl4LCBhbmQgb3Ro ZXJzIHNlcmlhbCBOT1IgdGVuZCB0byBwb3dlciB1cAoxOTFmNWMyZWQ0YjZmYSBUdWRvciBBbWJh cnVzICAgICAgICAgICAyMDE5LTA2LTEwICA1NTA3ICAJICogd2l0aCB0aGUgc29mdHdhcmUgcHJv dGVjdGlvbiBiaXRzIHNldC4KMTkxZjVjMmVkNGI2ZmEgVHVkb3IgQW1iYXJ1cyAgICAgICAgICAg MjAxOS0wNi0xMCAgNTUwOCAgCSAqLwoxOTFmNWMyZWQ0YjZmYSBUdWRvciBBbWJhcnVzICAgICAg ICAgICAyMDE5LTA2LTEwICA1NTA5ICAJaWYgKEpFREVDX01GUihub3ItPmluZm8pID09IFNOT1Jf TUZSX0FUTUVMIHx8CjE5MWY1YzJlZDRiNmZhIFR1ZG9yIEFtYmFydXMgICAgICAgICAgIDIwMTkt MDYtMTAgIDU1MTAgIAkgICAgSkVERUNfTUZSKG5vci0+aW5mbykgPT0gU05PUl9NRlJfSU5URUwg fHwKMTkxZjVjMmVkNGI2ZmEgVHVkb3IgQW1iYXJ1cyAgICAgICAgICAgMjAxOS0wNi0xMCAgNTUx MSAgCSAgICBKRURFQ19NRlIobm9yLT5pbmZvKSA9PSBTTk9SX01GUl9TU1QgfHwKNGExNWUzOTZl NTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTUxMiAgCSAgICBub3It PmluZm8tPmZsYWdzICYgU1BJX05PUl9IQVNfTE9DSykgewo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1 bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTEzICAJCXdyaXRlX2VuYWJsZShub3IpOwo0 YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTE0ICAJ CXdyaXRlX3NyKG5vciwgMCk7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAg IDIwMjAtMDEtMTkgIDU1MTUgIAkJaWYgKGluZm8tPmZsYWdzICYgU1NUX0dMT0JBTF9QUk9UX1VO TEspIHsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAg NTUxNiAgCQkJd3JpdGVfZW5hYmxlKG5vcik7CmFiZDNlZGYwYTFjNzI0IEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgIDIwMjAtMDItMTcgIDU1MTcgIAkJCWlmIChub3ItPnNwaW1lbSkgewphYmQzZWRm MGExYzcyNCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAyLTE3ICA1NTE4ICAJCQkJc3Ry dWN0IHNwaV9tZW1fb3Agb3AgPQphYmQzZWRmMGExYzcyNCBBbWl0IEt1bWFyIE1haGFwYXRyYSAg ICAyMDIwLTAyLTE3ICA1NTE5ICAJCQkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoR0xPQkFM X0JMS1BST1RfVU5MSywgMSksCmFiZDNlZGYwYTFjNzI0IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAg IDIwMjAtMDItMTcgIDU1MjAgIAkJCQkJCSAgIFNQSV9NRU1fT1BfTk9fQUREUiwKYWJkM2VkZjBh MWM3MjQgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMi0xNyAgNTUyMSAgCQkJCQkJICAg U1BJX01FTV9PUF9OT19EVU1NWSwKYWJkM2VkZjBhMWM3MjQgQW1pdCBLdW1hciBNYWhhcGF0cmEg ICAgMjAyMC0wMi0xNyAgNTUyMiAgCQkJCQkJICAgU1BJX01FTV9PUF9OT19EQVRBKTsKYWJkM2Vk ZjBhMWM3MjQgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMi0xNyAgNTUyMyAgCmFiZDNl ZGYwYTFjNzI0IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDItMTcgIDU1MjQgIAkJCQlz cGlfbWVtX2V4ZWNfb3Aobm9yLT5zcGltZW0sICZvcCk7CmFiZDNlZGYwYTFjNzI0IEFtaXQgS3Vt YXIgTWFoYXBhdHJhICAgIDIwMjAtMDItMTcgIDU1MjUgIAkJCX0gZWxzZSB7CjRhMTVlMzk2ZTUw MGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1MjYgIAkJCQkvKiBVbmxv Y2sgZ2xvYmFsIHdyaXRlIHByb3RlY3Rpb24gYml0cyAqLwo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1 bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTI3ICAJCQkJbm9yLT53cml0ZV9yZWcobm9y LCBHTE9CQUxfQkxLUFJPVF9VTkxLLCBOVUxMLCAwKTsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1h ciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTUyOCAgCQkJfQphYmQzZWRmMGExYzcyNCBBbWl0 IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAyLTE3ICA1NTI5ICAJCX0KNGExNWUzOTZlNTAwYTAg QW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTUzMCAgCQlzcGlfbm9yX3dhaXRf dGlsbF9yZWFkeShub3IpOwo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAy MDIwLTAxLTE5ICA1NTMxICAJfQoxOTFmNWMyZWQ0YjZmYSBUdWRvciBBbWJhcnVzICAgICAgICAg ICAyMDE5LTA2LTEwICA1NTMyICAKMWMxZDhkOThlMWM3MDYgVHVkb3IgQW1iYXJ1cyAgICAgICAg ICAgMjAxOS0wOC0yNCAgNTUzMyAgCS8qIEluaXQgZmxhc2ggcGFyYW1ldGVycyBiYXNlZCBvbiBm bGFzaF9pbmZvIHN0cnVjdCBhbmQgU0ZEUCAqLwoxYzFkOGQ5OGUxYzcwNiBUdWRvciBBbWJhcnVz ICAgICAgICAgICAyMDE5LTA4LTI0ICA1NTM0ICAJc3BpX25vcl9pbml0X3BhcmFtcyhub3IpOwpj ZmM1NjA0YzQ4OGNjZCBDeXJpbGxlIFBpdGNoZW4gICAgICAgICAyMDE3LTA0LTI1ICA1NTM1ICAK MzJmMWI3YzgzNTJmZDMgUmFmYcWCIE1pxYJlY2tpICAgICAgICAgICAyMDE0LTA5LTI4ICA1NTM2 ICAJaWYgKCFtdGQtPm5hbWUpCmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAg IDIwMTQtMDItMjQgIDU1MzcgIAkJbXRkLT5uYW1lID0gZGV2X25hbWUoZGV2KTsKYzllYzM5MDBh YmYyNzkgQnJpYW4gTm9ycmlzICAgICAgICAgICAgMjAxNS0wOC0xMyAgNTUzOCAgCW10ZC0+cHJp diA9IG5vcjsKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0y NCAgNTUzOSAgCW10ZC0+dHlwZSA9IE1URF9OT1JGTEFTSDsKYjE5OTQ4OWQzN2IyMWMgSHVhbmcg U2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTU0MCAgCW10ZC0+d3JpdGVzaXplID0gMTsK YjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTU0MSAg CW10ZC0+ZmxhZ3MgPSBNVERfQ0FQX05PUkZMQVNIOwoxZTM1YTU2NzgxYjRiNSBUdWRvciBBbWJh cnVzICAgICAgICAgICAyMDE5LTA4LTIzICA1NTQyICAJbXRkLT5zaXplID0gcGFyYW1zLT5zaXpl OwpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NTQz ICAJbXRkLT5fZXJhc2UgPSBzcGlfbm9yX2VyYXNlOwpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlq aWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NTQ0ICAJbXRkLT5fcmVhZCA9IHNwaV9ub3JfcmVh ZDsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU0 NSAgCW5vci0+cGFnZV9zaXplID0gcGFyYW1zLT5wYWdlX3NpemU7CjRhMTVlMzk2ZTUwMGEwIEFt aXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NDYgICNpZmRlZiBDT05GSUdfT0YK NGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU0NyAg CW5wX3NwaSA9IG9mX2dldF9uZXh0X3BhcmVudChucCk7CmU0OGUyMmJhOWRmMzA0IEFtaXQgS3Vt YXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NDggIAlpZiAoKChvZl9wcm9wZXJ0eV9tYXRj aF9zdHJpbmcobnBfc3BpLCAiY29tcGF0aWJsZSIsCmU0OGUyMmJhOWRmMzA0IEFtaXQgS3VtYXIg TWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NDkgIAkJCQkgICAgICAgInhsbngsenlucS1xc3Bp LTEuMCIpID49IDApIHx8CmU0OGUyMmJhOWRmMzA0IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIw MjAtMDEtMTkgIDU1NTAgIAkJKG9mX3Byb3BlcnR5X21hdGNoX3N0cmluZyhucF9zcGksICJjb21w YXRpYmxlIiwKZTQ4ZTIyYmE5ZGYzMDQgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0x OSAgNTU1MSAgCQkJCSJ4bG54LHp5bnFtcC1xc3BpLTEuMCIpID49IDApKSB8fAplNDhlMjJiYTlk ZjMwNCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTUyICAJCShvZl9wcm9w ZXJ0eV9tYXRjaF9zdHJpbmcobnBfc3BpLCAiY29tcGF0aWJsZSIsCmU0OGUyMmJhOWRmMzA0IEFt aXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NTMgIAkJCQkieGxueCx2ZXJzYWwt cXNwaS0xLjAiKSA+PSAwKSkgewo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAg ICAyMDIwLTAxLTE5ICA1NTU0ICAJCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihucF9zcGksICJp cy1kdWFsIiwKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0x OSAgNTU1NSAgCQkJCQkgJmlzX2R1YWwpIDwgMCkgewo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFy IE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTU2ICAJCQkvKiBEZWZhdWx0IHRvIHNpbmdsZSBp ZiBwcm9wIG5vdCBkZWZpbmVkICovCjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJh ICAgIDIwMjAtMDEtMTkgIDU1NTcgIAkJCW5vci0+c2hpZnQgPSAwOwo0YTE1ZTM5NmU1MDBhMCBB bWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTU4ICAJCQlub3ItPmlzc3RhY2tl ZCA9IDA7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkg IDU1NTkgIAkJCW5vci0+aXNwYXJhbGxlbCA9IDA7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIg TWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NjAgIAkJfSBlbHNlIHsKNGExNWUzOTZlNTAwYTAg QW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU2MSAgCQkJaWYgKGlzX2R1YWwg PT0gMSkgewo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5 ICA1NTYyICAJCQkJLyogZHVhbCBwYXJhbGxlbCAqLwo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFy IE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTYzICAJCQkJbm9yLT5zaGlmdCA9IDE7CjRhMTVl Mzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NjQgIAkJCQlp bmZvLT5zZWN0b3Jfc2l6ZSA8PD0gbm9yLT5zaGlmdDsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1h ciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU2NSAgCQkJCWluZm8tPnBhZ2Vfc2l6ZSA8PD0g bm9yLT5zaGlmdDsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0w MS0xOSAgNTU2NiAgCQkJCW10ZC0+c2l6ZSA8PD0gbm9yLT5zaGlmdDsKNGExNWUzOTZlNTAwYTAg QW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU2NyAgCQkJCW5vci0+aXNwYXJh bGxlbCA9IDE7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEt MTkgIDU1NjggIAkJCQlub3ItPmlzc3RhY2tlZCA9IDA7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3Vt YXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NjkgIAkJCQlub3ItPnNwaS0+bWFzdGVyLT5m bGFncyB8PQplNDhlMjJiYTlkZjMwNCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5 ICA1NTcwICAJCQkJCQkoU1BJX01BU1RFUl9EQVRBX1NUUklQRQplNDhlMjJiYTlkZjMwNCBBbWl0 IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTcxICAJCQkJCQl8IFNQSV9NQVNURVJf Qk9USF9DUyk7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEt MTkgIDU1NzIgIAkJCX0gZWxzZSB7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJh ICAgIDIwMjAtMDEtMTkgIDU1NzMgICNpZmRlZiBDT05GSUdfU1BJX1pZTlFfUVNQSV9EVUFMX1NU QUNLRUQKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAg NTU3NCAgCQkJCS8qIGR1YWwgc3RhY2tlZCAqLwo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1h aGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTc1ICAJCQkJbm9yLT5zaGlmdCA9IDA7CjRhMTVlMzk2 ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NzYgIAkJCQltdGQt PnNpemUgPDw9IDE7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAt MDEtMTkgIDU1NzcgIAkJCQlpbmZvLT5uX3NlY3RvcnMgPDw9IDE7CjRhMTVlMzk2ZTUwMGEwIEFt aXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1NzggIAkJCQlub3ItPmlzc3RhY2tl ZCA9IDE7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkg IDU1NzkgIAkJCQlub3ItPmlzcGFyYWxsZWwgPSAwOwo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFy IE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTgwICAjZWxzZQo0YTE1ZTM5NmU1MDBhMCBBbWl0 IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTgxICAJCQkJdTMyIGlzX3N0YWNrZWQ7 CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1ODIg IAo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTgz ICAJCQkJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wX3NwaSwKNGExNWUzOTZlNTAwYTAgQW1p dCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU4NCAgCQkJCQkJCSAiaXMtc3RhY2tl ZCIsCjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1 ODUgIAkJCQkJCQkgJmlzX3N0YWNrZWQpIDwgMCkgewo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFy IE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTg2ICAJCQkJCWlzX3N0YWNrZWQgPSAwOwo0YTE1 ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTg3ICAJCQkJ fQo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTg4 ICAJCQkJaWYgKGlzX3N0YWNrZWQpIHsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0 cmEgICAgMjAyMC0wMS0xOSAgNTU4OSAgCQkJCQkvKiBkdWFsIHN0YWNrZWQgKi8KNGExNWUzOTZl NTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU5MCAgCQkJCQlub3It PnNoaWZ0ID0gMDsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0w MS0xOSAgNTU5MSAgCQkJCQltdGQtPnNpemUgPDw9IDE7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3Vt YXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU1OTIgIAkJCQkJaW5mby0+bl9zZWN0b3JzIDw8 PSAxOwo0YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1 NTkzICAJCQkJCW5vci0+aXNzdGFja2VkID0gMTsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBN YWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU5NCAgCQkJCQlub3ItPmlzcGFyYWxsZWwgPSAwOwo0 YTE1ZTM5NmU1MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NTk1ICAJ CQkJfSBlbHNlIHsKNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0w MS0xOSAgNTU5NiAgCQkJCQkvKiBzaW5nbGUgKi8KNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBN YWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU5NyAgCQkJCQlub3ItPnNoaWZ0ID0gMDsKNGExNWUz OTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTU5OCAgCQkJCQlu b3ItPmlzc3RhY2tlZCA9IDA7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAg IDIwMjAtMDEtMTkgIDU1OTkgIAkJCQkJbm9yLT5pc3BhcmFsbGVsID0gMDsKNGExNWUzOTZlNTAw YTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTYwMCAgCQkJCX0KNGExNWUz OTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTYwMSAgI2VuZGlm CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU2MDIg IAkJCX0KNGExNWUzOTZlNTAwYTAgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAg NTYwMyAgCQl9CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEt MTkgIDU2MDQgIAl9CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAt MDEtMTkgIDU2MDUgICNlbHNlCjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAg IDIwMjAtMDEtMTkgIDU2MDYgIAkvKiBEZWZhdWx0IHRvIHNpbmdsZSAqLwo0YTE1ZTM5NmU1MDBh MCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NjA3ICAJbm9yLT5zaGlmdCA9 IDA7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgIDIwMjAtMDEtMTkgIDU2 MDggIAlub3ItPmlzc3RhY2tlZCA9IDA7CjRhMTVlMzk2ZTUwMGEwIEFtaXQgS3VtYXIgTWFoYXBh dHJhICAgIDIwMjAtMDEtMTkgIDU2MDkgIAlub3ItPmlzcGFyYWxsZWwgPSAwOwo0YTE1ZTM5NmU1 MDBhMCBBbWl0IEt1bWFyIE1haGFwYXRyYSAgICAyMDIwLTAxLTE5ICA1NjEwICAjZW5kaWYKZDYw ODRmYzgzYzgyNDkgS2FtYWwgRGFzdSAgICAgICAgICAgICAgMjAxNy0wOC0yMiAgNTYxMSAgCW10 ZC0+X3Jlc3VtZSA9IHNwaV9ub3JfcmVzdW1lOwpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUg ICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjEyICAKZGZmOTcyNDU4YWNiMDUgQm9yaXMgQnJlemls bG9uICAgICAgICAgMjAxOS0wOC0yNCAgNTYxMyAgCWlmIChub3ItPnBhcmFtcy5sb2NraW5nX29w cykgewpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1 NjE0ICAJCW10ZC0+X2xvY2sgPSBzcGlfbm9yX2xvY2s7CmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNo aWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2MTUgIAkJbXRkLT5fdW5sb2NrID0gc3BpX25v cl91bmxvY2s7CjViZjBlNjliNjdhNTYwIEJyaWFuIE5vcnJpcyAgICAgICAgICAgIDIwMTUtMDkt MDEgIDU2MTYgIAkJbXRkLT5faXNfbG9ja2VkID0gc3BpX25vcl9pc19sb2NrZWQ7CmIxOTk0ODlk MzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2MTcgIAl9CmIxOTk0 ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2MTggIApiMTk5 NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjE5ICAJLyog c3N0IG5vciBjaGlwcyB1c2UgQUFJIHdvcmQgcHJvZ3JhbSAqLwpiMTk5NDg5ZDM3YjIxYyBIdWFu ZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjIwICAJaWYgKGluZm8tPmZsYWdzICYg U1NUX1dSSVRFKQpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAy LTI0ICA1NjIxICAJCW10ZC0+X3dyaXRlID0gc3N0X3dyaXRlOwpiMTk5NDg5ZDM3YjIxYyBIdWFu ZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjIyICAJZWxzZQpiMTk5NDg5ZDM3YjIx YyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjIzICAJCW10ZC0+X3dyaXRl ID0gc3BpX25vcl93cml0ZTsKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAg MjAxNC0wMi0yNCAgNTYyNCAgCjUxOTgzYjdkY2YzYTUwIEJyaWFuIE5vcnJpcyAgICAgICAgICAg IDIwMTQtMDktMTAgIDU2MjUgIAlpZiAoaW5mby0+ZmxhZ3MgJiBVU0VfRlNSKQo1MTk4M2I3ZGNm M2E1MCBCcmlhbiBOb3JyaXMgICAgICAgICAgICAyMDE0LTA5LTEwICA1NjI2ICAJCW5vci0+Zmxh Z3MgfD0gU05PUl9GX1VTRV9GU1I7CjNkZDgwMTJhOGVlYjM3IEJyaWFuIE5vcnJpcyAgICAgICAg ICAgIDIwMTYtMDEtMjkgIDU2MjcgIAlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX0hBU19UQikK M2RkODAxMmE4ZWViMzcgQnJpYW4gTm9ycmlzICAgICAgICAgICAgMjAxNi0wMS0yOSAgNTYyOCAg CQlub3ItPmZsYWdzIHw9IFNOT1JfRl9IQVNfU1JfVEI7CjJmNWFkN2YwZjNlMTY3IG1hci5rcnpl bWluc2tpICAgICAgICAgIDIwMTctMDEtMDYgIDU2MjkgIAlpZiAoaW5mby0+ZmxhZ3MgJiBOT19D SElQX0VSQVNFKQoyZjVhZDdmMGYzZTE2NyBtYXIua3J6ZW1pbnNraSAgICAgICAgICAyMDE3LTAx LTA2ICA1NjMwICAJCW5vci0+ZmxhZ3MgfD0gU05PUl9GX05PX09QX0NISVBfRVJBU0U7CmM0YjNl YWNjMWRmZWY1IEFsZXhhbmRlciBTdmVyZGxpbiAgICAgIDIwMTctMDctMTcgIDU2MzEgIAlpZiAo aW5mby0+ZmxhZ3MgJiBVU0VfQ0xTUikKYzRiM2VhY2MxZGZlZjUgQWxleGFuZGVyIFN2ZXJkbGlu ICAgICAgMjAxNy0wNy0xNyAgNTYzMiAgCQlub3ItPmZsYWdzIHw9IFNOT1JfRl9VU0VfQ0xTUjsK YzE0ZGVkZGVjMWZiZDggZ3Jtb29yZUBhbHRlcmEuY29tICAgICAgMjAxNC0wNC0yOSAgNTYzMyAg CmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2MzQg IAlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX05PX0VSQVNFKQpiMTk5NDg5ZDM3YjIxYyBIdWFu ZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjM1ICAJCW10ZC0+ZmxhZ3MgfD0gTVRE X05PX0VSQVNFOwpiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAy LTI0ICA1NjM2ICAKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0w Mi0yNCAgNTYzNyAgCW10ZC0+ZGV2LnBhcmVudCA9IGRldjsKNGExNWUzOTZlNTAwYTAgQW1pdCBL dW1hciBNYWhhcGF0cmEgICAgMjAyMC0wMS0xOSAgNTYzOCAgCW5vci0+amVkZWNfaWQgPSBpbmZv LT5pZFswXTsKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0y NCAgNTYzOSAgCW10ZC0+d3JpdGVidWZzaXplID0gbm9yLT5wYWdlX3NpemU7CmIxOTk0ODlkMzdi MjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2NDAgIApiYjI3NjI2MmU4 OGRhZSBCcmlhbiBOb3JyaXMgICAgICAgICAgICAyMDE4LTA3LTI3ICA1NjQxICAJaWYgKG9mX3By b3BlcnR5X3JlYWRfYm9vbChucCwgImJyb2tlbi1mbGFzaC1yZXNldCIpKQpiYjI3NjI2MmU4OGRh ZSBCcmlhbiBOb3JyaXMgICAgICAgICAgICAyMDE4LTA3LTI3ICA1NjQyICAJCW5vci0+ZmxhZ3Mg fD0gU05PUl9GX0JST0tFTl9SRVNFVDsKYmIyNzYyNjJlODhkYWUgQnJpYW4gTm9ycmlzICAgICAg ICAgICAgMjAxOC0wNy0yNyAgNTY0MyAgCmNmYzU2MDRjNDg4Y2NkIEN5cmlsbGUgUGl0Y2hlbiAg ICAgICAgIDIwMTctMDQtMjUgIDU2NDQgIAkvKgpjZmM1NjA0YzQ4OGNjZCBDeXJpbGxlIFBpdGNo ZW4gICAgICAgICAyMDE3LTA0LTI1ICA1NjQ1ICAJICogQ29uZmlndXJlIHRoZSBTUEkgbWVtb3J5 OgpjZmM1NjA0YzQ4OGNjZCBDeXJpbGxlIFBpdGNoZW4gICAgICAgICAyMDE3LTA0LTI1ICA1NjQ2 ICAJICogLSBzZWxlY3Qgb3AgY29kZXMgZm9yIChGYXN0KSBSZWFkLCBQYWdlIFByb2dyYW0gYW5k IFNlY3RvciBFcmFzZS4KY2ZjNTYwNGM0ODhjY2QgQ3lyaWxsZSBQaXRjaGVuICAgICAgICAgMjAx Ny0wNC0yNSAgNTY0NyAgCSAqIC0gc2V0IHRoZSBudW1iZXIgb2YgZHVtbXkgY3ljbGVzIChtb2Rl IGN5Y2xlcyArIHdhaXQgc3RhdGVzKS4KY2ZjNTYwNGM0ODhjY2QgQ3lyaWxsZSBQaXRjaGVuICAg ICAgICAgMjAxNy0wNC0yNSAgNTY0OCAgCSAqIC0gc2V0IHRoZSBTUEkgcHJvdG9jb2xzIGZvciBy ZWdpc3RlciBhbmQgbWVtb3J5IGFjY2Vzc2VzLgpjZmM1NjA0YzQ4OGNjZCBDeXJpbGxlIFBpdGNo ZW4gICAgICAgICAyMDE3LTA0LTI1ICA1NjQ5ICAJICovCjFlMzVhNTY3ODFiNGI1IFR1ZG9yIEFt YmFydXMgICAgICAgICAgIDIwMTktMDgtMjMgIDU2NTAgIAlyZXQgPSBzcGlfbm9yX3NldHVwKG5v ciwgaHdjYXBzKTsKY2ZjNTYwNGM0ODhjY2QgQ3lyaWxsZSBQaXRjaGVuICAgICAgICAgMjAxNy0w NC0yNSAgNTY1MSAgCWlmIChyZXQpCmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAg ICAgIDIwMTQtMDItMjQgIDU2NTIgIAkJcmV0dXJuIHJldDsKYjE5OTQ4OWQzN2IyMWMgSHVhbmcg U2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY1MyAgCjkyMDk0ZWJjMzg1ZWY1IEJvcmlz IEJyZXppbGxvbiAgICAgICAgIDIwMTktMDgtMjQgIDU2NTQgIAlpZiAoaW5mby0+ZmxhZ3MgJiBT UElfTk9SXzRCX09QQ09ERVMpCjU0OGVkNjg0N2Y1MzAzIEJvcmlzIEJyZXppbGxvbiAgICAgICAg IDIwMTgtMTItMDYgIDU2NTUgIAkJbm9yLT5mbGFncyB8PSBTTk9SX0ZfNEJfT1BDT0RFUzsKNTQ4 ZWQ2ODQ3ZjUzMDMgQm9yaXMgQnJlemlsbG9uICAgICAgICAgMjAxOC0xMi0wNiAgNTY1NiAgCjY5 NmNlNTBmNGU5Mzc3IFR1ZG9yIEFtYmFydXMgICAgICAgICAgIDIwMTktMDgtMjQgIDU2NTcgIAly ZXQgPSBzcGlfbm9yX3NldF9hZGRyX3dpZHRoKG5vcik7CjY5NmNlNTBmNGU5Mzc3IFR1ZG9yIEFt YmFydXMgICAgICAgICAgIDIwMTktMDgtMjQgIDU2NTggIAlpZiAocmV0KQo2OTZjZTUwZjRlOTM3 NyBUdWRvciBBbWJhcnVzICAgICAgICAgICAyMDE5LTA4LTI0ICA1NjU5ICAJCXJldHVybiByZXQ7 CmM2N2NiYjgzOWRhOWNjIEJyaWFuIE5vcnJpcyAgICAgICAgICAgIDIwMTUtMTEtMTAgIDU2NjAg IAo0NmRkZTAxZjZiYWIzNSBLYW1hbCBEYXN1ICAgICAgICAgICAgICAyMDE3LTA4LTIyICA1NjYx ICAJLyogU2VuZCBhbGwgdGhlIHJlcXVpcmVkIFNQSSBmbGFzaCBjb21tYW5kcyB0byBpbml0aWFs aXplIGRldmljZSAqLwo0NmRkZTAxZjZiYWIzNSBLYW1hbCBEYXN1ICAgICAgICAgICAgICAyMDE3 LTA4LTIyICA1NjYyICAJcmV0ID0gc3BpX25vcl9pbml0KG5vcik7CjQ2ZGRlMDFmNmJhYjM1IEth bWFsIERhc3UgICAgICAgICAgICAgIDIwMTctMDgtMjIgIDU2NjMgIAlpZiAocmV0KQo0NmRkZTAx ZjZiYWIzNSBLYW1hbCBEYXN1ICAgICAgICAgICAgICAyMDE3LTA4LTIyICA1NjY0ICAJCXJldHVy biByZXQ7CjQ2ZGRlMDFmNmJhYjM1IEthbWFsIERhc3UgICAgICAgICAgICAgIDIwMTctMDgtMjIg IDU2NjUgIAowNmJiNmY1YTY5ZGZjNSBSYWZhxYIgTWnFgmVja2kgICAgICAgICAgIDIwMTUtMDgt MTAgIDU2NjYgIAlkZXZfaW5mbyhkZXYsICIlcyAoJWxsZCBLYnl0ZXMpXG4iLCBpbmZvLT5uYW1l LApiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjY3 ICAJCQkobG9uZyBsb25nKW10ZC0+c2l6ZSA+PiAxMCk7CmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNo aWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2NjggIApiMTk5NDg5ZDM3YjIxYyBIdWFuZyBT aGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjY5ICAJZGV2X2RiZyhkZXYsCmIxOTk0ODlk MzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2NzAgIAkJIm10ZCAu bmFtZSA9ICVzLCAuc2l6ZSA9IDB4JWxseCAoJWxsZE1pQiksICIKYjE5OTQ4OWQzN2IyMWMgSHVh bmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY3MSAgCQkiLmVyYXNlc2l6ZSA9IDB4 JS44eCAoJXVLaUIpIC5udW1lcmFzZXJlZ2lvbnMgPSAlZFxuIiwKYjE5OTQ4OWQzN2IyMWMgSHVh bmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY3MiAgCQltdGQtPm5hbWUsIChsb25n IGxvbmcpbXRkLT5zaXplLCAobG9uZyBsb25nKShtdGQtPnNpemUgPj4gMjApLApiMTk5NDg5ZDM3 YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjczICAJCW10ZC0+ZXJh c2VzaXplLCBtdGQtPmVyYXNlc2l6ZSAvIDEwMjQsIG10ZC0+bnVtZXJhc2VyZWdpb25zKTsKYjE5 OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY3NCAgCmJj OTgzNGQ4MmZmYjEzIFNhaSBLcmlzaG5hIFBvdHRodXJpICAgIDIwMTktMTItMjYgIDU2NzUgIAlp ZiAoaHdjYXBzLT5tYXNrICYgKFNOT1JfSFdDQVBTX1JFQURfOF84XzggfCBTTk9SX0hXQ0FQU19Q UF84XzhfOCkpIHsKYmM5ODM0ZDgyZmZiMTMgU2FpIEtyaXNobmEgUG90dGh1cmkgICAgMjAxOS0x Mi0yNiAgNTY3NiAgCQlpZiAoIShub3ItPmZsYWdzICYgU05PUl9GX0JST0tFTl9PQ1RBTF9ERFIp KSB7CmJjOTgzNGQ4MmZmYjEzIFNhaSBLcmlzaG5hIFBvdHRodXJpICAgIDIwMTktMTItMjYgIDU2 NzcgIAkJCXJldCA9IHNwaV9ub3Jfc3dpdGNoX21pY3Jvbl9vY3RhbF9kZHIobm9yKTsKYmM5ODM0 ZDgyZmZiMTMgU2FpIEtyaXNobmEgUG90dGh1cmkgICAgMjAxOS0xMi0yNiAgNTY3OCAgCQkJaWYg KHJldCkKYmM5ODM0ZDgyZmZiMTMgU2FpIEtyaXNobmEgUG90dGh1cmkgICAgMjAxOS0xMi0yNiAg NTY3OSAgCQkJCXJldHVybiByZXQ7CmJjOTgzNGQ4MmZmYjEzIFNhaSBLcmlzaG5hIFBvdHRodXJp ICAgIDIwMTktMTItMjYgIDU2ODAgIAkJfQpiYzk4MzRkODJmZmIxMyBTYWkgS3Jpc2huYSBQb3R0 aHVyaSAgICAyMDE5LTEyLTI2ICA1NjgxICAJfQpiYzk4MzRkODJmZmIxMyBTYWkgS3Jpc2huYSBQ b3R0aHVyaSAgICAyMDE5LTEyLTI2ICA1NjgyICAKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamll ICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY4MyAgCWlmIChtdGQtPm51bWVyYXNlcmVnaW9ucykK YjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY4NCAg CQlmb3IgKGkgPSAwOyBpIDwgbXRkLT5udW1lcmFzZXJlZ2lvbnM7IGkrKykKYjE5OTQ4OWQzN2Iy MWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY4NSAgCQkJZGV2X2RiZyhk ZXYsCmIxOTk0ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2 ODYgIAkJCQkibXRkLmVyYXNlcmVnaW9uc1slZF0gPSB7IC5vZmZzZXQgPSAweCVsbHgsICIKYjE5 OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY4NyAgCQkJ CSIuZXJhc2VzaXplID0gMHglLjh4ICgldUtpQiksICIKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hp amllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY4OCAgCQkJCSIubnVtYmxvY2tzID0gJWQgfVxu IiwKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAgNTY4 OSAgCQkJCWksIChsb25nIGxvbmcpbXRkLT5lcmFzZXJlZ2lvbnNbaV0ub2Zmc2V0LApiMTk5NDg5 ZDM3YjIxYyBIdWFuZyBTaGlqaWUgICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjkwICAJCQkJbXRk LT5lcmFzZXJlZ2lvbnNbaV0uZXJhc2VzaXplLApiMTk5NDg5ZDM3YjIxYyBIdWFuZyBTaGlqaWUg ICAgICAgICAgICAyMDE0LTAyLTI0ICA1NjkxICAJCQkJbXRkLT5lcmFzZXJlZ2lvbnNbaV0uZXJh c2VzaXplIC8gMTAyNCwKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAx NC0wMi0yNCAgNTY5MiAgCQkJCW10ZC0+ZXJhc2VyZWdpb25zW2ldLm51bWJsb2Nrcyk7CmIxOTk0 ODlkMzdiMjFjIEh1YW5nIFNoaWppZSAgICAgICAgICAgIDIwMTQtMDItMjQgIDU2OTMgIAlyZXR1 cm4gMDsKYjE5OTQ4OWQzN2IyMWMgSHVhbmcgU2hpamllICAgICAgICAgICAgMjAxNC0wMi0yNCAg NTY5NCAgfQoKLS0tCjAtREFZIENJIEtlcm5lbCBUZXN0IFNlcnZpY2UsIEludGVsIENvcnBvcmF0 aW9uCmh0dHBzOi8vbGlzdHMuMDEub3JnL2h5cGVya2l0dHkvbGlzdC9rYnVpbGQtYWxsQGxpc3Rz LjAxLm9yZyAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K a2J1aWxkIG1haWxpbmcgbGlzdCAtLSBrYnVpbGRAbGlzdHMuMDEub3JnClRvIHVuc3Vic2NyaWJl IHNlbmQgYW4gZW1haWwgdG8ga2J1aWxkLWxlYXZlQGxpc3RzLjAxLm9yZwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8742165044452939793==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: [kbuild] [xlnx:master 59/60] drivers/mtd/spi-nor/spi-nor.c:5455:22: warning: Unused variable: np_spi Date: Thu, 04 Feb 2021 14:03:01 +0300 Message-ID: <20210204110301.GJ20820@kadam> List-Id: --===============8742165044452939793== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://github.com/Xilinx/linux-xlnx master head: 043f8a226a752a1dd11f7ff64cee6dbe7334d394 commit: c0b33b8ccd38096c815f2dd39746044d0aa079d3 [59/60] staging: xlnxsync:= Fix the uapi header license compiler: nios2-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot cppcheck possible warnings: (new ones prefixed by >>, may not real problems) drivers/mtd/spi-nor/spi-nor.c:4170:24: warning: Boolean result is used i= n bitwise operation. Clarify expression with parentheses. [clarifyCondition] map_id =3D map_id << 1 | !!(*buf & read_data_mask); This works but it would be more readable as: map_id =3D (map_id << 1) | !!(*buf & read_data_mask); ^ >> drivers/mtd/spi-nor/spi-nor.c:5455:22: warning: Unused variable: np_spi = [unusedVariable] struct device_node *np_spi; ^ drivers/mtd/spi-nor/spi-nor.c:5456:6: warning: Unused variable: is_dual = [unusedVariable] u32 is_dual; ^ Add moar ifdefs! vim +5455 drivers/mtd/spi-nor/spi-nor.c cfc5604c488ccd Cyrille Pitchen 2017-04-25 5445 int spi_nor_scan(s= truct spi_nor *nor, const char *name, cfc5604c488ccd Cyrille Pitchen 2017-04-25 5446 const struct sp= i_nor_hwcaps *hwcaps) b199489d37b21c Huang Shijie 2014-02-24 5447 { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5448 struct flash_info= *info =3D NULL; b199489d37b21c Huang Shijie 2014-02-24 5449 struct device *de= v =3D nor->dev; 1976367173a47f Brian Norris 2015-08-13 5450 struct mtd_info *= mtd =3D &nor->mtd; 9c7d787508be6d Brian Norris 2015-10-30 5451 struct device_nod= e *np =3D spi_nor_get_flash_node(nor); 1e35a56781b4b5 Tudor Ambarus 2019-08-23 5452 struct spi_nor_fl= ash_parameter *params =3D &nor->params; b199489d37b21c Huang Shijie 2014-02-24 5453 int ret; b199489d37b21c Huang Shijie 2014-02-24 5454 int i; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 @5455 struct device_nod= e *np_spi; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5456 u32 is_dual; b199489d37b21c Huang Shijie 2014-02-24 5457 = b199489d37b21c Huang Shijie 2014-02-24 5458 ret =3D spi_nor_c= heck(nor); b199489d37b21c Huang Shijie 2014-02-24 5459 if (ret) b199489d37b21c Huang Shijie 2014-02-24 5460 return ret; b199489d37b21c Huang Shijie 2014-02-24 5461 = cfc5604c488ccd Cyrille Pitchen 2017-04-25 5462 /* Reset SPI prot= ocol for all commands. */ cfc5604c488ccd Cyrille Pitchen 2017-04-25 5463 nor->reg_proto = =3D SNOR_PROTO_1_1_1; cfc5604c488ccd Cyrille Pitchen 2017-04-25 5464 nor->read_proto = =3D SNOR_PROTO_1_1_1; cfc5604c488ccd Cyrille Pitchen 2017-04-25 5465 nor->write_proto = =3D SNOR_PROTO_1_1_1; cfc5604c488ccd Cyrille Pitchen 2017-04-25 5466 = f173f26a4d543f Vignesh Raghavendra 2019-08-06 5467 /* f173f26a4d543f Vignesh Raghavendra 2019-08-06 5468 * We need the bo= unce buffer early to read/write registers when going f173f26a4d543f Vignesh Raghavendra 2019-08-06 5469 * through the sp= i-mem layer (buffers have to be DMA-able). b35b9a10362d20 Boris Brezillon 2019-08-06 5470 * For spi-mem dr= ivers, we'll reallocate a new buffer if b35b9a10362d20 Boris Brezillon 2019-08-06 5471 * nor->page_size= turns out to be greater than PAGE_SIZE (which b35b9a10362d20 Boris Brezillon 2019-08-06 5472 * shouldn't happ= en before long since NOR pages are usually less b35b9a10362d20 Boris Brezillon 2019-08-06 5473 * than 1KB) afte= r spi_nor_scan() returns. f173f26a4d543f Vignesh Raghavendra 2019-08-06 5474 */ f173f26a4d543f Vignesh Raghavendra 2019-08-06 5475 nor->bouncebuf_si= ze =3D PAGE_SIZE; f173f26a4d543f Vignesh Raghavendra 2019-08-06 5476 nor->bouncebuf = =3D devm_kmalloc(dev, nor->bouncebuf_size, f173f26a4d543f Vignesh Raghavendra 2019-08-06 5477 GFP_KERN= EL); f173f26a4d543f Vignesh Raghavendra 2019-08-06 5478 if (!nor->bounceb= uf) f173f26a4d543f Vignesh Raghavendra 2019-08-06 5479 return -ENOMEM; f173f26a4d543f Vignesh Raghavendra 2019-08-06 5480 = 620df2497415a9 Tudor Ambarus 2019-08-24 5481 info =3D spi_nor_= get_flash_info(nor, name); 620df2497415a9 Tudor Ambarus 2019-08-24 5482 if (IS_ERR(info)) 620df2497415a9 Tudor Ambarus 2019-08-24 5483 return PTR_ERR(i= nfo); b199489d37b21c Huang Shijie 2014-02-24 5484 = b296379fef7ce9 Boris Brezillon 2018-12-06 5485 nor->info =3D inf= o; b296379fef7ce9 Boris Brezillon 2018-12-06 5486 = dcc935b06f1f29 Zhuohao Lee 2019-08-28 5487 spi_nor_debugfs_i= nit(nor, info); dcc935b06f1f29 Zhuohao Lee 2019-08-28 5488 = b199489d37b21c Huang Shijie 2014-02-24 5489 mutex_init(&nor->= lock); b199489d37b21c Huang Shijie 2014-02-24 5490 = e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5491 /* e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5492 * Make sure the = XSR_RDY flag is set before calling e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5493 * spi_nor_wait_t= ill_ready(). Xilinx S3AN share MFR e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5494 * with Atmel spi= -nor e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5495 */ ad3bba06b63697 Boris Brezillon 2019-07-30 5496 if (info->flags &= SPI_NOR_XSR_RDY) e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5497 nor->flags |=3D = SNOR_F_READY_XSR_RDY; e99ca98f1d7190 Ricardo Ribalda Delgado 2016-12-02 5498 = dff972458acb05 Boris Brezillon 2019-08-24 5499 if (info->flags &= SPI_NOR_HAS_LOCK) dff972458acb05 Boris Brezillon 2019-08-24 5500 nor->flags |=3D = SNOR_F_HAS_LOCK; dff972458acb05 Boris Brezillon 2019-08-24 5501 = bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5502 if ((u16)JEDEC_MF= R(nor->info) !=3D SNOR_MFR_MICRON) bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5503 nor->flags |=3D = SNOR_F_BROKEN_OCTAL_DDR; bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5504 = 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5505 /* 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5506 * Atmel, SST, In= tel/Numonyx, and others serial NOR tend to power up 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5507 * with the softw= are protection bits set. 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5508 */ 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5509 if (JEDEC_MFR(nor= ->info) =3D=3D SNOR_MFR_ATMEL || 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5510 JEDEC_MFR(nor= ->info) =3D=3D SNOR_MFR_INTEL || 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5511 JEDEC_MFR(nor= ->info) =3D=3D SNOR_MFR_SST || 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5512 nor->info->fl= ags & SPI_NOR_HAS_LOCK) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5513 write_enable(nor= ); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5514 write_sr(nor, 0); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5515 if (info->flags = & SST_GLOBAL_PROT_UNLK) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5516 write_enable(no= r); abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5517 if (nor->spimem= ) { abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5518 struct spi_mem= _op op =3D abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5519 SPI_MEM_OP(SP= I_MEM_OP_CMD(GLOBAL_BLKPROT_UNLK, 1), abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5520 SPI_MEM_O= P_NO_ADDR, abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5521 SPI_MEM_O= P_NO_DUMMY, abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5522 SPI_MEM_O= P_NO_DATA); abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5523 = abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5524 spi_mem_exec_o= p(nor->spimem, &op); abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5525 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5526 /* Unlock glob= al write protection bits */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5527 nor->write_reg= (nor, GLOBAL_BLKPROT_UNLK, NULL, 0); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5528 } abd3edf0a1c724 Amit Kumar Mahapatra 2020-02-17 5529 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5530 spi_nor_wait_til= l_ready(nor); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5531 } 191f5c2ed4b6fa Tudor Ambarus 2019-06-10 5532 = 1c1d8d98e1c706 Tudor Ambarus 2019-08-24 5533 /* Init flash par= ameters based on flash_info struct and SFDP */ 1c1d8d98e1c706 Tudor Ambarus 2019-08-24 5534 spi_nor_init_para= ms(nor); cfc5604c488ccd Cyrille Pitchen 2017-04-25 5535 = 32f1b7c8352fd3 Rafa=C5=82 Mi=C5=82ecki 2014-09-28 5536 if (!mt= d->name) b199489d37b21c Huang Shijie 2014-02-24 5537 mtd->name =3D de= v_name(dev); c9ec3900abf279 Brian Norris 2015-08-13 5538 mtd->priv =3D nor; b199489d37b21c Huang Shijie 2014-02-24 5539 mtd->type =3D MTD= _NORFLASH; b199489d37b21c Huang Shijie 2014-02-24 5540 mtd->writesize = =3D 1; b199489d37b21c Huang Shijie 2014-02-24 5541 mtd->flags =3D MT= D_CAP_NORFLASH; 1e35a56781b4b5 Tudor Ambarus 2019-08-23 5542 mtd->size =3D par= ams->size; b199489d37b21c Huang Shijie 2014-02-24 5543 mtd->_erase =3D s= pi_nor_erase; b199489d37b21c Huang Shijie 2014-02-24 5544 mtd->_read =3D sp= i_nor_read; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5545 nor->page_size = =3D params->page_size; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5546 #ifdef CONFIG_OF 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5547 np_spi =3D of_get= _next_parent(np); e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5548 if (((of_property= _match_string(np_spi, "compatible", e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5549 "xlnx,z= ynq-qspi-1.0") >=3D 0) || e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5550 (of_property_mat= ch_string(np_spi, "compatible", e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5551 "xlnx,zynqmp-q= spi-1.0") >=3D 0)) || e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5552 (of_property_mat= ch_string(np_spi, "compatible", e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5553 "xlnx,versal-q= spi-1.0") >=3D 0)) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5554 if (of_property_= read_u32(np_spi, "is-dual", 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5555 &is_dual) < = 0) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5556 /* Default to s= ingle if prop not defined */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5557 nor->shift =3D = 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5558 nor->isstacked = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5559 nor->isparallel= =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5560 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5561 if (is_dual =3D= =3D 1) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5562 /* dual parall= el */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5563 nor->shift =3D= 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5564 info->sector_s= ize <<=3D nor->shift; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5565 info->page_siz= e <<=3D nor->shift; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5566 mtd->size <<= =3D nor->shift; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5567 nor->isparalle= l =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5568 nor->isstacked= =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5569 nor->spi->mast= er->flags |=3D e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5570 (SPI_MASTER_= DATA_STRIPE e48e22ba9df304 Amit Kumar Mahapatra 2020-01-19 5571 | SPI_MASTER= _BOTH_CS); 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5572 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5573 #ifdef CONFIG_SPI_= ZYNQ_QSPI_DUAL_STACKED 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5574 /* dual stacke= d */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5575 nor->shift =3D= 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5576 mtd->size <<= =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5577 info->n_sector= s <<=3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5578 nor->isstacked= =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5579 nor->isparalle= l =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5580 #else 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5581 u32 is_stacked; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5582 = 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5583 if (of_propert= y_read_u32(np_spi, 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5584 "is-stacke= d", 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5585 &is_stacke= d) < 0) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5586 is_stacked = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5587 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5588 if (is_stacked= ) { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5589 /* dual stack= ed */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5590 nor->shift = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5591 mtd->size <<= =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5592 info->n_secto= rs <<=3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5593 nor->isstacke= d =3D 1; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5594 nor->isparall= el =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5595 } else { 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5596 /* single */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5597 nor->shift = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5598 nor->isstacke= d =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5599 nor->isparall= el =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5600 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5601 #endif 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5602 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5603 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5604 } 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5605 #else 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5606 /* Default to sin= gle */ 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5607 nor->shift =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5608 nor->isstacked = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5609 nor->isparallel = =3D 0; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5610 #endif d6084fc83c8249 Kamal Dasu 2017-08-22 5611 mtd->_resume =3D = spi_nor_resume; b199489d37b21c Huang Shijie 2014-02-24 5612 = dff972458acb05 Boris Brezillon 2019-08-24 5613 if (nor->params.l= ocking_ops) { b199489d37b21c Huang Shijie 2014-02-24 5614 mtd->_lock =3D s= pi_nor_lock; b199489d37b21c Huang Shijie 2014-02-24 5615 mtd->_unlock =3D= spi_nor_unlock; 5bf0e69b67a560 Brian Norris 2015-09-01 5616 mtd->_is_locked = =3D spi_nor_is_locked; b199489d37b21c Huang Shijie 2014-02-24 5617 } b199489d37b21c Huang Shijie 2014-02-24 5618 = b199489d37b21c Huang Shijie 2014-02-24 5619 /* sst nor chips = use AAI word program */ b199489d37b21c Huang Shijie 2014-02-24 5620 if (info->flags &= SST_WRITE) b199489d37b21c Huang Shijie 2014-02-24 5621 mtd->_write =3D = sst_write; b199489d37b21c Huang Shijie 2014-02-24 5622 else b199489d37b21c Huang Shijie 2014-02-24 5623 mtd->_write =3D = spi_nor_write; b199489d37b21c Huang Shijie 2014-02-24 5624 = 51983b7dcf3a50 Brian Norris 2014-09-10 5625 if (info->flags &= USE_FSR) 51983b7dcf3a50 Brian Norris 2014-09-10 5626 nor->flags |=3D = SNOR_F_USE_FSR; 3dd8012a8eeb37 Brian Norris 2016-01-29 5627 if (info->flags &= SPI_NOR_HAS_TB) 3dd8012a8eeb37 Brian Norris 2016-01-29 5628 nor->flags |=3D = SNOR_F_HAS_SR_TB; 2f5ad7f0f3e167 mar.krzeminski 2017-01-06 5629 if (info->flags &= NO_CHIP_ERASE) 2f5ad7f0f3e167 mar.krzeminski 2017-01-06 5630 nor->flags |=3D = SNOR_F_NO_OP_CHIP_ERASE; c4b3eacc1dfef5 Alexander Sverdlin 2017-07-17 5631 if (info->flags &= USE_CLSR) c4b3eacc1dfef5 Alexander Sverdlin 2017-07-17 5632 nor->flags |=3D = SNOR_F_USE_CLSR; c14deddec1fbd8 grmoore(a)altera.com 2014-04-29 5633 = b199489d37b21c Huang Shijie 2014-02-24 5634 if (info->flags &= SPI_NOR_NO_ERASE) b199489d37b21c Huang Shijie 2014-02-24 5635 mtd->flags |=3D = MTD_NO_ERASE; b199489d37b21c Huang Shijie 2014-02-24 5636 = b199489d37b21c Huang Shijie 2014-02-24 5637 mtd->dev.parent = =3D dev; 4a15e396e500a0 Amit Kumar Mahapatra 2020-01-19 5638 nor->jedec_id =3D= info->id[0]; b199489d37b21c Huang Shijie 2014-02-24 5639 mtd->writebufsize= =3D nor->page_size; b199489d37b21c Huang Shijie 2014-02-24 5640 = bb276262e88dae Brian Norris 2018-07-27 5641 if (of_property_r= ead_bool(np, "broken-flash-reset")) bb276262e88dae Brian Norris 2018-07-27 5642 nor->flags |=3D = SNOR_F_BROKEN_RESET; bb276262e88dae Brian Norris 2018-07-27 5643 = cfc5604c488ccd Cyrille Pitchen 2017-04-25 5644 /* cfc5604c488ccd Cyrille Pitchen 2017-04-25 5645 * Configure the = SPI memory: cfc5604c488ccd Cyrille Pitchen 2017-04-25 5646 * - select op co= des for (Fast) Read, Page Program and Sector Erase. cfc5604c488ccd Cyrille Pitchen 2017-04-25 5647 * - set the numb= er of dummy cycles (mode cycles + wait states). cfc5604c488ccd Cyrille Pitchen 2017-04-25 5648 * - set the SPI = protocols for register and memory accesses. cfc5604c488ccd Cyrille Pitchen 2017-04-25 5649 */ 1e35a56781b4b5 Tudor Ambarus 2019-08-23 5650 ret =3D spi_nor_s= etup(nor, hwcaps); cfc5604c488ccd Cyrille Pitchen 2017-04-25 5651 if (ret) b199489d37b21c Huang Shijie 2014-02-24 5652 return ret; b199489d37b21c Huang Shijie 2014-02-24 5653 = 92094ebc385ef5 Boris Brezillon 2019-08-24 5654 if (info->flags &= SPI_NOR_4B_OPCODES) 548ed6847f5303 Boris Brezillon 2018-12-06 5655 nor->flags |=3D = SNOR_F_4B_OPCODES; 548ed6847f5303 Boris Brezillon 2018-12-06 5656 = 696ce50f4e9377 Tudor Ambarus 2019-08-24 5657 ret =3D spi_nor_s= et_addr_width(nor); 696ce50f4e9377 Tudor Ambarus 2019-08-24 5658 if (ret) 696ce50f4e9377 Tudor Ambarus 2019-08-24 5659 return ret; c67cbb839da9cc Brian Norris 2015-11-10 5660 = 46dde01f6bab35 Kamal Dasu 2017-08-22 5661 /* Send all the r= equired SPI flash commands to initialize device */ 46dde01f6bab35 Kamal Dasu 2017-08-22 5662 ret =3D spi_nor_i= nit(nor); 46dde01f6bab35 Kamal Dasu 2017-08-22 5663 if (ret) 46dde01f6bab35 Kamal Dasu 2017-08-22 5664 return ret; 46dde01f6bab35 Kamal Dasu 2017-08-22 5665 = 06bb6f5a69dfc5 Rafa=C5=82 Mi=C5=82ecki 2015-08-10 5666 dev_inf= o(dev, "%s (%lld Kbytes)\n", info->name, b199489d37b21c Huang Shijie 2014-02-24 5667 (long long)mtd-= >size >> 10); b199489d37b21c Huang Shijie 2014-02-24 5668 = b199489d37b21c Huang Shijie 2014-02-24 5669 dev_dbg(dev, b199489d37b21c Huang Shijie 2014-02-24 5670 "mtd .name =3D %= s, .size =3D 0x%llx (%lldMiB), " b199489d37b21c Huang Shijie 2014-02-24 5671 ".erasesize =3D = 0x%.8x (%uKiB) .numeraseregions =3D %d\n", b199489d37b21c Huang Shijie 2014-02-24 5672 mtd->name, (long= long)mtd->size, (long long)(mtd->size >> 20), b199489d37b21c Huang Shijie 2014-02-24 5673 mtd->erasesize, = mtd->erasesize / 1024, mtd->numeraseregions); b199489d37b21c Huang Shijie 2014-02-24 5674 = bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5675 if (hwcaps->mask = & (SNOR_HWCAPS_READ_8_8_8 | SNOR_HWCAPS_PP_8_8_8)) { bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5676 if (!(nor->flags= & SNOR_F_BROKEN_OCTAL_DDR)) { bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5677 ret =3D spi_nor= _switch_micron_octal_ddr(nor); bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5678 if (ret) bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5679 return ret; bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5680 } bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5681 } bc9834d82ffb13 Sai Krishna Potthuri 2019-12-26 5682 = b199489d37b21c Huang Shijie 2014-02-24 5683 if (mtd->numerase= regions) b199489d37b21c Huang Shijie 2014-02-24 5684 for (i =3D 0; i = < mtd->numeraseregions; i++) b199489d37b21c Huang Shijie 2014-02-24 5685 dev_dbg(dev, b199489d37b21c Huang Shijie 2014-02-24 5686 "mtd.eraseregi= ons[%d] =3D { .offset =3D 0x%llx, " b199489d37b21c Huang Shijie 2014-02-24 5687 ".erasesize = =3D 0x%.8x (%uKiB), " b199489d37b21c Huang Shijie 2014-02-24 5688 ".numblocks = =3D %d }\n", b199489d37b21c Huang Shijie 2014-02-24 5689 i, (long long)= mtd->eraseregions[i].offset, b199489d37b21c Huang Shijie 2014-02-24 5690 mtd->eraseregi= ons[i].erasesize, b199489d37b21c Huang Shijie 2014-02-24 5691 mtd->eraseregi= ons[i].erasesize / 1024, b199489d37b21c Huang Shijie 2014-02-24 5692 mtd->eraseregi= ons[i].numblocks); b199489d37b21c Huang Shijie 2014-02-24 5693 return 0; b199489d37b21c Huang Shijie 2014-02-24 5694 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org = _______________________________________________ kbuild mailing list -- kbuild(a)lists.01.org To unsubscribe send an email to kbuild-leave(a)lists.01.org --===============8742165044452939793==--