nfc                75 drivers/clk/imx/clk-imx31.c 	clk[nfc] = imx_clk_divider("nfc", "ahb", base + MXC_CCM_PDR0, 8, 3);
nfc               156 drivers/clk/imx/clk-imx31.c 	clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
nfc               148 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc = to_ingenic_nfc(nand->chip.controller);
nfc               152 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (chipnr == -1 && nfc->selected >= 0) {
nfc               153 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		cs = &nfc->cs[nfc->selected];
nfc               154 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		jz4780_nemc_assert(nfc->dev, cs->bank, false);
nfc               157 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nfc->selected = chipnr;
nfc               164 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc = to_ingenic_nfc(nand->chip.controller);
nfc               167 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (WARN_ON(nfc->selected < 0))
nfc               170 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	cs = &nfc->cs[nfc->selected];
nfc               172 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	jz4780_nemc_assert(nfc->dev, cs->bank, ctrl & NAND_NCE);
nfc               178 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		writeb(cmd, cs->base + nfc->soc_info->addr_offset);
nfc               180 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		writeb(cmd, cs->base + nfc->soc_info->cmd_offset);
nfc               201 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc = to_ingenic_nfc(nand->chip.controller);
nfc               215 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	return ingenic_ecc_calculate(nfc->ecc, &params, dat, ecc_code);
nfc               222 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc = to_ingenic_nfc(nand->chip.controller);
nfc               229 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	return ingenic_ecc_correct(nfc->ecc, &params, dat, read_ecc);
nfc               235 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc = to_ingenic_nfc(chip->controller);
nfc               248 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		if (!nfc->ecc) {
nfc               249 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 			dev_err(nfc->dev, "HW ECC selected, but ECC controller not found\n");
nfc               258 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		dev_info(nfc->dev, "using %s (strength %d, size %d, bytes %d)\n",
nfc               259 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 			 (nfc->ecc) ? "hardware ECC" : "software ECC",
nfc               263 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		dev_info(nfc->dev, "not using ECC\n");
nfc               266 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		dev_err(nfc->dev, "ECC mode %d not supported\n",
nfc               279 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		dev_err(nfc->dev,
nfc               296 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		mtd_set_ooblayout(mtd, nfc->soc_info->oob_layout);
nfc               306 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 				  struct ingenic_nfc *nfc,
nfc               318 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	cs = &nfc->cs[chipnr];
nfc               326 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	jz4780_nemc_set_type(nfc->dev, cs->bank, JZ4780_NEMC_BANK_NAND);
nfc               362 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	chip->legacy.IO_ADDR_R = cs->base + nfc->soc_info->data_offset;
nfc               363 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	chip->legacy.IO_ADDR_W = cs->base + nfc->soc_info->data_offset;
nfc               369 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	chip->controller = &nfc->controller;
nfc               383 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	list_add_tail(&nand->chip_list, &nfc->chips);
nfc               388 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c static void ingenic_nand_cleanup_chips(struct ingenic_nfc *nfc)
nfc               392 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	while (!list_empty(&nfc->chips)) {
nfc               393 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		chip = list_first_entry(&nfc->chips,
nfc               400 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c static int ingenic_nand_init_chips(struct ingenic_nfc *nfc,
nfc               409 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (num_chips > nfc->num_banks) {
nfc               411 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 			num_chips, nfc->num_banks);
nfc               416 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		ret = ingenic_nand_init_chip(pdev, nfc, np, i);
nfc               418 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 			ingenic_nand_cleanup_chips(nfc);
nfc               433 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc;
nfc               442 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nfc = devm_kzalloc(dev, struct_size(nfc, cs, num_banks), GFP_KERNEL);
nfc               443 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (!nfc)
nfc               446 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nfc->soc_info = device_get_match_data(dev);
nfc               447 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (!nfc->soc_info)
nfc               454 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nfc->ecc = of_ingenic_ecc_get(dev->of_node);
nfc               455 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (IS_ERR(nfc->ecc))
nfc               456 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		return PTR_ERR(nfc->ecc);
nfc               458 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nfc->dev = dev;
nfc               459 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nfc->num_banks = num_banks;
nfc               461 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	nand_controller_init(&nfc->controller);
nfc               462 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	INIT_LIST_HEAD(&nfc->chips);
nfc               464 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	ret = ingenic_nand_init_chips(nfc, pdev);
nfc               466 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		if (nfc->ecc)
nfc               467 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 			ingenic_ecc_release(nfc->ecc);
nfc               471 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	platform_set_drvdata(pdev, nfc);
nfc               477 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	struct ingenic_nfc *nfc = platform_get_drvdata(pdev);
nfc               479 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	if (nfc->ecc)
nfc               480 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 		ingenic_ecc_release(nfc->ecc);
nfc               482 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c 	ingenic_nand_cleanup_chips(nfc);
nfc               499 drivers/mtd/nand/raw/marvell_nand.c static void marvell_nfc_disable_int(struct marvell_nfc *nfc, u32 int_mask)
nfc               504 drivers/mtd/nand/raw/marvell_nand.c 	reg = readl_relaxed(nfc->regs + NDCR);
nfc               505 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(reg | int_mask, nfc->regs + NDCR);
nfc               508 drivers/mtd/nand/raw/marvell_nand.c static void marvell_nfc_enable_int(struct marvell_nfc *nfc, u32 int_mask)
nfc               513 drivers/mtd/nand/raw/marvell_nand.c 	reg = readl_relaxed(nfc->regs + NDCR);
nfc               514 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(reg & ~int_mask, nfc->regs + NDCR);
nfc               517 drivers/mtd/nand/raw/marvell_nand.c static u32 marvell_nfc_clear_int(struct marvell_nfc *nfc, u32 int_mask)
nfc               521 drivers/mtd/nand/raw/marvell_nand.c 	reg = readl_relaxed(nfc->regs + NDSR);
nfc               522 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(int_mask, nfc->regs + NDSR);
nfc               530 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               542 drivers/mtd/nand/raw/marvell_nand.c 	ndcr = readl_relaxed(nfc->regs + NDCR);
nfc               549 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(ndcr, nfc->regs + NDCR);
nfc               554 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               562 drivers/mtd/nand/raw/marvell_nand.c 	ret = readl_relaxed_poll_timeout(nfc->regs + NDCR, val,
nfc               566 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Timeout on NAND controller run mode\n");
nfc               567 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(readl(nfc->regs + NDCR) & ~NDCR_ND_RUN,
nfc               568 drivers/mtd/nand/raw/marvell_nand.c 			       nfc->regs + NDCR);
nfc               592 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               599 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Last operation did not succeed\n");
nfc               603 drivers/mtd/nand/raw/marvell_nand.c 	ndcr = readl_relaxed(nfc->regs + NDCR);
nfc               604 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(readl(nfc->regs + NDSR), nfc->regs + NDSR);
nfc               607 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(ndcr | NDCR_ND_RUN, nfc->regs + NDCR);
nfc               608 drivers/mtd/nand/raw/marvell_nand.c 	ret = readl_relaxed_poll_timeout(nfc->regs + NDSR, val,
nfc               612 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Timeout on WRCMDRE\n");
nfc               617 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(NDSR_WRCMDREQ, nfc->regs + NDSR);
nfc               626 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               628 drivers/mtd/nand/raw/marvell_nand.c 	dev_dbg(nfc->dev, "\nNDCR:  0x%08x\n"
nfc               630 drivers/mtd/nand/raw/marvell_nand.c 		(u32)readl_relaxed(nfc->regs + NDCR), nfc_op->ndcb[0],
nfc               634 drivers/mtd/nand/raw/marvell_nand.c 		       nfc->regs + NDCB0);
nfc               635 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(nfc_op->ndcb[1], nfc->regs + NDCB0);
nfc               636 drivers/mtd/nand/raw/marvell_nand.c 	writel(nfc_op->ndcb[2], nfc->regs + NDCB0);
nfc               644 drivers/mtd/nand/raw/marvell_nand.c 		if (!WARN_ON_ONCE(!nfc->caps->is_nfcv2))
nfc               645 drivers/mtd/nand/raw/marvell_nand.c 			writel(nfc_op->ndcb[3], nfc->regs + NDCB0);
nfc               652 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               656 drivers/mtd/nand/raw/marvell_nand.c 	ret = readl_relaxed_poll_timeout(nfc->regs + NDSR, val,
nfc               661 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Timeout on %s (NDSR: 0x%08x)\n",
nfc               663 drivers/mtd/nand/raw/marvell_nand.c 		if (nfc->dma_chan)
nfc               664 drivers/mtd/nand/raw/marvell_nand.c 			dmaengine_terminate_all(nfc->dma_chan);
nfc               672 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->use_dma && (readl_relaxed(nfc->regs + NDCR) & NDCR_DMA_EN))
nfc               675 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(flag, nfc->regs + NDSR);
nfc               690 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               698 drivers/mtd/nand/raw/marvell_nand.c 	init_completion(&nfc->complete);
nfc               700 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_enable_int(nfc, NDCR_RDYM);
nfc               701 drivers/mtd/nand/raw/marvell_nand.c 	ret = wait_for_completion_timeout(&nfc->complete,
nfc               703 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_disable_int(nfc, NDCR_RDYM);
nfc               704 drivers/mtd/nand/raw/marvell_nand.c 	pending = marvell_nfc_clear_int(nfc, NDSR_RDY(0) | NDSR_RDY(1));
nfc               711 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Timeout waiting for RB signal\n");
nfc               722 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               729 drivers/mtd/nand/raw/marvell_nand.c 	ndcr_generic = readl_relaxed(nfc->regs + NDCR) &
nfc               731 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(ndcr_generic | marvell_nand->ndcr, nfc->regs + NDCR);
nfc               734 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_clear_int(nfc, NDCR_ALL_INT);
nfc               736 drivers/mtd/nand/raw/marvell_nand.c 	if (chip == nfc->selected_chip && die_nr == marvell_nand->selected_die)
nfc               739 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(marvell_nand->ndtr0, nfc->regs + NDTR0);
nfc               740 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(marvell_nand->ndtr1, nfc->regs + NDTR1);
nfc               742 drivers/mtd/nand/raw/marvell_nand.c 	nfc->selected_chip = chip;
nfc               748 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = dev_id;
nfc               749 drivers/mtd/nand/raw/marvell_nand.c 	u32 st = readl_relaxed(nfc->regs + NDSR);
nfc               750 drivers/mtd/nand/raw/marvell_nand.c 	u32 ien = (~readl_relaxed(nfc->regs + NDCR)) & NDCR_ALL_INT;
nfc               762 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_disable_int(nfc, st & NDCR_ALL_INT);
nfc               765 drivers/mtd/nand/raw/marvell_nand.c 		complete(&nfc->complete);
nfc               773 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               774 drivers/mtd/nand/raw/marvell_nand.c 	u32 ndcr = readl_relaxed(nfc->regs + NDCR);
nfc               777 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(ndcr | NDCR_ECC_EN, nfc->regs + NDCR);
nfc               784 drivers/mtd/nand/raw/marvell_nand.c 			writel_relaxed(NDECCCTRL_BCH_EN, nfc->regs + NDECCCTRL);
nfc               790 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               791 drivers/mtd/nand/raw/marvell_nand.c 	u32 ndcr = readl_relaxed(nfc->regs + NDCR);
nfc               794 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(ndcr & ~NDCR_ECC_EN, nfc->regs + NDCR);
nfc               796 drivers/mtd/nand/raw/marvell_nand.c 			writel_relaxed(0, nfc->regs + NDECCCTRL);
nfc               801 drivers/mtd/nand/raw/marvell_nand.c static void marvell_nfc_enable_dma(struct marvell_nfc *nfc)
nfc               805 drivers/mtd/nand/raw/marvell_nand.c 	reg = readl_relaxed(nfc->regs + NDCR);
nfc               806 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(reg | NDCR_DMA_EN, nfc->regs + NDCR);
nfc               809 drivers/mtd/nand/raw/marvell_nand.c static void marvell_nfc_disable_dma(struct marvell_nfc *nfc)
nfc               813 drivers/mtd/nand/raw/marvell_nand.c 	reg = readl_relaxed(nfc->regs + NDCR);
nfc               814 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(reg & ~NDCR_DMA_EN, nfc->regs + NDCR);
nfc               818 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nfc_xfer_data_dma(struct marvell_nfc *nfc,
nfc               828 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_enable_dma(nfc);
nfc               830 drivers/mtd/nand/raw/marvell_nand.c 	sg_init_one(&sg, nfc->dma_buf, dma_len);
nfc               831 drivers/mtd/nand/raw/marvell_nand.c 	dma_map_sg(nfc->dma_chan->device->dev, &sg, 1, direction);
nfc               832 drivers/mtd/nand/raw/marvell_nand.c 	tx = dmaengine_prep_slave_sg(nfc->dma_chan, &sg, 1,
nfc               837 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Could not prepare DMA S/G list\n");
nfc               847 drivers/mtd/nand/raw/marvell_nand.c 	dma_async_issue_pending(nfc->dma_chan);
nfc               848 drivers/mtd/nand/raw/marvell_nand.c 	ret = marvell_nfc_wait_cmdd(nfc->selected_chip);
nfc               849 drivers/mtd/nand/raw/marvell_nand.c 	dma_unmap_sg(nfc->dma_chan->device->dev, &sg, 1, direction);
nfc               850 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_disable_dma(nfc);
nfc               852 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Timeout waiting for DMA (status: %d)\n",
nfc               853 drivers/mtd/nand/raw/marvell_nand.c 			dmaengine_tx_status(nfc->dma_chan, cookie, NULL));
nfc               854 drivers/mtd/nand/raw/marvell_nand.c 		dmaengine_terminate_all(nfc->dma_chan);
nfc               861 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nfc_xfer_data_in_pio(struct marvell_nfc *nfc, u8 *in,
nfc               869 drivers/mtd/nand/raw/marvell_nand.c 		ioread32_rep(nfc->regs + NDDB, in + i, FIFO_REP(FIFO_DEPTH));
nfc               874 drivers/mtd/nand/raw/marvell_nand.c 		ioread32_rep(nfc->regs + NDDB, tmp_buf, FIFO_REP(FIFO_DEPTH));
nfc               881 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nfc_xfer_data_out_pio(struct marvell_nfc *nfc, const u8 *out,
nfc               889 drivers/mtd/nand/raw/marvell_nand.c 		iowrite32_rep(nfc->regs + NDDB, out + i, FIFO_REP(FIFO_DEPTH));
nfc               895 drivers/mtd/nand/raw/marvell_nand.c 		iowrite32_rep(nfc->regs + NDDB, tmp_buf, FIFO_REP(FIFO_DEPTH));
nfc               945 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc               949 drivers/mtd/nand/raw/marvell_nand.c 	ndsr = readl_relaxed(nfc->regs + NDSR);
nfc               953 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(ndsr, nfc->regs + NDSR);
nfc               967 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(ndsr, nfc->regs + NDSR);
nfc               988 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1003 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->is_nfcv2)
nfc              1022 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->use_dma) {
nfc              1023 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_dma(nfc, DMA_FROM_DEVICE,
nfc              1025 drivers/mtd/nand/raw/marvell_nand.c 		memcpy(data_buf, nfc->dma_buf, lt->data_bytes);
nfc              1026 drivers/mtd/nand/raw/marvell_nand.c 		memcpy(oob_buf, nfc->dma_buf + lt->data_bytes, oob_bytes);
nfc              1028 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_in_pio(nfc, data_buf, lt->data_bytes);
nfc              1029 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_in_pio(nfc, oob_buf, oob_bytes);
nfc              1100 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1115 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->is_nfcv2)
nfc              1129 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->use_dma) {
nfc              1130 drivers/mtd/nand/raw/marvell_nand.c 		memcpy(nfc->dma_buf, data_buf, lt->data_bytes);
nfc              1131 drivers/mtd/nand/raw/marvell_nand.c 		memcpy(nfc->dma_buf + lt->data_bytes, oob_buf, oob_bytes);
nfc              1132 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_dma(nfc, DMA_TO_DEVICE, lt->data_bytes +
nfc              1135 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_out_pio(nfc, data_buf, lt->data_bytes);
nfc              1136 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_out_pio(nfc, oob_buf, oob_bytes);
nfc              1244 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1291 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_in_pio(nfc, data,
nfc              1299 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_xfer_data_in_pio(nfc, spare,
nfc              1507 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1556 drivers/mtd/nand/raw/marvell_nand.c 	iowrite32_rep(nfc->regs + NDDB, data, FIFO_REP(data_len));
nfc              1557 drivers/mtd/nand/raw/marvell_nand.c 	iowrite32_rep(nfc->regs + NDDB, spare, FIFO_REP(spare_len));
nfc              1640 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1693 drivers/mtd/nand/raw/marvell_nand.c 			if (nfc->caps->is_nfcv2) {
nfc              1707 drivers/mtd/nand/raw/marvell_nand.c 			if (nfc->caps->is_nfcv2) {
nfc              1729 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1743 drivers/mtd/nand/raw/marvell_nand.c 		ret = marvell_nfc_xfer_data_in_pio(nfc, in, len);
nfc              1747 drivers/mtd/nand/raw/marvell_nand.c 		ret = marvell_nfc_xfer_data_out_pio(nfc, out, len);
nfc              1811 drivers/mtd/nand/raw/marvell_nand.c 		struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1813 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(readl(nfc->regs + NDCR) & ~NDCR_ND_RUN,
nfc              1814 drivers/mtd/nand/raw/marvell_nand.c 			       nfc->regs + NDCR);
nfc              1883 drivers/mtd/nand/raw/marvell_nand.c 		struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              1885 drivers/mtd/nand/raw/marvell_nand.c 		writel_relaxed(readl(nfc->regs + NDCR) & ~NDCR_ND_RUN,
nfc              1886 drivers/mtd/nand/raw/marvell_nand.c 			       nfc->regs + NDCR);
nfc              2108 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              2112 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->is_nfcv2)
nfc              2173 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              2177 drivers/mtd/nand/raw/marvell_nand.c 	if (!nfc->caps->is_nfcv2 &&
nfc              2179 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev,
nfc              2196 drivers/mtd/nand/raw/marvell_nand.c 	    (!nfc->caps->is_nfcv2 && ecc->strength > 1)) {
nfc              2197 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev,
nfc              2206 drivers/mtd/nand/raw/marvell_nand.c 			dev_err(nfc->dev, "Requested layout needs at least 128 OOB bytes\n");
nfc              2247 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              2255 drivers/mtd/nand/raw/marvell_nand.c 			dev_info(nfc->dev,
nfc              2271 drivers/mtd/nand/raw/marvell_nand.c 		if (!nfc->caps->is_nfcv2 && mtd->writesize != SZ_512 &&
nfc              2273 drivers/mtd/nand/raw/marvell_nand.c 			dev_err(nfc->dev, "NFCv1 cannot write %d bytes pages\n",
nfc              2313 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              2314 drivers/mtd/nand/raw/marvell_nand.c 	unsigned int period_ns = 1000000000 / clk_get_rate(nfc->core_clk) * 2;
nfc              2365 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->is_nfcv2) {
nfc              2393 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->is_nfcv2) {
nfc              2411 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
nfc              2412 drivers/mtd/nand/raw/marvell_nand.c 	struct pxa3xx_nand_platform_data *pdata = dev_get_platdata(nfc->dev);
nfc              2464 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "ECC init failed: %d\n", ret);
nfc              2478 drivers/mtd/nand/raw/marvell_nand.c 	if (pdata || nfc->caps->legacy_of_bindings) {
nfc              2496 drivers/mtd/nand/raw/marvell_nand.c 		mtd->name = devm_kasprintf(nfc->dev, GFP_KERNEL,
nfc              2497 drivers/mtd/nand/raw/marvell_nand.c 					   "%s:nand.%d", dev_name(nfc->dev),
nfc              2500 drivers/mtd/nand/raw/marvell_nand.c 			dev_err(nfc->dev, "Failed to allocate mtd->name\n");
nfc              2514 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nand_chip_init(struct device *dev, struct marvell_nfc *nfc,
nfc              2533 drivers/mtd/nand/raw/marvell_nand.c 	if (pdata || nfc->caps->legacy_of_bindings) {
nfc              2556 drivers/mtd/nand/raw/marvell_nand.c 		if (pdata || nfc->caps->legacy_of_bindings) {
nfc              2572 drivers/mtd/nand/raw/marvell_nand.c 		if (cs >= nfc->caps->max_cs_nb) {
nfc              2574 drivers/mtd/nand/raw/marvell_nand.c 				cs, nfc->caps->max_cs_nb);
nfc              2578 drivers/mtd/nand/raw/marvell_nand.c 		if (test_and_set_bit(cs, &nfc->assigned_cs)) {
nfc              2606 drivers/mtd/nand/raw/marvell_nand.c 		if (pdata || nfc->caps->legacy_of_bindings) {
nfc              2620 drivers/mtd/nand/raw/marvell_nand.c 		if (rb >= nfc->caps->max_rb_nb) {
nfc              2622 drivers/mtd/nand/raw/marvell_nand.c 				rb, nfc->caps->max_rb_nb);
nfc              2630 drivers/mtd/nand/raw/marvell_nand.c 	chip->controller = &nfc->controller;
nfc              2649 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nand->ndtr0 = readl_relaxed(nfc->regs + NDTR0);
nfc              2650 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nand->ndtr1 = readl_relaxed(nfc->regs + NDTR1);
nfc              2671 drivers/mtd/nand/raw/marvell_nand.c 	list_add_tail(&marvell_nand->node, &nfc->chips);
nfc              2676 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nand_chips_init(struct device *dev, struct marvell_nfc *nfc)
nfc              2680 drivers/mtd/nand/raw/marvell_nand.c 	int max_cs = nfc->caps->max_cs_nb;
nfc              2701 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->legacy_of_bindings) {
nfc              2702 drivers/mtd/nand/raw/marvell_nand.c 		ret = marvell_nand_chip_init(dev, nfc, np);
nfc              2707 drivers/mtd/nand/raw/marvell_nand.c 		ret = marvell_nand_chip_init(dev, nfc, nand_np);
nfc              2717 drivers/mtd/nand/raw/marvell_nand.c static void marvell_nand_chips_cleanup(struct marvell_nfc *nfc)
nfc              2721 drivers/mtd/nand/raw/marvell_nand.c 	list_for_each_entry_safe(entry, temp, &nfc->chips, node) {
nfc              2727 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nfc_init_dma(struct marvell_nfc *nfc)
nfc              2729 drivers/mtd/nand/raw/marvell_nand.c 	struct platform_device *pdev = container_of(nfc->dev,
nfc              2737 drivers/mtd/nand/raw/marvell_nand.c 		dev_warn(nfc->dev,
nfc              2742 drivers/mtd/nand/raw/marvell_nand.c 	ret = dma_set_mask_and_coherent(nfc->dev, DMA_BIT_MASK(32));
nfc              2746 drivers/mtd/nand/raw/marvell_nand.c 	nfc->dma_chan =	dma_request_slave_channel(nfc->dev, "data");
nfc              2747 drivers/mtd/nand/raw/marvell_nand.c 	if (!nfc->dma_chan) {
nfc              2748 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev,
nfc              2763 drivers/mtd/nand/raw/marvell_nand.c 	ret = dmaengine_slave_config(nfc->dma_chan, &config);
nfc              2765 drivers/mtd/nand/raw/marvell_nand.c 		dev_err(nfc->dev, "Failed to configure DMA channel\n");
nfc              2775 drivers/mtd/nand/raw/marvell_nand.c 	nfc->dma_buf = kmalloc(MAX_CHUNK_SIZE, GFP_KERNEL | GFP_DMA);
nfc              2776 drivers/mtd/nand/raw/marvell_nand.c 	if (!nfc->dma_buf)
nfc              2779 drivers/mtd/nand/raw/marvell_nand.c 	nfc->use_dma = true;
nfc              2784 drivers/mtd/nand/raw/marvell_nand.c static void marvell_nfc_reset(struct marvell_nfc *nfc)
nfc              2794 drivers/mtd/nand/raw/marvell_nand.c 		       NDCR_RD_ID_CNT(NFCV1_READID_LEN), nfc->regs + NDCR);
nfc              2795 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(0xFFFFFFFF, nfc->regs + NDSR);
nfc              2796 drivers/mtd/nand/raw/marvell_nand.c 	writel_relaxed(0, nfc->regs + NDECCCTRL);
nfc              2799 drivers/mtd/nand/raw/marvell_nand.c static int marvell_nfc_init(struct marvell_nfc *nfc)
nfc              2801 drivers/mtd/nand/raw/marvell_nand.c 	struct device_node *np = nfc->dev->of_node;
nfc              2809 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->caps->need_system_controller) {
nfc              2833 drivers/mtd/nand/raw/marvell_nand.c 	if (!nfc->caps->is_nfcv2)
nfc              2834 drivers/mtd/nand/raw/marvell_nand.c 		marvell_nfc_init_dma(nfc);
nfc              2836 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_reset(nfc);
nfc              2845 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc;
nfc              2849 drivers/mtd/nand/raw/marvell_nand.c 	nfc = devm_kzalloc(&pdev->dev, sizeof(struct marvell_nfc),
nfc              2851 drivers/mtd/nand/raw/marvell_nand.c 	if (!nfc)
nfc              2854 drivers/mtd/nand/raw/marvell_nand.c 	nfc->dev = dev;
nfc              2855 drivers/mtd/nand/raw/marvell_nand.c 	nand_controller_init(&nfc->controller);
nfc              2856 drivers/mtd/nand/raw/marvell_nand.c 	nfc->controller.ops = &marvell_nand_controller_ops;
nfc              2857 drivers/mtd/nand/raw/marvell_nand.c 	INIT_LIST_HEAD(&nfc->chips);
nfc              2860 drivers/mtd/nand/raw/marvell_nand.c 	nfc->regs = devm_ioremap_resource(dev, r);
nfc              2861 drivers/mtd/nand/raw/marvell_nand.c 	if (IS_ERR(nfc->regs))
nfc              2862 drivers/mtd/nand/raw/marvell_nand.c 		return PTR_ERR(nfc->regs);
nfc              2870 drivers/mtd/nand/raw/marvell_nand.c 	nfc->core_clk = devm_clk_get(&pdev->dev, "core");
nfc              2873 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->core_clk == ERR_PTR(-ENOENT))
nfc              2874 drivers/mtd/nand/raw/marvell_nand.c 		nfc->core_clk = devm_clk_get(&pdev->dev, NULL);
nfc              2876 drivers/mtd/nand/raw/marvell_nand.c 	if (IS_ERR(nfc->core_clk))
nfc              2877 drivers/mtd/nand/raw/marvell_nand.c 		return PTR_ERR(nfc->core_clk);
nfc              2879 drivers/mtd/nand/raw/marvell_nand.c 	ret = clk_prepare_enable(nfc->core_clk);
nfc              2883 drivers/mtd/nand/raw/marvell_nand.c 	nfc->reg_clk = devm_clk_get(&pdev->dev, "reg");
nfc              2884 drivers/mtd/nand/raw/marvell_nand.c 	if (IS_ERR(nfc->reg_clk)) {
nfc              2885 drivers/mtd/nand/raw/marvell_nand.c 		if (PTR_ERR(nfc->reg_clk) != -ENOENT) {
nfc              2886 drivers/mtd/nand/raw/marvell_nand.c 			ret = PTR_ERR(nfc->reg_clk);
nfc              2890 drivers/mtd/nand/raw/marvell_nand.c 		nfc->reg_clk = NULL;
nfc              2893 drivers/mtd/nand/raw/marvell_nand.c 	ret = clk_prepare_enable(nfc->reg_clk);
nfc              2897 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_disable_int(nfc, NDCR_ALL_INT);
nfc              2898 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_clear_int(nfc, NDCR_ALL_INT);
nfc              2900 drivers/mtd/nand/raw/marvell_nand.c 			       0, "marvell-nfc", nfc);
nfc              2906 drivers/mtd/nand/raw/marvell_nand.c 		nfc->caps = (void *)pdev->id_entry->driver_data;
nfc              2908 drivers/mtd/nand/raw/marvell_nand.c 		nfc->caps = of_device_get_match_data(&pdev->dev);
nfc              2910 drivers/mtd/nand/raw/marvell_nand.c 	if (!nfc->caps) {
nfc              2917 drivers/mtd/nand/raw/marvell_nand.c 	ret = marvell_nfc_init(nfc);
nfc              2921 drivers/mtd/nand/raw/marvell_nand.c 	platform_set_drvdata(pdev, nfc);
nfc              2923 drivers/mtd/nand/raw/marvell_nand.c 	ret = marvell_nand_chips_init(dev, nfc);
nfc              2930 drivers/mtd/nand/raw/marvell_nand.c 	clk_disable_unprepare(nfc->reg_clk);
nfc              2932 drivers/mtd/nand/raw/marvell_nand.c 	clk_disable_unprepare(nfc->core_clk);
nfc              2939 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = platform_get_drvdata(pdev);
nfc              2941 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nand_chips_cleanup(nfc);
nfc              2943 drivers/mtd/nand/raw/marvell_nand.c 	if (nfc->use_dma) {
nfc              2944 drivers/mtd/nand/raw/marvell_nand.c 		dmaengine_terminate_all(nfc->dma_chan);
nfc              2945 drivers/mtd/nand/raw/marvell_nand.c 		dma_release_channel(nfc->dma_chan);
nfc              2948 drivers/mtd/nand/raw/marvell_nand.c 	clk_disable_unprepare(nfc->reg_clk);
nfc              2949 drivers/mtd/nand/raw/marvell_nand.c 	clk_disable_unprepare(nfc->core_clk);
nfc              2956 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = dev_get_drvdata(dev);
nfc              2959 drivers/mtd/nand/raw/marvell_nand.c 	list_for_each_entry(chip, &nfc->chips, node)
nfc              2962 drivers/mtd/nand/raw/marvell_nand.c 	clk_disable_unprepare(nfc->reg_clk);
nfc              2963 drivers/mtd/nand/raw/marvell_nand.c 	clk_disable_unprepare(nfc->core_clk);
nfc              2970 drivers/mtd/nand/raw/marvell_nand.c 	struct marvell_nfc *nfc = dev_get_drvdata(dev);
nfc              2973 drivers/mtd/nand/raw/marvell_nand.c 	ret = clk_prepare_enable(nfc->core_clk);
nfc              2977 drivers/mtd/nand/raw/marvell_nand.c 	ret = clk_prepare_enable(nfc->reg_clk);
nfc              2985 drivers/mtd/nand/raw/marvell_nand.c 	nfc->selected_chip = NULL;
nfc              2988 drivers/mtd/nand/raw/marvell_nand.c 	marvell_nfc_reset(nfc);
nfc               225 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               231 drivers/mtd/nand/raw/meson_nand.c 	nfc->param.chip_select = meson_chip->sels[chip] ? NAND_CE1 : NAND_CE0;
nfc               232 drivers/mtd/nand/raw/meson_nand.c 	nfc->param.rb_select = nfc->param.chip_select;
nfc               233 drivers/mtd/nand/raw/meson_nand.c 	nfc->timing.twb = meson_chip->twb;
nfc               234 drivers/mtd/nand/raw/meson_nand.c 	nfc->timing.tadl = meson_chip->tadl;
nfc               235 drivers/mtd/nand/raw/meson_nand.c 	nfc->timing.tbers_max = meson_chip->tbers_max;
nfc               237 drivers/mtd/nand/raw/meson_nand.c 	if (nfc->clk_rate != meson_chip->clk_rate) {
nfc               238 drivers/mtd/nand/raw/meson_nand.c 		ret = clk_set_rate(nfc->device_clk, meson_chip->clk_rate);
nfc               240 drivers/mtd/nand/raw/meson_nand.c 			dev_err(nfc->dev, "failed to set clock rate\n");
nfc               243 drivers/mtd/nand/raw/meson_nand.c 		nfc->clk_rate = meson_chip->clk_rate;
nfc               245 drivers/mtd/nand/raw/meson_nand.c 	if (nfc->bus_timing != meson_chip->bus_timing) {
nfc               247 drivers/mtd/nand/raw/meson_nand.c 		writel(value, nfc->reg_base + NFC_REG_CFG);
nfc               248 drivers/mtd/nand/raw/meson_nand.c 		writel((1 << 31), nfc->reg_base + NFC_REG_CMD);
nfc               249 drivers/mtd/nand/raw/meson_nand.c 		nfc->bus_timing =  meson_chip->bus_timing;
nfc               253 drivers/mtd/nand/raw/meson_nand.c static void meson_nfc_cmd_idle(struct meson_nfc *nfc, u32 time)
nfc               255 drivers/mtd/nand/raw/meson_nand.c 	writel(nfc->param.chip_select | NFC_CMD_IDLE | (time & 0x3ff),
nfc               256 drivers/mtd/nand/raw/meson_nand.c 	       nfc->reg_base + NFC_REG_CMD);
nfc               259 drivers/mtd/nand/raw/meson_nand.c static void meson_nfc_cmd_seed(struct meson_nfc *nfc, u32 seed)
nfc               262 drivers/mtd/nand/raw/meson_nand.c 	       nfc->reg_base + NFC_REG_CMD);
nfc               269 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(mtd_to_nand(mtd));
nfc               279 drivers/mtd/nand/raw/meson_nand.c 		writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               288 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               291 drivers/mtd/nand/raw/meson_nand.c static void meson_nfc_drain_cmd(struct meson_nfc *nfc)
nfc               304 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_cmd_idle(nfc, 0);
nfc               305 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_cmd_idle(nfc, 0);
nfc               308 drivers/mtd/nand/raw/meson_nand.c static int meson_nfc_wait_cmd_finish(struct meson_nfc *nfc,
nfc               315 drivers/mtd/nand/raw/meson_nand.c 	ret = readl_relaxed_poll_timeout(nfc->reg_base + NFC_REG_CMD, cmd_size,
nfc               319 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "wait for empty CMD FIFO time out\n");
nfc               324 drivers/mtd/nand/raw/meson_nand.c static int meson_nfc_wait_dma_finish(struct meson_nfc *nfc)
nfc               326 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_drain_cmd(nfc);
nfc               328 drivers/mtd/nand/raw/meson_nand.c 	return meson_nfc_wait_cmd_finish(nfc, DMA_BUSY_TIMEOUT);
nfc               390 drivers/mtd/nand/raw/meson_nand.c static int meson_nfc_queue_rb(struct meson_nfc *nfc, int timeout_ms)
nfc               395 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_cmd_idle(nfc, nfc->timing.twb);
nfc               396 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_drain_cmd(nfc);
nfc               397 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_wait_cmd_finish(nfc, CMD_FIFO_EMPTY_TIMEOUT);
nfc               399 drivers/mtd/nand/raw/meson_nand.c 	cfg = readl(nfc->reg_base + NFC_REG_CFG);
nfc               401 drivers/mtd/nand/raw/meson_nand.c 	writel(cfg, nfc->reg_base + NFC_REG_CFG);
nfc               403 drivers/mtd/nand/raw/meson_nand.c 	reinit_completion(&nfc->completion);
nfc               407 drivers/mtd/nand/raw/meson_nand.c 		| nfc->param.chip_select | nfc->timing.tbers_max;
nfc               408 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               410 drivers/mtd/nand/raw/meson_nand.c 	ret = wait_for_completion_timeout(&nfc->completion,
nfc               477 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               481 drivers/mtd/nand/raw/meson_nand.c 	nfc->daddr = dma_map_single(nfc->dev, databuf, datalen, dir);
nfc               482 drivers/mtd/nand/raw/meson_nand.c 	ret = dma_mapping_error(nfc->dev, nfc->daddr);
nfc               484 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "DMA mapping error\n");
nfc               487 drivers/mtd/nand/raw/meson_nand.c 	cmd = GENCMDDADDRL(NFC_CMD_ADL, nfc->daddr);
nfc               488 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               490 drivers/mtd/nand/raw/meson_nand.c 	cmd = GENCMDDADDRH(NFC_CMD_ADH, nfc->daddr);
nfc               491 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               494 drivers/mtd/nand/raw/meson_nand.c 		nfc->iaddr = dma_map_single(nfc->dev, infobuf, infolen, dir);
nfc               495 drivers/mtd/nand/raw/meson_nand.c 		ret = dma_mapping_error(nfc->dev, nfc->iaddr);
nfc               497 drivers/mtd/nand/raw/meson_nand.c 			dev_err(nfc->dev, "DMA mapping error\n");
nfc               498 drivers/mtd/nand/raw/meson_nand.c 			dma_unmap_single(nfc->dev,
nfc               499 drivers/mtd/nand/raw/meson_nand.c 					 nfc->daddr, datalen, dir);
nfc               502 drivers/mtd/nand/raw/meson_nand.c 		cmd = GENCMDIADDRL(NFC_CMD_AIL, nfc->iaddr);
nfc               503 drivers/mtd/nand/raw/meson_nand.c 		writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               505 drivers/mtd/nand/raw/meson_nand.c 		cmd = GENCMDIADDRH(NFC_CMD_AIH, nfc->iaddr);
nfc               506 drivers/mtd/nand/raw/meson_nand.c 		writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               516 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               518 drivers/mtd/nand/raw/meson_nand.c 	dma_unmap_single(nfc->dev, nfc->daddr, datalen, dir);
nfc               520 drivers/mtd/nand/raw/meson_nand.c 		dma_unmap_single(nfc->dev, nfc->iaddr, infolen, dir);
nfc               525 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               540 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               542 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_drain_cmd(nfc);
nfc               543 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_wait_cmd_finish(nfc, 1000);
nfc               554 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               564 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               566 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_drain_cmd(nfc);
nfc               567 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_wait_cmd_finish(nfc, 1000);
nfc               577 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               580 drivers/mtd/nand/raw/meson_nand.c 	u32 *addrs = nfc->cmdfifo.rw.addrs;
nfc               581 drivers/mtd/nand/raw/meson_nand.c 	u32 cs = nfc->param.chip_select;
nfc               588 drivers/mtd/nand/raw/meson_nand.c 	nfc->cmdfifo.rw.cmd0 = cs | NFC_CMD_CLE | cmd0;
nfc               612 drivers/mtd/nand/raw/meson_nand.c 		writel_relaxed(nfc->cmdfifo.cmd[i],
nfc               613 drivers/mtd/nand/raw/meson_nand.c 			       nfc->reg_base + NFC_REG_CMD);
nfc               616 drivers/mtd/nand/raw/meson_nand.c 		nfc->cmdfifo.rw.cmd1 = cs | NFC_CMD_CLE | NAND_CMD_READSTART;
nfc               617 drivers/mtd/nand/raw/meson_nand.c 		writel(nfc->cmdfifo.rw.cmd1, nfc->reg_base + NFC_REG_CMD);
nfc               618 drivers/mtd/nand/raw/meson_nand.c 		meson_nfc_queue_rb(nfc, PSEC_TO_MSEC(sdr->tR_max));
nfc               620 drivers/mtd/nand/raw/meson_nand.c 		meson_nfc_cmd_idle(nfc, nfc->timing.tadl);
nfc               633 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               654 drivers/mtd/nand/raw/meson_nand.c 		meson_nfc_cmd_seed(nfc, page);
nfc               662 drivers/mtd/nand/raw/meson_nand.c 	cmd = nfc->param.chip_select | NFC_CMD_CLE | NAND_CMD_PAGEPROG;
nfc               663 drivers/mtd/nand/raw/meson_nand.c 	writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               664 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_queue_rb(nfc, PSEC_TO_MSEC(sdr->tPROG_max));
nfc               695 drivers/mtd/nand/raw/meson_nand.c static void meson_nfc_check_ecc_pages_valid(struct meson_nfc *nfc,
nfc               717 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               738 drivers/mtd/nand/raw/meson_nand.c 		meson_nfc_cmd_seed(nfc, page);
nfc               746 drivers/mtd/nand/raw/meson_nand.c 	ret = meson_nfc_wait_dma_finish(nfc);
nfc               747 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_check_ecc_pages_valid(nfc, nand, raw);
nfc               896 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc               910 drivers/mtd/nand/raw/meson_nand.c 			cmd = nfc->param.chip_select | NFC_CMD_CLE;
nfc               912 drivers/mtd/nand/raw/meson_nand.c 			writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               913 drivers/mtd/nand/raw/meson_nand.c 			meson_nfc_cmd_idle(nfc, delay_idle);
nfc               918 drivers/mtd/nand/raw/meson_nand.c 				cmd = nfc->param.chip_select | NFC_CMD_ALE;
nfc               920 drivers/mtd/nand/raw/meson_nand.c 				writel(cmd, nfc->reg_base + NFC_REG_CMD);
nfc               922 drivers/mtd/nand/raw/meson_nand.c 			meson_nfc_cmd_idle(nfc, delay_idle);
nfc               942 drivers/mtd/nand/raw/meson_nand.c 			meson_nfc_queue_rb(nfc, instr->ctx.waitrdy.timeout_ms);
nfc               944 drivers/mtd/nand/raw/meson_nand.c 				meson_nfc_cmd_idle(nfc, delay_idle);
nfc               948 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_wait_cmd_finish(nfc, 1000);
nfc               985 drivers/mtd/nand/raw/meson_nand.c static int meson_nfc_clk_init(struct meson_nfc *nfc)
nfc               990 drivers/mtd/nand/raw/meson_nand.c 	nfc->core_clk = devm_clk_get(nfc->dev, "core");
nfc               991 drivers/mtd/nand/raw/meson_nand.c 	if (IS_ERR(nfc->core_clk)) {
nfc               992 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to get core clock\n");
nfc               993 drivers/mtd/nand/raw/meson_nand.c 		return PTR_ERR(nfc->core_clk);
nfc               996 drivers/mtd/nand/raw/meson_nand.c 	nfc->device_clk = devm_clk_get(nfc->dev, "device");
nfc               997 drivers/mtd/nand/raw/meson_nand.c 	if (IS_ERR(nfc->device_clk)) {
nfc               998 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to get device clock\n");
nfc               999 drivers/mtd/nand/raw/meson_nand.c 		return PTR_ERR(nfc->device_clk);
nfc              1002 drivers/mtd/nand/raw/meson_nand.c 	nfc->phase_tx = devm_clk_get(nfc->dev, "tx");
nfc              1003 drivers/mtd/nand/raw/meson_nand.c 	if (IS_ERR(nfc->phase_tx)) {
nfc              1004 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to get TX clk\n");
nfc              1005 drivers/mtd/nand/raw/meson_nand.c 		return PTR_ERR(nfc->phase_tx);
nfc              1008 drivers/mtd/nand/raw/meson_nand.c 	nfc->phase_rx = devm_clk_get(nfc->dev, "rx");
nfc              1009 drivers/mtd/nand/raw/meson_nand.c 	if (IS_ERR(nfc->phase_rx)) {
nfc              1010 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to get RX clk\n");
nfc              1011 drivers/mtd/nand/raw/meson_nand.c 		return PTR_ERR(nfc->phase_rx);
nfc              1015 drivers/mtd/nand/raw/meson_nand.c 	regmap_update_bits(nfc->reg_clk,
nfc              1018 drivers/mtd/nand/raw/meson_nand.c 	ret = clk_prepare_enable(nfc->core_clk);
nfc              1020 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to enable core clock\n");
nfc              1024 drivers/mtd/nand/raw/meson_nand.c 	ret = clk_prepare_enable(nfc->device_clk);
nfc              1026 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to enable device clock\n");
nfc              1030 drivers/mtd/nand/raw/meson_nand.c 	ret = clk_prepare_enable(nfc->phase_tx);
nfc              1032 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to enable TX clock\n");
nfc              1036 drivers/mtd/nand/raw/meson_nand.c 	ret = clk_prepare_enable(nfc->phase_rx);
nfc              1038 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to enable RX clock\n");
nfc              1042 drivers/mtd/nand/raw/meson_nand.c 	ret = clk_set_rate(nfc->device_clk, 24000000);
nfc              1048 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->phase_tx);
nfc              1050 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->device_clk);
nfc              1052 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->core_clk);
nfc              1056 drivers/mtd/nand/raw/meson_nand.c static void meson_nfc_disable_clk(struct meson_nfc *nfc)
nfc              1058 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->phase_rx);
nfc              1059 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->phase_tx);
nfc              1060 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->device_clk);
nfc              1061 drivers/mtd/nand/raw/meson_nand.c 	clk_disable_unprepare(nfc->core_clk);
nfc              1164 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = nand_get_controller_data(nand);
nfc              1171 drivers/mtd/nand/raw/meson_nand.c 		mtd->name = devm_kasprintf(nfc->dev, GFP_KERNEL,
nfc              1173 drivers/mtd/nand/raw/meson_nand.c 					   dev_name(nfc->dev),
nfc              1184 drivers/mtd/nand/raw/meson_nand.c 	ret = nand_ecc_choose_conf(nand, nfc->data->ecc_caps,
nfc              1187 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "failed to ECC init\n");
nfc              1209 drivers/mtd/nand/raw/meson_nand.c 		dev_err(nfc->dev, "16bits bus width not supported");
nfc              1228 drivers/mtd/nand/raw/meson_nand.c 			 struct meson_nfc *nfc, struct device_node *np)
nfc              1257 drivers/mtd/nand/raw/meson_nand.c 		if (test_and_set_bit(tmp, &nfc->assigned_cs)) {
nfc              1264 drivers/mtd/nand/raw/meson_nand.c 	nand->controller = &nfc->controller;
nfc              1267 drivers/mtd/nand/raw/meson_nand.c 	nand_set_controller_data(nand, nfc);
nfc              1285 drivers/mtd/nand/raw/meson_nand.c 	list_add_tail(&meson_chip->node, &nfc->chips);
nfc              1290 drivers/mtd/nand/raw/meson_nand.c static int meson_nfc_nand_chip_cleanup(struct meson_nfc *nfc)
nfc              1296 drivers/mtd/nand/raw/meson_nand.c 	while (!list_empty(&nfc->chips)) {
nfc              1297 drivers/mtd/nand/raw/meson_nand.c 		meson_chip = list_first_entry(&nfc->chips,
nfc              1313 drivers/mtd/nand/raw/meson_nand.c 				     struct meson_nfc *nfc)
nfc              1320 drivers/mtd/nand/raw/meson_nand.c 		ret = meson_nfc_nand_chip_init(dev, nfc, nand_np);
nfc              1322 drivers/mtd/nand/raw/meson_nand.c 			meson_nfc_nand_chip_cleanup(nfc);
nfc              1333 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = id;
nfc              1336 drivers/mtd/nand/raw/meson_nand.c 	cfg = readl(nfc->reg_base + NFC_REG_CFG);
nfc              1341 drivers/mtd/nand/raw/meson_nand.c 	writel(cfg, nfc->reg_base + NFC_REG_CFG);
nfc              1343 drivers/mtd/nand/raw/meson_nand.c 	complete(&nfc->completion);
nfc              1370 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc;
nfc              1374 drivers/mtd/nand/raw/meson_nand.c 	nfc = devm_kzalloc(dev, sizeof(*nfc), GFP_KERNEL);
nfc              1375 drivers/mtd/nand/raw/meson_nand.c 	if (!nfc)
nfc              1378 drivers/mtd/nand/raw/meson_nand.c 	nfc->data = of_device_get_match_data(&pdev->dev);
nfc              1379 drivers/mtd/nand/raw/meson_nand.c 	if (!nfc->data)
nfc              1382 drivers/mtd/nand/raw/meson_nand.c 	nand_controller_init(&nfc->controller);
nfc              1383 drivers/mtd/nand/raw/meson_nand.c 	INIT_LIST_HEAD(&nfc->chips);
nfc              1384 drivers/mtd/nand/raw/meson_nand.c 	init_completion(&nfc->completion);
nfc              1386 drivers/mtd/nand/raw/meson_nand.c 	nfc->dev = dev;
nfc              1389 drivers/mtd/nand/raw/meson_nand.c 	nfc->reg_base = devm_ioremap_resource(dev, res);
nfc              1390 drivers/mtd/nand/raw/meson_nand.c 	if (IS_ERR(nfc->reg_base))
nfc              1391 drivers/mtd/nand/raw/meson_nand.c 		return PTR_ERR(nfc->reg_base);
nfc              1393 drivers/mtd/nand/raw/meson_nand.c 	nfc->reg_clk =
nfc              1396 drivers/mtd/nand/raw/meson_nand.c 	if (IS_ERR(nfc->reg_clk)) {
nfc              1398 drivers/mtd/nand/raw/meson_nand.c 		return PTR_ERR(nfc->reg_clk);
nfc              1407 drivers/mtd/nand/raw/meson_nand.c 	ret = meson_nfc_clk_init(nfc);
nfc              1413 drivers/mtd/nand/raw/meson_nand.c 	writel(0, nfc->reg_base + NFC_REG_CFG);
nfc              1414 drivers/mtd/nand/raw/meson_nand.c 	ret = devm_request_irq(dev, irq, meson_nfc_irq, 0, dev_name(dev), nfc);
nfc              1427 drivers/mtd/nand/raw/meson_nand.c 	platform_set_drvdata(pdev, nfc);
nfc              1429 drivers/mtd/nand/raw/meson_nand.c 	ret = meson_nfc_nand_chips_init(dev, nfc);
nfc              1437 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_disable_clk(nfc);
nfc              1443 drivers/mtd/nand/raw/meson_nand.c 	struct meson_nfc *nfc = platform_get_drvdata(pdev);
nfc              1446 drivers/mtd/nand/raw/meson_nand.c 	ret = meson_nfc_nand_chip_cleanup(nfc);
nfc              1450 drivers/mtd/nand/raw/meson_nand.c 	meson_nfc_disable_clk(nfc);
nfc               217 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               219 drivers/mtd/nand/raw/mtk_nand.c 	return nfc->buffer + i * mtk_data_len(chip);
nfc               224 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               226 drivers/mtd/nand/raw/mtk_nand.c 	return nfc->buffer + i * mtk_data_len(chip) + chip->ecc.size;
nfc               229 drivers/mtd/nand/raw/mtk_nand.c static inline void nfi_writel(struct mtk_nfc *nfc, u32 val, u32 reg)
nfc               231 drivers/mtd/nand/raw/mtk_nand.c 	writel(val, nfc->regs + reg);
nfc               234 drivers/mtd/nand/raw/mtk_nand.c static inline void nfi_writew(struct mtk_nfc *nfc, u16 val, u32 reg)
nfc               236 drivers/mtd/nand/raw/mtk_nand.c 	writew(val, nfc->regs + reg);
nfc               239 drivers/mtd/nand/raw/mtk_nand.c static inline void nfi_writeb(struct mtk_nfc *nfc, u8 val, u32 reg)
nfc               241 drivers/mtd/nand/raw/mtk_nand.c 	writeb(val, nfc->regs + reg);
nfc               244 drivers/mtd/nand/raw/mtk_nand.c static inline u32 nfi_readl(struct mtk_nfc *nfc, u32 reg)
nfc               246 drivers/mtd/nand/raw/mtk_nand.c 	return readl_relaxed(nfc->regs + reg);
nfc               249 drivers/mtd/nand/raw/mtk_nand.c static inline u16 nfi_readw(struct mtk_nfc *nfc, u32 reg)
nfc               251 drivers/mtd/nand/raw/mtk_nand.c 	return readw_relaxed(nfc->regs + reg);
nfc               254 drivers/mtd/nand/raw/mtk_nand.c static inline u8 nfi_readb(struct mtk_nfc *nfc, u32 reg)
nfc               256 drivers/mtd/nand/raw/mtk_nand.c 	return readb_relaxed(nfc->regs + reg);
nfc               259 drivers/mtd/nand/raw/mtk_nand.c static void mtk_nfc_hw_reset(struct mtk_nfc *nfc)
nfc               261 drivers/mtd/nand/raw/mtk_nand.c 	struct device *dev = nfc->dev;
nfc               266 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, CON_FIFO_FLUSH | CON_NFI_RST, NFI_CON);
nfc               269 drivers/mtd/nand/raw/mtk_nand.c 	ret = readl_poll_timeout(nfc->regs + NFI_MASTER_STA, val,
nfc               277 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, CON_FIFO_FLUSH | CON_NFI_RST, NFI_CON);
nfc               278 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, STAR_DE, NFI_STRDATA);
nfc               281 drivers/mtd/nand/raw/mtk_nand.c static int mtk_nfc_send_command(struct mtk_nfc *nfc, u8 command)
nfc               283 drivers/mtd/nand/raw/mtk_nand.c 	struct device *dev = nfc->dev;
nfc               287 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, command, NFI_CMD);
nfc               289 drivers/mtd/nand/raw/mtk_nand.c 	ret = readl_poll_timeout_atomic(nfc->regs + NFI_STA, val,
nfc               299 drivers/mtd/nand/raw/mtk_nand.c static int mtk_nfc_send_address(struct mtk_nfc *nfc, int addr)
nfc               301 drivers/mtd/nand/raw/mtk_nand.c 	struct device *dev = nfc->dev;
nfc               305 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, addr, NFI_COLADDR);
nfc               306 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, 0, NFI_ROWADDR);
nfc               307 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, 1, NFI_ADDRNOB);
nfc               309 drivers/mtd/nand/raw/mtk_nand.c 	ret = readl_poll_timeout_atomic(nfc->regs + NFI_STA, val,
nfc               323 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               357 drivers/mtd/nand/raw/mtk_nand.c 		dev_err(nfc->dev, "invalid page len: %d\n", mtd->writesize);
nfc               368 drivers/mtd/nand/raw/mtk_nand.c 	for (i = 0; i < nfc->caps->num_spare_size; i++) {
nfc               369 drivers/mtd/nand/raw/mtk_nand.c 		if (nfc->caps->spare_size[i] == spare)
nfc               373 drivers/mtd/nand/raw/mtk_nand.c 	if (i == nfc->caps->num_spare_size) {
nfc               374 drivers/mtd/nand/raw/mtk_nand.c 		dev_err(nfc->dev, "invalid spare size %d\n", spare);
nfc               378 drivers/mtd/nand/raw/mtk_nand.c 	fmt |= i << nfc->caps->pageformat_spare_shift;
nfc               382 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, fmt, NFI_PAGEFMT);
nfc               384 drivers/mtd/nand/raw/mtk_nand.c 	nfc->ecc_cfg.strength = chip->ecc.strength;
nfc               385 drivers/mtd/nand/raw/mtk_nand.c 	nfc->ecc_cfg.len = chip->ecc.size + mtk_nand->fdm.ecc_size;
nfc               392 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(nand);
nfc               400 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, mtk_nand->sels[chip], NFI_CSEL);
nfc               405 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(nand);
nfc               407 drivers/mtd/nand/raw/mtk_nand.c 	if (nfi_readl(nfc, NFI_STA) & STA_BUSY)
nfc               416 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               419 drivers/mtd/nand/raw/mtk_nand.c 		mtk_nfc_send_address(nfc, dat);
nfc               421 drivers/mtd/nand/raw/mtk_nand.c 		mtk_nfc_hw_reset(nfc);
nfc               423 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, CNFG_OP_CUST, NFI_CNFG);
nfc               424 drivers/mtd/nand/raw/mtk_nand.c 		mtk_nfc_send_command(nfc, dat);
nfc               428 drivers/mtd/nand/raw/mtk_nand.c static inline void mtk_nfc_wait_ioready(struct mtk_nfc *nfc)
nfc               433 drivers/mtd/nand/raw/mtk_nand.c 	rc = readb_poll_timeout_atomic(nfc->regs + NFI_PIO_DIRDY, val,
nfc               436 drivers/mtd/nand/raw/mtk_nand.c 		dev_err(nfc->dev, "data not ready\n");
nfc               441 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               445 drivers/mtd/nand/raw/mtk_nand.c 	reg = nfi_readl(nfc, NFI_STA) & NFI_FSM_MASK;
nfc               447 drivers/mtd/nand/raw/mtk_nand.c 		reg = nfi_readw(nfc, NFI_CNFG);
nfc               449 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, reg, NFI_CNFG);
nfc               455 drivers/mtd/nand/raw/mtk_nand.c 		reg = (nfc->caps->max_sector << CON_SEC_SHIFT) | CON_BRD;
nfc               456 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writel(nfc, reg, NFI_CON);
nfc               459 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, STAR_EN, NFI_STRDATA);
nfc               462 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_wait_ioready(nfc);
nfc               464 drivers/mtd/nand/raw/mtk_nand.c 	return nfi_readb(nfc, NFI_DATAR);
nfc               477 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               480 drivers/mtd/nand/raw/mtk_nand.c 	reg = nfi_readl(nfc, NFI_STA) & NFI_FSM_MASK;
nfc               483 drivers/mtd/nand/raw/mtk_nand.c 		reg = nfi_readw(nfc, NFI_CNFG) | CNFG_BYTE_RW;
nfc               484 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, reg, NFI_CNFG);
nfc               486 drivers/mtd/nand/raw/mtk_nand.c 		reg = nfc->caps->max_sector << CON_SEC_SHIFT | CON_BWR;
nfc               487 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writel(nfc, reg, NFI_CON);
nfc               489 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, STAR_EN, NFI_STRDATA);
nfc               492 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_wait_ioready(nfc);
nfc               493 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writeb(nfc, byte, NFI_DATAW);
nfc               507 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               519 drivers/mtd/nand/raw/mtk_nand.c 	rate = clk_get_rate(nfc->clk.nfi_clk);
nfc               521 drivers/mtd/nand/raw/mtk_nand.c 	rate /= nfc->caps->nfi_clk_div;
nfc               588 drivers/mtd/nand/raw/mtk_nand.c 	temp = nfi_readl(nfc, NFI_DEBUG_CON1);
nfc               591 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, temp, NFI_DEBUG_CON1);
nfc               607 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, trlt, NFI_ACCCON);
nfc               614 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               618 drivers/mtd/nand/raw/mtk_nand.c 	nfc->ecc_cfg.mode = ECC_DMA_MODE;
nfc               619 drivers/mtd/nand/raw/mtk_nand.c 	nfc->ecc_cfg.op = ECC_ENCODE;
nfc               621 drivers/mtd/nand/raw/mtk_nand.c 	return mtk_ecc_encode(nfc->ecc, &nfc->ecc_cfg, data, size);
nfc               648 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               656 drivers/mtd/nand/raw/mtk_nand.c 	memset(nfc->buffer, 0xff, mtd->writesize + mtd->oobsize);
nfc               665 drivers/mtd/nand/raw/mtk_nand.c 			mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, 1);
nfc               682 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               686 drivers/mtd/nand/raw/mtk_nand.c 	memset(nfc->buffer, 0xff, mtd->writesize + mtd->oobsize);
nfc               693 drivers/mtd/nand/raw/mtk_nand.c 			mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, 1);
nfc               702 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               711 drivers/mtd/nand/raw/mtk_nand.c 		vall = nfi_readl(nfc, NFI_FDML(i));
nfc               712 drivers/mtd/nand/raw/mtk_nand.c 		valm = nfi_readl(nfc, NFI_FDMM(i));
nfc               721 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               740 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writel(nfc, vall, NFI_FDML(i));
nfc               741 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writel(nfc, valm, NFI_FDMM(i));
nfc               748 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               749 drivers/mtd/nand/raw/mtk_nand.c 	struct device *dev = nfc->dev;
nfc               755 drivers/mtd/nand/raw/mtk_nand.c 	ret = dma_mapping_error(nfc->dev, addr);
nfc               757 drivers/mtd/nand/raw/mtk_nand.c 		dev_err(nfc->dev, "dma mapping error\n");
nfc               761 drivers/mtd/nand/raw/mtk_nand.c 	reg = nfi_readw(nfc, NFI_CNFG) | CNFG_AHB | CNFG_DMA_BURST_EN;
nfc               762 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, reg, NFI_CNFG);
nfc               764 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, chip->ecc.steps << CON_SEC_SHIFT, NFI_CON);
nfc               765 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, lower_32_bits(addr), NFI_STRADDR);
nfc               766 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, INTR_AHB_DONE_EN, NFI_INTR_EN);
nfc               768 drivers/mtd/nand/raw/mtk_nand.c 	init_completion(&nfc->done);
nfc               770 drivers/mtd/nand/raw/mtk_nand.c 	reg = nfi_readl(nfc, NFI_CON) | CON_BWR;
nfc               771 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, reg, NFI_CON);
nfc               772 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, STAR_EN, NFI_STRDATA);
nfc               774 drivers/mtd/nand/raw/mtk_nand.c 	ret = wait_for_completion_timeout(&nfc->done, msecs_to_jiffies(500));
nfc               777 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, 0, NFI_INTR_EN);
nfc               782 drivers/mtd/nand/raw/mtk_nand.c 	ret = readl_poll_timeout_atomic(nfc->regs + NFI_ADDRCNTR, reg,
nfc               790 drivers/mtd/nand/raw/mtk_nand.c 	dma_unmap_single(nfc->dev, addr, len, DMA_TO_DEVICE);
nfc               791 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, 0, NFI_CON);
nfc               799 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               810 drivers/mtd/nand/raw/mtk_nand.c 		reg = nfi_readw(nfc, NFI_CNFG) | CNFG_AUTO_FMT_EN;
nfc               811 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, reg | CNFG_HW_ECC_EN, NFI_CNFG);
nfc               813 drivers/mtd/nand/raw/mtk_nand.c 		nfc->ecc_cfg.op = ECC_ENCODE;
nfc               814 drivers/mtd/nand/raw/mtk_nand.c 		nfc->ecc_cfg.mode = ECC_NFI_MODE;
nfc               815 drivers/mtd/nand/raw/mtk_nand.c 		ret = mtk_ecc_enable(nfc->ecc, &nfc->ecc_cfg);
nfc               818 drivers/mtd/nand/raw/mtk_nand.c 			reg = nfi_readw(nfc, NFI_CNFG);
nfc               820 drivers/mtd/nand/raw/mtk_nand.c 			nfi_writew(nfc, reg, NFI_CNFG);
nfc               825 drivers/mtd/nand/raw/mtk_nand.c 		memcpy(nfc->buffer, buf, mtd->writesize);
nfc               826 drivers/mtd/nand/raw/mtk_nand.c 		mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, raw);
nfc               827 drivers/mtd/nand/raw/mtk_nand.c 		bufpoi = nfc->buffer;
nfc               839 drivers/mtd/nand/raw/mtk_nand.c 		mtk_ecc_disable(nfc->ecc);
nfc               857 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               860 drivers/mtd/nand/raw/mtk_nand.c 	return mtk_nfc_write_page(mtd, chip, nfc->buffer, pg, 1);
nfc               868 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               876 drivers/mtd/nand/raw/mtk_nand.c 	return mtk_nfc_write_page(mtd, chip, nfc->buffer, page, 1);
nfc               888 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               894 drivers/mtd/nand/raw/mtk_nand.c 	rc = nfi_readl(nfc, NFI_STA) & STA_EMP_PAGE;
nfc               902 drivers/mtd/nand/raw/mtk_nand.c 	mtk_ecc_get_stats(nfc->ecc, &stats, sectors);
nfc               913 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc               934 drivers/mtd/nand/raw/mtk_nand.c 	addr = dma_map_single(nfc->dev, buf, len, DMA_FROM_DEVICE);
nfc               935 drivers/mtd/nand/raw/mtk_nand.c 	rc = dma_mapping_error(nfc->dev, addr);
nfc               937 drivers/mtd/nand/raw/mtk_nand.c 		dev_err(nfc->dev, "dma mapping error\n");
nfc               942 drivers/mtd/nand/raw/mtk_nand.c 	reg = nfi_readw(nfc, NFI_CNFG);
nfc               946 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, reg, NFI_CNFG);
nfc               948 drivers/mtd/nand/raw/mtk_nand.c 		nfc->ecc_cfg.mode = ECC_NFI_MODE;
nfc               949 drivers/mtd/nand/raw/mtk_nand.c 		nfc->ecc_cfg.sectors = sectors;
nfc               950 drivers/mtd/nand/raw/mtk_nand.c 		nfc->ecc_cfg.op = ECC_DECODE;
nfc               951 drivers/mtd/nand/raw/mtk_nand.c 		rc = mtk_ecc_enable(nfc->ecc, &nfc->ecc_cfg);
nfc               953 drivers/mtd/nand/raw/mtk_nand.c 			dev_err(nfc->dev, "ecc enable\n");
nfc               957 drivers/mtd/nand/raw/mtk_nand.c 			nfi_writew(nfc, reg, NFI_CNFG);
nfc               958 drivers/mtd/nand/raw/mtk_nand.c 			dma_unmap_single(nfc->dev, addr, len, DMA_FROM_DEVICE);
nfc               963 drivers/mtd/nand/raw/mtk_nand.c 		nfi_writew(nfc, reg, NFI_CNFG);
nfc               966 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, sectors << CON_SEC_SHIFT, NFI_CON);
nfc               967 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, INTR_AHB_DONE_EN, NFI_INTR_EN);
nfc               968 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, lower_32_bits(addr), NFI_STRADDR);
nfc               970 drivers/mtd/nand/raw/mtk_nand.c 	init_completion(&nfc->done);
nfc               971 drivers/mtd/nand/raw/mtk_nand.c 	reg = nfi_readl(nfc, NFI_CON) | CON_BRD;
nfc               972 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, reg, NFI_CON);
nfc               973 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, STAR_EN, NFI_STRDATA);
nfc               975 drivers/mtd/nand/raw/mtk_nand.c 	rc = wait_for_completion_timeout(&nfc->done, msecs_to_jiffies(500));
nfc               977 drivers/mtd/nand/raw/mtk_nand.c 		dev_warn(nfc->dev, "read ahb/dma done timeout\n");
nfc               979 drivers/mtd/nand/raw/mtk_nand.c 	rc = readl_poll_timeout_atomic(nfc->regs + NFI_BYTELEN, reg,
nfc               983 drivers/mtd/nand/raw/mtk_nand.c 		dev_err(nfc->dev, "subpage done timeout\n");
nfc               986 drivers/mtd/nand/raw/mtk_nand.c 		rc = mtk_ecc_wait_done(nfc->ecc, ECC_DECODE);
nfc               992 drivers/mtd/nand/raw/mtk_nand.c 	dma_unmap_single(nfc->dev, addr, len, DMA_FROM_DEVICE);
nfc               997 drivers/mtd/nand/raw/mtk_nand.c 	mtk_ecc_disable(nfc->ecc);
nfc              1002 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, 0, NFI_CON);
nfc              1027 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc              1031 drivers/mtd/nand/raw/mtk_nand.c 	memset(nfc->buffer, 0xff, mtd->writesize + mtd->oobsize);
nfc              1032 drivers/mtd/nand/raw/mtk_nand.c 	ret = mtk_nfc_read_subpage(mtd, chip, 0, mtd->writesize, nfc->buffer,
nfc              1041 drivers/mtd/nand/raw/mtk_nand.c 			mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, 1);
nfc              1056 drivers/mtd/nand/raw/mtk_nand.c static inline void mtk_nfc_hw_init(struct mtk_nfc *nfc)
nfc              1064 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, 0xf1, NFI_CNRNB);
nfc              1065 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, PAGEFMT_8K_16K, NFI_PAGEFMT);
nfc              1067 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_hw_reset(nfc);
nfc              1069 drivers/mtd/nand/raw/mtk_nand.c 	nfi_readl(nfc, NFI_INTR_STA);
nfc              1070 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writel(nfc, 0, NFI_INTR_EN);
nfc              1075 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = id;
nfc              1078 drivers/mtd/nand/raw/mtk_nand.c 	sta = nfi_readw(nfc, NFI_INTR_STA);
nfc              1079 drivers/mtd/nand/raw/mtk_nand.c 	ien = nfi_readw(nfc, NFI_INTR_EN);
nfc              1084 drivers/mtd/nand/raw/mtk_nand.c 	nfi_writew(nfc, ~sta & ien, NFI_INTR_EN);
nfc              1085 drivers/mtd/nand/raw/mtk_nand.c 	complete(&nfc->done);
nfc              1161 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(nand);
nfc              1165 drivers/mtd/nand/raw/mtk_nand.c 				 mtk_ecc_get_parity_bits(nfc->ecc), 8);
nfc              1192 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(nand);
nfc              1193 drivers/mtd/nand/raw/mtk_nand.c 	const u8 *spare = nfc->caps->spare_size;
nfc              1205 drivers/mtd/nand/raw/mtk_nand.c 	for (i = 0; i < nfc->caps->num_spare_size; i++) {
nfc              1224 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(nand);
nfc              1246 drivers/mtd/nand/raw/mtk_nand.c 			    nfc->caps->max_sector_size > 512) {
nfc              1261 drivers/mtd/nand/raw/mtk_nand.c 		free = (nand->ecc.strength * mtk_ecc_get_parity_bits(nfc->ecc)
nfc              1273 drivers/mtd/nand/raw/mtk_nand.c 					     mtk_ecc_get_parity_bits(nfc->ecc);
nfc              1277 drivers/mtd/nand/raw/mtk_nand.c 					     mtk_ecc_get_parity_bits(nfc->ecc);
nfc              1281 drivers/mtd/nand/raw/mtk_nand.c 	mtk_ecc_adjust_strength(nfc->ecc, &nand->ecc.strength);
nfc              1293 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = nand_get_controller_data(chip);
nfc              1319 drivers/mtd/nand/raw/mtk_nand.c 	nfc->buffer = devm_kzalloc(dev, len, GFP_KERNEL);
nfc              1320 drivers/mtd/nand/raw/mtk_nand.c 	if (!nfc->buffer)
nfc              1331 drivers/mtd/nand/raw/mtk_nand.c static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
nfc              1369 drivers/mtd/nand/raw/mtk_nand.c 		if (test_and_set_bit(tmp, &nfc->assigned_cs)) {
nfc              1378 drivers/mtd/nand/raw/mtk_nand.c 	nand->controller = &nfc->controller;
nfc              1381 drivers/mtd/nand/raw/mtk_nand.c 	nand_set_controller_data(nand, nfc);
nfc              1413 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_hw_init(nfc);
nfc              1426 drivers/mtd/nand/raw/mtk_nand.c 	list_add_tail(&chip->node, &nfc->chips);
nfc              1431 drivers/mtd/nand/raw/mtk_nand.c static int mtk_nfc_nand_chips_init(struct device *dev, struct mtk_nfc *nfc)
nfc              1438 drivers/mtd/nand/raw/mtk_nand.c 		ret = mtk_nfc_nand_chip_init(dev, nfc, nand_np);
nfc              1494 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc;
nfc              1498 drivers/mtd/nand/raw/mtk_nand.c 	nfc = devm_kzalloc(dev, sizeof(*nfc), GFP_KERNEL);
nfc              1499 drivers/mtd/nand/raw/mtk_nand.c 	if (!nfc)
nfc              1502 drivers/mtd/nand/raw/mtk_nand.c 	nand_controller_init(&nfc->controller);
nfc              1503 drivers/mtd/nand/raw/mtk_nand.c 	INIT_LIST_HEAD(&nfc->chips);
nfc              1504 drivers/mtd/nand/raw/mtk_nand.c 	nfc->controller.ops = &mtk_nfc_controller_ops;
nfc              1507 drivers/mtd/nand/raw/mtk_nand.c 	nfc->ecc = of_mtk_ecc_get(np);
nfc              1508 drivers/mtd/nand/raw/mtk_nand.c 	if (IS_ERR(nfc->ecc))
nfc              1509 drivers/mtd/nand/raw/mtk_nand.c 		return PTR_ERR(nfc->ecc);
nfc              1510 drivers/mtd/nand/raw/mtk_nand.c 	else if (!nfc->ecc)
nfc              1513 drivers/mtd/nand/raw/mtk_nand.c 	nfc->caps = of_device_get_match_data(dev);
nfc              1514 drivers/mtd/nand/raw/mtk_nand.c 	nfc->dev = dev;
nfc              1517 drivers/mtd/nand/raw/mtk_nand.c 	nfc->regs = devm_ioremap_resource(dev, res);
nfc              1518 drivers/mtd/nand/raw/mtk_nand.c 	if (IS_ERR(nfc->regs)) {
nfc              1519 drivers/mtd/nand/raw/mtk_nand.c 		ret = PTR_ERR(nfc->regs);
nfc              1523 drivers/mtd/nand/raw/mtk_nand.c 	nfc->clk.nfi_clk = devm_clk_get(dev, "nfi_clk");
nfc              1524 drivers/mtd/nand/raw/mtk_nand.c 	if (IS_ERR(nfc->clk.nfi_clk)) {
nfc              1526 drivers/mtd/nand/raw/mtk_nand.c 		ret = PTR_ERR(nfc->clk.nfi_clk);
nfc              1530 drivers/mtd/nand/raw/mtk_nand.c 	nfc->clk.pad_clk = devm_clk_get(dev, "pad_clk");
nfc              1531 drivers/mtd/nand/raw/mtk_nand.c 	if (IS_ERR(nfc->clk.pad_clk)) {
nfc              1533 drivers/mtd/nand/raw/mtk_nand.c 		ret = PTR_ERR(nfc->clk.pad_clk);
nfc              1537 drivers/mtd/nand/raw/mtk_nand.c 	ret = mtk_nfc_enable_clk(dev, &nfc->clk);
nfc              1548 drivers/mtd/nand/raw/mtk_nand.c 	ret = devm_request_irq(dev, irq, mtk_nfc_irq, 0x0, "mtk-nand", nfc);
nfc              1560 drivers/mtd/nand/raw/mtk_nand.c 	platform_set_drvdata(pdev, nfc);
nfc              1562 drivers/mtd/nand/raw/mtk_nand.c 	ret = mtk_nfc_nand_chips_init(dev, nfc);
nfc              1571 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_disable_clk(&nfc->clk);
nfc              1574 drivers/mtd/nand/raw/mtk_nand.c 	mtk_ecc_release(nfc->ecc);
nfc              1581 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = platform_get_drvdata(pdev);
nfc              1584 drivers/mtd/nand/raw/mtk_nand.c 	while (!list_empty(&nfc->chips)) {
nfc              1585 drivers/mtd/nand/raw/mtk_nand.c 		chip = list_first_entry(&nfc->chips, struct mtk_nfc_nand_chip,
nfc              1591 drivers/mtd/nand/raw/mtk_nand.c 	mtk_ecc_release(nfc->ecc);
nfc              1592 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_disable_clk(&nfc->clk);
nfc              1600 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = dev_get_drvdata(dev);
nfc              1602 drivers/mtd/nand/raw/mtk_nand.c 	mtk_nfc_disable_clk(&nfc->clk);
nfc              1609 drivers/mtd/nand/raw/mtk_nand.c 	struct mtk_nfc *nfc = dev_get_drvdata(dev);
nfc              1617 drivers/mtd/nand/raw/mtk_nand.c 	ret = mtk_nfc_enable_clk(dev, &nfc->clk);
nfc              1622 drivers/mtd/nand/raw/mtk_nand.c 	list_for_each_entry(chip, &nfc->chips, node) {
nfc               184 drivers/mtd/nand/raw/mxic_nand.c static int mxic_nfc_clk_enable(struct mxic_nand_ctlr *nfc)
nfc               188 drivers/mtd/nand/raw/mxic_nand.c 	ret = clk_prepare_enable(nfc->ps_clk);
nfc               192 drivers/mtd/nand/raw/mxic_nand.c 	ret = clk_prepare_enable(nfc->send_clk);
nfc               196 drivers/mtd/nand/raw/mxic_nand.c 	ret = clk_prepare_enable(nfc->send_dly_clk);
nfc               203 drivers/mtd/nand/raw/mxic_nand.c 	clk_disable_unprepare(nfc->send_clk);
nfc               205 drivers/mtd/nand/raw/mxic_nand.c 	clk_disable_unprepare(nfc->ps_clk);
nfc               210 drivers/mtd/nand/raw/mxic_nand.c static void mxic_nfc_clk_disable(struct mxic_nand_ctlr *nfc)
nfc               212 drivers/mtd/nand/raw/mxic_nand.c 	clk_disable_unprepare(nfc->send_clk);
nfc               213 drivers/mtd/nand/raw/mxic_nand.c 	clk_disable_unprepare(nfc->send_dly_clk);
nfc               214 drivers/mtd/nand/raw/mxic_nand.c 	clk_disable_unprepare(nfc->ps_clk);
nfc               217 drivers/mtd/nand/raw/mxic_nand.c static void mxic_nfc_set_input_delay(struct mxic_nand_ctlr *nfc, u8 idly_code)
nfc               223 drivers/mtd/nand/raw/mxic_nand.c 	       nfc->regs + IDLY_CODE(0));
nfc               228 drivers/mtd/nand/raw/mxic_nand.c 	       nfc->regs + IDLY_CODE(1));
nfc               231 drivers/mtd/nand/raw/mxic_nand.c static int mxic_nfc_clk_setup(struct mxic_nand_ctlr *nfc, unsigned long freq)
nfc               235 drivers/mtd/nand/raw/mxic_nand.c 	ret = clk_set_rate(nfc->send_clk, freq);
nfc               239 drivers/mtd/nand/raw/mxic_nand.c 	ret = clk_set_rate(nfc->send_dly_clk, freq);
nfc               247 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_set_input_delay(nfc, 0xf);
nfc               257 drivers/mtd/nand/raw/mxic_nand.c 	ret = clk_set_phase(nfc->send_dly_clk, 9 * freq / 25000000);
nfc               264 drivers/mtd/nand/raw/mxic_nand.c static int mxic_nfc_set_freq(struct mxic_nand_ctlr *nfc, unsigned long freq)
nfc               271 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_clk_disable(nfc);
nfc               272 drivers/mtd/nand/raw/mxic_nand.c 	ret = mxic_nfc_clk_setup(nfc, freq);
nfc               276 drivers/mtd/nand/raw/mxic_nand.c 	ret = mxic_nfc_clk_enable(nfc);
nfc               285 drivers/mtd/nand/raw/mxic_nand.c 	struct mxic_nand_ctlr *nfc = dev_id;
nfc               288 drivers/mtd/nand/raw/mxic_nand.c 	sts = readl(nfc->regs + INT_STS);
nfc               290 drivers/mtd/nand/raw/mxic_nand.c 		complete(&nfc->complete);
nfc               297 drivers/mtd/nand/raw/mxic_nand.c static void mxic_nfc_hw_init(struct mxic_nand_ctlr *nfc)
nfc               301 drivers/mtd/nand/raw/mxic_nand.c 	       HC_CFG_IDLE_SIO_LVL(1), nfc->regs + HC_CFG);
nfc               302 drivers/mtd/nand/raw/mxic_nand.c 	writel(INT_STS_ALL, nfc->regs + INT_STS_EN);
nfc               303 drivers/mtd/nand/raw/mxic_nand.c 	writel(INT_RDY_PIN, nfc->regs + INT_SIG_EN);
nfc               304 drivers/mtd/nand/raw/mxic_nand.c 	writel(0x0, nfc->regs + ONFI_DIN_CNT(0));
nfc               305 drivers/mtd/nand/raw/mxic_nand.c 	writel(0, nfc->regs + LRD_CFG);
nfc               306 drivers/mtd/nand/raw/mxic_nand.c 	writel(0, nfc->regs + LRD_CTRL);
nfc               307 drivers/mtd/nand/raw/mxic_nand.c 	writel(0x0, nfc->regs + HC_EN);
nfc               310 drivers/mtd/nand/raw/mxic_nand.c static void mxic_nfc_cs_enable(struct mxic_nand_ctlr *nfc)
nfc               312 drivers/mtd/nand/raw/mxic_nand.c 	writel(readl(nfc->regs + HC_CFG) | HC_CFG_MAN_CS_EN,
nfc               313 drivers/mtd/nand/raw/mxic_nand.c 	       nfc->regs + HC_CFG);
nfc               314 drivers/mtd/nand/raw/mxic_nand.c 	writel(HC_CFG_MAN_CS_ASSERT | readl(nfc->regs + HC_CFG),
nfc               315 drivers/mtd/nand/raw/mxic_nand.c 	       nfc->regs + HC_CFG);
nfc               318 drivers/mtd/nand/raw/mxic_nand.c static void mxic_nfc_cs_disable(struct mxic_nand_ctlr *nfc)
nfc               320 drivers/mtd/nand/raw/mxic_nand.c 	writel(~HC_CFG_MAN_CS_ASSERT & readl(nfc->regs + HC_CFG),
nfc               321 drivers/mtd/nand/raw/mxic_nand.c 	       nfc->regs + HC_CFG);
nfc               326 drivers/mtd/nand/raw/mxic_nand.c 	struct mxic_nand_ctlr *nfc = nand_get_controller_data(chip);
nfc               329 drivers/mtd/nand/raw/mxic_nand.c 	ret = wait_for_completion_timeout(&nfc->complete,
nfc               332 drivers/mtd/nand/raw/mxic_nand.c 		dev_err(nfc->dev, "nand device timeout\n");
nfc               339 drivers/mtd/nand/raw/mxic_nand.c static int mxic_nfc_data_xfer(struct mxic_nand_ctlr *nfc, const void *txbuf,
nfc               356 drivers/mtd/nand/raw/mxic_nand.c 		ret = readl_poll_timeout(nfc->regs + INT_STS, sts,
nfc               361 drivers/mtd/nand/raw/mxic_nand.c 		writel(data, nfc->regs + TXD(nbytes % 4));
nfc               363 drivers/mtd/nand/raw/mxic_nand.c 		ret = readl_poll_timeout(nfc->regs + INT_STS, sts,
nfc               368 drivers/mtd/nand/raw/mxic_nand.c 		ret = readl_poll_timeout(nfc->regs + INT_STS, sts,
nfc               374 drivers/mtd/nand/raw/mxic_nand.c 		data = readl(nfc->regs + RXD);
nfc               379 drivers/mtd/nand/raw/mxic_nand.c 		if (readl(nfc->regs + INT_STS) & INT_RX_NOT_EMPTY)
nfc               380 drivers/mtd/nand/raw/mxic_nand.c 			dev_warn(nfc->dev, "RX FIFO not empty\n");
nfc               391 drivers/mtd/nand/raw/mxic_nand.c 	struct mxic_nand_ctlr *nfc = nand_get_controller_data(chip);
nfc               396 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_cs_enable(nfc);
nfc               397 drivers/mtd/nand/raw/mxic_nand.c 	init_completion(&nfc->complete);
nfc               403 drivers/mtd/nand/raw/mxic_nand.c 			writel(0, nfc->regs + HC_EN);
nfc               404 drivers/mtd/nand/raw/mxic_nand.c 			writel(HC_EN_BIT, nfc->regs + HC_EN);
nfc               406 drivers/mtd/nand/raw/mxic_nand.c 			       OP_CMD_BYTES(0), nfc->regs + SS_CTRL(0));
nfc               408 drivers/mtd/nand/raw/mxic_nand.c 			ret = mxic_nfc_data_xfer(nfc,
nfc               416 drivers/mtd/nand/raw/mxic_nand.c 			       nfc->regs + SS_CTRL(0));
nfc               417 drivers/mtd/nand/raw/mxic_nand.c 			ret = mxic_nfc_data_xfer(nfc,
nfc               423 drivers/mtd/nand/raw/mxic_nand.c 			writel(0x0, nfc->regs + ONFI_DIN_CNT(0));
nfc               425 drivers/mtd/nand/raw/mxic_nand.c 			       OP_READ, nfc->regs + SS_CTRL(0));
nfc               426 drivers/mtd/nand/raw/mxic_nand.c 			ret = mxic_nfc_data_xfer(nfc, NULL,
nfc               433 drivers/mtd/nand/raw/mxic_nand.c 			       nfc->regs + ONFI_DIN_CNT(0));
nfc               435 drivers/mtd/nand/raw/mxic_nand.c 			       nfc->regs + SS_CTRL(0));
nfc               436 drivers/mtd/nand/raw/mxic_nand.c 			ret = mxic_nfc_data_xfer(nfc,
nfc               446 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_cs_disable(nfc);
nfc               454 drivers/mtd/nand/raw/mxic_nand.c 	struct mxic_nand_ctlr *nfc = nand_get_controller_data(chip);
nfc               468 drivers/mtd/nand/raw/mxic_nand.c 	ret =  mxic_nfc_set_freq(nfc, freq);
nfc               470 drivers/mtd/nand/raw/mxic_nand.c 		dev_err(nfc->dev, "set freq:%ld failed\n", freq);
nfc               473 drivers/mtd/nand/raw/mxic_nand.c 		writel(DATA_STROB_EDO_EN, nfc->regs + DATA_STROB);
nfc               487 drivers/mtd/nand/raw/mxic_nand.c 	struct mxic_nand_ctlr *nfc;
nfc               492 drivers/mtd/nand/raw/mxic_nand.c 	nfc = devm_kzalloc(&pdev->dev, sizeof(struct mxic_nand_ctlr),
nfc               494 drivers/mtd/nand/raw/mxic_nand.c 	if (!nfc)
nfc               497 drivers/mtd/nand/raw/mxic_nand.c 	nfc->ps_clk = devm_clk_get(&pdev->dev, "ps");
nfc               498 drivers/mtd/nand/raw/mxic_nand.c 	if (IS_ERR(nfc->ps_clk))
nfc               499 drivers/mtd/nand/raw/mxic_nand.c 		return PTR_ERR(nfc->ps_clk);
nfc               501 drivers/mtd/nand/raw/mxic_nand.c 	nfc->send_clk = devm_clk_get(&pdev->dev, "send");
nfc               502 drivers/mtd/nand/raw/mxic_nand.c 	if (IS_ERR(nfc->send_clk))
nfc               503 drivers/mtd/nand/raw/mxic_nand.c 		return PTR_ERR(nfc->send_clk);
nfc               505 drivers/mtd/nand/raw/mxic_nand.c 	nfc->send_dly_clk = devm_clk_get(&pdev->dev, "send_dly");
nfc               506 drivers/mtd/nand/raw/mxic_nand.c 	if (IS_ERR(nfc->send_dly_clk))
nfc               507 drivers/mtd/nand/raw/mxic_nand.c 		return PTR_ERR(nfc->send_dly_clk);
nfc               509 drivers/mtd/nand/raw/mxic_nand.c 	nfc->regs = devm_platform_ioremap_resource(pdev, 0);
nfc               510 drivers/mtd/nand/raw/mxic_nand.c 	if (IS_ERR(nfc->regs))
nfc               511 drivers/mtd/nand/raw/mxic_nand.c 		return PTR_ERR(nfc->regs);
nfc               513 drivers/mtd/nand/raw/mxic_nand.c 	nand_chip = &nfc->chip;
nfc               520 drivers/mtd/nand/raw/mxic_nand.c 	nand_chip->priv = nfc;
nfc               521 drivers/mtd/nand/raw/mxic_nand.c 	nfc->dev = &pdev->dev;
nfc               522 drivers/mtd/nand/raw/mxic_nand.c 	nfc->controller.ops = &mxic_nand_controller_ops;
nfc               523 drivers/mtd/nand/raw/mxic_nand.c 	nand_controller_init(&nfc->controller);
nfc               524 drivers/mtd/nand/raw/mxic_nand.c 	nand_chip->controller = &nfc->controller;
nfc               532 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_hw_init(nfc);
nfc               535 drivers/mtd/nand/raw/mxic_nand.c 			       0, "mxic-nfc", nfc);
nfc               547 drivers/mtd/nand/raw/mxic_nand.c 	platform_set_drvdata(pdev, nfc);
nfc               551 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_clk_disable(nfc);
nfc               557 drivers/mtd/nand/raw/mxic_nand.c 	struct mxic_nand_ctlr *nfc = platform_get_drvdata(pdev);
nfc               559 drivers/mtd/nand/raw/mxic_nand.c 	nand_release(&nfc->chip);
nfc               560 drivers/mtd/nand/raw/mxic_nand.c 	mxic_nfc_clk_disable(nfc);
nfc               259 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = dev_id;
nfc               260 drivers/mtd/nand/raw/sunxi_nand.c 	u32 st = readl(nfc->regs + NFC_REG_ST);
nfc               261 drivers/mtd/nand/raw/sunxi_nand.c 	u32 ien = readl(nfc->regs + NFC_REG_INT);
nfc               267 drivers/mtd/nand/raw/sunxi_nand.c 		complete(&nfc->complete);
nfc               269 drivers/mtd/nand/raw/sunxi_nand.c 	writel(st & NFC_INT_MASK, nfc->regs + NFC_REG_ST);
nfc               270 drivers/mtd/nand/raw/sunxi_nand.c 	writel(~st & ien & NFC_INT_MASK, nfc->regs + NFC_REG_INT);
nfc               275 drivers/mtd/nand/raw/sunxi_nand.c static int sunxi_nfc_wait_events(struct sunxi_nfc *nfc, u32 events,
nfc               287 drivers/mtd/nand/raw/sunxi_nand.c 		init_completion(&nfc->complete);
nfc               289 drivers/mtd/nand/raw/sunxi_nand.c 		writel(events, nfc->regs + NFC_REG_INT);
nfc               291 drivers/mtd/nand/raw/sunxi_nand.c 		ret = wait_for_completion_timeout(&nfc->complete,
nfc               298 drivers/mtd/nand/raw/sunxi_nand.c 		writel(0, nfc->regs + NFC_REG_INT);
nfc               302 drivers/mtd/nand/raw/sunxi_nand.c 		ret = readl_poll_timeout(nfc->regs + NFC_REG_ST, status,
nfc               307 drivers/mtd/nand/raw/sunxi_nand.c 	writel(events & NFC_INT_MASK, nfc->regs + NFC_REG_ST);
nfc               310 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "wait interrupt timedout\n");
nfc               315 drivers/mtd/nand/raw/sunxi_nand.c static int sunxi_nfc_wait_cmd_fifo_empty(struct sunxi_nfc *nfc)
nfc               320 drivers/mtd/nand/raw/sunxi_nand.c 	ret = readl_poll_timeout(nfc->regs + NFC_REG_ST, status,
nfc               324 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "wait for empty cmd FIFO timedout\n");
nfc               329 drivers/mtd/nand/raw/sunxi_nand.c static int sunxi_nfc_rst(struct sunxi_nfc *nfc)
nfc               334 drivers/mtd/nand/raw/sunxi_nand.c 	writel(0, nfc->regs + NFC_REG_ECC_CTL);
nfc               335 drivers/mtd/nand/raw/sunxi_nand.c 	writel(NFC_RESET, nfc->regs + NFC_REG_CTL);
nfc               337 drivers/mtd/nand/raw/sunxi_nand.c 	ret = readl_poll_timeout(nfc->regs + NFC_REG_CTL, ctl,
nfc               341 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "wait for NAND controller reset timedout\n");
nfc               346 drivers/mtd/nand/raw/sunxi_nand.c static int sunxi_nfc_dma_op_prepare(struct sunxi_nfc *nfc, const void *buf,
nfc               362 drivers/mtd/nand/raw/sunxi_nand.c 	ret = dma_map_sg(nfc->dev, sg, 1, ddir);
nfc               366 drivers/mtd/nand/raw/sunxi_nand.c 	dmad = dmaengine_prep_slave_sg(nfc->dmac, sg, 1, tdir, DMA_CTRL_ACK);
nfc               372 drivers/mtd/nand/raw/sunxi_nand.c 	writel(readl(nfc->regs + NFC_REG_CTL) | NFC_RAM_METHOD,
nfc               373 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CTL);
nfc               374 drivers/mtd/nand/raw/sunxi_nand.c 	writel(nchunks, nfc->regs + NFC_REG_SECTOR_NUM);
nfc               375 drivers/mtd/nand/raw/sunxi_nand.c 	writel(chunksize, nfc->regs + NFC_REG_CNT);
nfc               376 drivers/mtd/nand/raw/sunxi_nand.c 	if (nfc->caps->extra_mbus_conf)
nfc               377 drivers/mtd/nand/raw/sunxi_nand.c 		writel(chunksize * nchunks, nfc->regs + NFC_REG_MDMA_CNT);
nfc               388 drivers/mtd/nand/raw/sunxi_nand.c 	writel(readl(nfc->regs + NFC_REG_CTL) & ~NFC_RAM_METHOD,
nfc               389 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CTL);
nfc               392 drivers/mtd/nand/raw/sunxi_nand.c 	dma_unmap_sg(nfc->dev, sg, 1, ddir);
nfc               396 drivers/mtd/nand/raw/sunxi_nand.c static void sunxi_nfc_dma_op_cleanup(struct sunxi_nfc *nfc,
nfc               400 drivers/mtd/nand/raw/sunxi_nand.c 	dma_unmap_sg(nfc->dev, sg, 1, ddir);
nfc               401 drivers/mtd/nand/raw/sunxi_nand.c 	writel(readl(nfc->regs + NFC_REG_CTL) & ~NFC_RAM_METHOD,
nfc               402 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CTL);
nfc               409 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller);
nfc               416 drivers/mtd/nand/raw/sunxi_nand.c 	ctl = readl(nfc->regs + NFC_REG_CTL) &
nfc               424 drivers/mtd/nand/raw/sunxi_nand.c 	writel(mtd->writesize, nfc->regs + NFC_REG_SPARE_AREA);
nfc               426 drivers/mtd/nand/raw/sunxi_nand.c 	if (nfc->clk_rate != sunxi_nand->clk_rate) {
nfc               427 drivers/mtd/nand/raw/sunxi_nand.c 		clk_set_rate(nfc->mod_clk, sunxi_nand->clk_rate);
nfc               428 drivers/mtd/nand/raw/sunxi_nand.c 		nfc->clk_rate = sunxi_nand->clk_rate;
nfc               431 drivers/mtd/nand/raw/sunxi_nand.c 	writel(sunxi_nand->timing_ctl, nfc->regs + NFC_REG_TIMING_CTL);
nfc               432 drivers/mtd/nand/raw/sunxi_nand.c 	writel(sunxi_nand->timing_cfg, nfc->regs + NFC_REG_TIMING_CFG);
nfc               433 drivers/mtd/nand/raw/sunxi_nand.c 	writel(ctl, nfc->regs + NFC_REG_CTL);
nfc               439 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller);
nfc               450 drivers/mtd/nand/raw/sunxi_nand.c 		ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc               454 drivers/mtd/nand/raw/sunxi_nand.c 		writel(cnt, nfc->regs + NFC_REG_CNT);
nfc               456 drivers/mtd/nand/raw/sunxi_nand.c 		writel(tmp, nfc->regs + NFC_REG_CMD);
nfc               462 drivers/mtd/nand/raw/sunxi_nand.c 		ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG, poll, 0);
nfc               467 drivers/mtd/nand/raw/sunxi_nand.c 			memcpy_fromio(buf + offs, nfc->regs + NFC_RAM0_BASE,
nfc               477 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller);
nfc               488 drivers/mtd/nand/raw/sunxi_nand.c 		ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc               492 drivers/mtd/nand/raw/sunxi_nand.c 		writel(cnt, nfc->regs + NFC_REG_CNT);
nfc               493 drivers/mtd/nand/raw/sunxi_nand.c 		memcpy_toio(nfc->regs + NFC_RAM0_BASE, buf + offs, cnt);
nfc               496 drivers/mtd/nand/raw/sunxi_nand.c 		writel(tmp, nfc->regs + NFC_REG_CMD);
nfc               502 drivers/mtd/nand/raw/sunxi_nand.c 		ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG, poll, 0);
nfc               615 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               616 drivers/mtd/nand/raw/sunxi_nand.c 	u32 ecc_ctl = readl(nfc->regs + NFC_REG_ECC_CTL);
nfc               622 drivers/mtd/nand/raw/sunxi_nand.c 	ecc_ctl = readl(nfc->regs + NFC_REG_ECC_CTL);
nfc               624 drivers/mtd/nand/raw/sunxi_nand.c 	ecc_ctl = readl(nfc->regs + NFC_REG_ECC_CTL) & ~NFC_RANDOM_SEED_MSK;
nfc               625 drivers/mtd/nand/raw/sunxi_nand.c 	writel(ecc_ctl | NFC_RANDOM_SEED(state), nfc->regs + NFC_REG_ECC_CTL);
nfc               630 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               635 drivers/mtd/nand/raw/sunxi_nand.c 	writel(readl(nfc->regs + NFC_REG_ECC_CTL) | NFC_RANDOM_EN,
nfc               636 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_ECC_CTL);
nfc               641 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               646 drivers/mtd/nand/raw/sunxi_nand.c 	writel(readl(nfc->regs + NFC_REG_ECC_CTL) & ~NFC_RANDOM_EN,
nfc               647 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_ECC_CTL);
nfc               679 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               683 drivers/mtd/nand/raw/sunxi_nand.c 	ecc_ctl = readl(nfc->regs + NFC_REG_ECC_CTL);
nfc               692 drivers/mtd/nand/raw/sunxi_nand.c 	writel(ecc_ctl, nfc->regs + NFC_REG_ECC_CTL);
nfc               697 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               699 drivers/mtd/nand/raw/sunxi_nand.c 	writel(readl(nfc->regs + NFC_REG_ECC_CTL) & ~NFC_ECC_EN,
nfc               700 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_ECC_CTL);
nfc               719 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               721 drivers/mtd/nand/raw/sunxi_nand.c 	sunxi_nfc_user_data_to_buf(readl(nfc->regs + NFC_REG_USER_DATA(step)),
nfc               733 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               744 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_USER_DATA(step));
nfc               763 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               775 drivers/mtd/nand/raw/sunxi_nand.c 		if (unlikely(!(readl(nfc->regs + NFC_REG_PAT_ID) & 0x1))) {
nfc               791 drivers/mtd/nand/raw/sunxi_nand.c 	tmp = readl(nfc->regs + NFC_REG_ECC_ERR_CNT(step));
nfc               803 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               817 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc               823 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CMD);
nfc               825 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG, false, 0);
nfc               833 drivers/mtd/nand/raw/sunxi_nand.c 				       readl(nfc->regs + NFC_REG_ECC_ST),
nfc               847 drivers/mtd/nand/raw/sunxi_nand.c 			memcpy_fromio(data, nfc->regs + NFC_RAM0_BASE,
nfc               859 drivers/mtd/nand/raw/sunxi_nand.c 		memcpy_fromio(data, nfc->regs + NFC_RAM0_BASE, ecc->size);
nfc               908 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc               916 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc               920 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_dma_op_prepare(nfc, buf, ecc->size, nchunks,
nfc               930 drivers/mtd/nand/raw/sunxi_nand.c 	       NAND_CMD_READSTART, nfc->regs + NFC_REG_RCMD_SET);
nfc               932 drivers/mtd/nand/raw/sunxi_nand.c 	dma_async_issue_pending(nfc->dmac);
nfc               935 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CMD);
nfc               937 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG, false, 0);
nfc               939 drivers/mtd/nand/raw/sunxi_nand.c 		dmaengine_terminate_all(nfc->dmac);
nfc               944 drivers/mtd/nand/raw/sunxi_nand.c 	sunxi_nfc_dma_op_cleanup(nfc, DMA_FROM_DEVICE, &sg);
nfc               949 drivers/mtd/nand/raw/sunxi_nand.c 	status = readl(nfc->regs + NFC_REG_ECC_ST);
nfc              1032 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc              1044 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc              1053 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CMD);
nfc              1055 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG, false, 0);
nfc              1276 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc              1283 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc              1287 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_dma_op_prepare(nfc, buf, ecc->size, ecc->steps,
nfc              1305 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_WCMD_SET);
nfc              1307 drivers/mtd/nand/raw/sunxi_nand.c 	dma_async_issue_pending(nfc->dmac);
nfc              1311 drivers/mtd/nand/raw/sunxi_nand.c 	       nfc->regs + NFC_REG_CMD);
nfc              1313 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG, false, 0);
nfc              1315 drivers/mtd/nand/raw/sunxi_nand.c 		dmaengine_terminate_all(nfc->dmac);
nfc              1320 drivers/mtd/nand/raw/sunxi_nand.c 	sunxi_nfc_dma_op_cleanup(nfc, DMA_TO_DEVICE, &sg);
nfc              1383 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller);
nfc              1483 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "unsupported tWB\n");
nfc              1489 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "unsupported tADL\n");
nfc              1495 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "unsupported tWHR\n");
nfc              1502 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "unsupported tRHW\n");
nfc              1528 drivers/mtd/nand/raw/sunxi_nand.c 	real_clk_rate = clk_round_rate(nfc->mod_clk, sunxi_nand->clk_rate);
nfc              1530 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "Unable to round clk %lu\n",
nfc              1610 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc              1672 drivers/mtd/nand/raw/sunxi_nand.c 		dev_err(nfc->dev, "unsupported strength\n");
nfc              1697 drivers/mtd/nand/raw/sunxi_nand.c 	if (nfc->dmac) {
nfc              1774 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
nfc              1820 drivers/mtd/nand/raw/sunxi_nand.c 				memcpy_toio(nfc->regs + NFC_RAM0_BASE,
nfc              1835 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
nfc              1840 drivers/mtd/nand/raw/sunxi_nand.c 		writel(addrs[0], nfc->regs + NFC_REG_ADDR_LOW);
nfc              1841 drivers/mtd/nand/raw/sunxi_nand.c 		writel(addrs[1], nfc->regs + NFC_REG_ADDR_HIGH);
nfc              1846 drivers/mtd/nand/raw/sunxi_nand.c 		       nfc->regs +
nfc              1851 drivers/mtd/nand/raw/sunxi_nand.c 		writel(cnt, nfc->regs + NFC_REG_CNT);
nfc              1853 drivers/mtd/nand/raw/sunxi_nand.c 	writel(cmd, nfc->regs + NFC_REG_CMD);
nfc              1855 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_wait_events(nfc, NFC_CMD_INT_FLAG,
nfc              1862 drivers/mtd/nand/raw/sunxi_nand.c 		memcpy_fromio(inbuf, nfc->regs + NFC_RAM0_BASE, cnt);
nfc              1926 drivers/mtd/nand/raw/sunxi_nand.c static int sunxi_nand_chip_init(struct device *dev, struct sunxi_nfc *nfc,
nfc              1970 drivers/mtd/nand/raw/sunxi_nand.c 		if (test_and_set_bit(tmp, &nfc->assigned_cs)) {
nfc              1986 drivers/mtd/nand/raw/sunxi_nand.c 	nand->controller = &nfc->controller;
nfc              2010 drivers/mtd/nand/raw/sunxi_nand.c 	list_add_tail(&sunxi_nand->node, &nfc->chips);
nfc              2015 drivers/mtd/nand/raw/sunxi_nand.c static int sunxi_nand_chips_init(struct device *dev, struct sunxi_nfc *nfc)
nfc              2028 drivers/mtd/nand/raw/sunxi_nand.c 		ret = sunxi_nand_chip_init(dev, nfc, nand_np);
nfc              2038 drivers/mtd/nand/raw/sunxi_nand.c static void sunxi_nand_chips_cleanup(struct sunxi_nfc *nfc)
nfc              2042 drivers/mtd/nand/raw/sunxi_nand.c 	while (!list_empty(&nfc->chips)) {
nfc              2043 drivers/mtd/nand/raw/sunxi_nand.c 		sunxi_nand = list_first_entry(&nfc->chips,
nfc              2056 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc;
nfc              2060 drivers/mtd/nand/raw/sunxi_nand.c 	nfc = devm_kzalloc(dev, sizeof(*nfc), GFP_KERNEL);
nfc              2061 drivers/mtd/nand/raw/sunxi_nand.c 	if (!nfc)
nfc              2064 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->dev = dev;
nfc              2065 drivers/mtd/nand/raw/sunxi_nand.c 	nand_controller_init(&nfc->controller);
nfc              2066 drivers/mtd/nand/raw/sunxi_nand.c 	INIT_LIST_HEAD(&nfc->chips);
nfc              2069 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->regs = devm_ioremap_resource(dev, r);
nfc              2070 drivers/mtd/nand/raw/sunxi_nand.c 	if (IS_ERR(nfc->regs))
nfc              2071 drivers/mtd/nand/raw/sunxi_nand.c 		return PTR_ERR(nfc->regs);
nfc              2079 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->ahb_clk = devm_clk_get(dev, "ahb");
nfc              2080 drivers/mtd/nand/raw/sunxi_nand.c 	if (IS_ERR(nfc->ahb_clk)) {
nfc              2082 drivers/mtd/nand/raw/sunxi_nand.c 		return PTR_ERR(nfc->ahb_clk);
nfc              2085 drivers/mtd/nand/raw/sunxi_nand.c 	ret = clk_prepare_enable(nfc->ahb_clk);
nfc              2089 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->mod_clk = devm_clk_get(dev, "mod");
nfc              2090 drivers/mtd/nand/raw/sunxi_nand.c 	if (IS_ERR(nfc->mod_clk)) {
nfc              2092 drivers/mtd/nand/raw/sunxi_nand.c 		ret = PTR_ERR(nfc->mod_clk);
nfc              2096 drivers/mtd/nand/raw/sunxi_nand.c 	ret = clk_prepare_enable(nfc->mod_clk);
nfc              2100 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->reset = devm_reset_control_get_optional_exclusive(dev, "ahb");
nfc              2101 drivers/mtd/nand/raw/sunxi_nand.c 	if (IS_ERR(nfc->reset)) {
nfc              2102 drivers/mtd/nand/raw/sunxi_nand.c 		ret = PTR_ERR(nfc->reset);
nfc              2106 drivers/mtd/nand/raw/sunxi_nand.c 	ret = reset_control_deassert(nfc->reset);
nfc              2112 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->caps = of_device_get_match_data(&pdev->dev);
nfc              2113 drivers/mtd/nand/raw/sunxi_nand.c 	if (!nfc->caps) {
nfc              2118 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nfc_rst(nfc);
nfc              2122 drivers/mtd/nand/raw/sunxi_nand.c 	writel(0, nfc->regs + NFC_REG_INT);
nfc              2124 drivers/mtd/nand/raw/sunxi_nand.c 			       0, "sunxi-nand", nfc);
nfc              2128 drivers/mtd/nand/raw/sunxi_nand.c 	nfc->dmac = dma_request_slave_channel(dev, "rxtx");
nfc              2129 drivers/mtd/nand/raw/sunxi_nand.c 	if (nfc->dmac) {
nfc              2132 drivers/mtd/nand/raw/sunxi_nand.c 		dmac_cfg.src_addr = r->start + nfc->caps->reg_io_data;
nfc              2136 drivers/mtd/nand/raw/sunxi_nand.c 		dmac_cfg.src_maxburst = nfc->caps->dma_maxburst;
nfc              2137 drivers/mtd/nand/raw/sunxi_nand.c 		dmac_cfg.dst_maxburst = nfc->caps->dma_maxburst;
nfc              2138 drivers/mtd/nand/raw/sunxi_nand.c 		dmaengine_slave_config(nfc->dmac, &dmac_cfg);
nfc              2140 drivers/mtd/nand/raw/sunxi_nand.c 		if (nfc->caps->extra_mbus_conf)
nfc              2141 drivers/mtd/nand/raw/sunxi_nand.c 			writel(readl(nfc->regs + NFC_REG_CTL) |
nfc              2142 drivers/mtd/nand/raw/sunxi_nand.c 			       NFC_DMA_TYPE_NORMAL, nfc->regs + NFC_REG_CTL);
nfc              2148 drivers/mtd/nand/raw/sunxi_nand.c 	platform_set_drvdata(pdev, nfc);
nfc              2150 drivers/mtd/nand/raw/sunxi_nand.c 	ret = sunxi_nand_chips_init(dev, nfc);
nfc              2159 drivers/mtd/nand/raw/sunxi_nand.c 	if (nfc->dmac)
nfc              2160 drivers/mtd/nand/raw/sunxi_nand.c 		dma_release_channel(nfc->dmac);
nfc              2162 drivers/mtd/nand/raw/sunxi_nand.c 	reset_control_assert(nfc->reset);
nfc              2164 drivers/mtd/nand/raw/sunxi_nand.c 	clk_disable_unprepare(nfc->mod_clk);
nfc              2166 drivers/mtd/nand/raw/sunxi_nand.c 	clk_disable_unprepare(nfc->ahb_clk);
nfc              2173 drivers/mtd/nand/raw/sunxi_nand.c 	struct sunxi_nfc *nfc = platform_get_drvdata(pdev);
nfc              2175 drivers/mtd/nand/raw/sunxi_nand.c 	sunxi_nand_chips_cleanup(nfc);
nfc              2177 drivers/mtd/nand/raw/sunxi_nand.c 	reset_control_assert(nfc->reset);
nfc              2179 drivers/mtd/nand/raw/sunxi_nand.c 	if (nfc->dmac)
nfc              2180 drivers/mtd/nand/raw/sunxi_nand.c 		dma_release_channel(nfc->dmac);
nfc              2181 drivers/mtd/nand/raw/sunxi_nand.c 	clk_disable_unprepare(nfc->mod_clk);
nfc              2182 drivers/mtd/nand/raw/sunxi_nand.c 	clk_disable_unprepare(nfc->ahb_clk);
nfc               129 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = to_tango_nfc(chip->controller);
nfc               131 drivers/mtd/nand/raw/tango_nand.c 	return readl_relaxed(nfc->pbus_base + PBUS_CS_CTRL) & PBUS_IORDY;
nfc               157 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = to_tango_nfc(chip->controller);
nfc               163 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(tchip->timing1, nfc->reg_base + NFC_TIMING1);
nfc               164 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(tchip->timing2, nfc->reg_base + NFC_TIMING2);
nfc               165 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(tchip->xfer_cfg, nfc->reg_base + NFC_XFER_CFG);
nfc               166 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(tchip->pkt_0_cfg, nfc->reg_base + NFC_PKT_0_CFG);
nfc               167 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(tchip->pkt_n_cfg, nfc->reg_base + NFC_PKT_N_CFG);
nfc               168 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(tchip->bb_cfg, nfc->reg_base + NFC_BB_CFG);
nfc               206 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = to_tango_nfc(chip->controller);
nfc               208 drivers/mtd/nand/raw/tango_nand.c 	status = readl_relaxed(nfc->reg_base + NFC_XFER_STATUS);
nfc               212 drivers/mtd/nand/raw/tango_nand.c 	res = readl_relaxed(nfc->mem_base + ERROR_REPORT);
nfc               229 drivers/mtd/nand/raw/tango_nand.c static int do_dma(struct tango_nfc *nfc, enum dma_data_direction dir, int cmd,
nfc               232 drivers/mtd/nand/raw/tango_nand.c 	void __iomem *addr = nfc->reg_base + NFC_STATUS;
nfc               233 drivers/mtd/nand/raw/tango_nand.c 	struct dma_chan *chan = nfc->chan;
nfc               254 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(MODE_NFC, nfc->pbus_base + PBUS_PAD_MODE);
nfc               256 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(page, nfc->reg_base + NFC_ADDR_PAGE);
nfc               257 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(0, nfc->reg_base + NFC_ADDR_OFFSET);
nfc               258 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(cmd, nfc->reg_base + NFC_FLASH_CMD);
nfc               267 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(MODE_RAW, nfc->pbus_base + PBUS_PAD_MODE);
nfc               279 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = to_tango_nfc(chip->controller);
nfc               285 drivers/mtd/nand/raw/tango_nand.c 	err = do_dma(nfc, DMA_FROM_DEVICE, NFC_READ, buf, len, page);
nfc               302 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = to_tango_nfc(chip->controller);
nfc               309 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(0xffffffff, nfc->mem_base + METADATA);
nfc               310 drivers/mtd/nand/raw/tango_nand.c 	err = do_dma(nfc, DMA_TO_DEVICE, NFC_WRITE, buf, len, page);
nfc               483 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = to_tango_nfc(chip->controller);
nfc               486 drivers/mtd/nand/raw/tango_nand.c 	int kHz = nfc->freq_kHz;
nfc               541 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = dev_get_drvdata(dev);
nfc               574 drivers/mtd/nand/raw/tango_nand.c 	chip->controller = &nfc->hw;
nfc               575 drivers/mtd/nand/raw/tango_nand.c 	tchip->base = nfc->pbus_base + (cs * 256);
nfc               596 drivers/mtd/nand/raw/tango_nand.c 	nfc->chips[cs] = tchip;
nfc               604 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc = platform_get_drvdata(pdev);
nfc               606 drivers/mtd/nand/raw/tango_nand.c 	dma_release_channel(nfc->chan);
nfc               609 drivers/mtd/nand/raw/tango_nand.c 		if (nfc->chips[cs])
nfc               610 drivers/mtd/nand/raw/tango_nand.c 			nand_release(&nfc->chips[cs]->nand_chip);
nfc               621 drivers/mtd/nand/raw/tango_nand.c 	struct tango_nfc *nfc;
nfc               624 drivers/mtd/nand/raw/tango_nand.c 	nfc = devm_kzalloc(&pdev->dev, sizeof(*nfc), GFP_KERNEL);
nfc               625 drivers/mtd/nand/raw/tango_nand.c 	if (!nfc)
nfc               629 drivers/mtd/nand/raw/tango_nand.c 	nfc->reg_base = devm_ioremap_resource(&pdev->dev, res);
nfc               630 drivers/mtd/nand/raw/tango_nand.c 	if (IS_ERR(nfc->reg_base))
nfc               631 drivers/mtd/nand/raw/tango_nand.c 		return PTR_ERR(nfc->reg_base);
nfc               634 drivers/mtd/nand/raw/tango_nand.c 	nfc->mem_base = devm_ioremap_resource(&pdev->dev, res);
nfc               635 drivers/mtd/nand/raw/tango_nand.c 	if (IS_ERR(nfc->mem_base))
nfc               636 drivers/mtd/nand/raw/tango_nand.c 		return PTR_ERR(nfc->mem_base);
nfc               639 drivers/mtd/nand/raw/tango_nand.c 	nfc->pbus_base = devm_ioremap_resource(&pdev->dev, res);
nfc               640 drivers/mtd/nand/raw/tango_nand.c 	if (IS_ERR(nfc->pbus_base))
nfc               641 drivers/mtd/nand/raw/tango_nand.c 		return PTR_ERR(nfc->pbus_base);
nfc               643 drivers/mtd/nand/raw/tango_nand.c 	writel_relaxed(MODE_RAW, nfc->pbus_base + PBUS_PAD_MODE);
nfc               649 drivers/mtd/nand/raw/tango_nand.c 	nfc->chan = dma_request_chan(&pdev->dev, "rxtx");
nfc               650 drivers/mtd/nand/raw/tango_nand.c 	if (IS_ERR(nfc->chan))
nfc               651 drivers/mtd/nand/raw/tango_nand.c 		return PTR_ERR(nfc->chan);
nfc               653 drivers/mtd/nand/raw/tango_nand.c 	platform_set_drvdata(pdev, nfc);
nfc               654 drivers/mtd/nand/raw/tango_nand.c 	nand_controller_init(&nfc->hw);
nfc               655 drivers/mtd/nand/raw/tango_nand.c 	nfc->hw.ops = &tango_controller_ops;
nfc               656 drivers/mtd/nand/raw/tango_nand.c 	nfc->freq_kHz = clk_get_rate(clk) / 1000;
nfc               173 drivers/mtd/nand/raw/vf610_nfc.c static inline u32 vf610_nfc_read(struct vf610_nfc *nfc, uint reg)
nfc               175 drivers/mtd/nand/raw/vf610_nfc.c 	return readl(nfc->regs + reg);
nfc               178 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_write(struct vf610_nfc *nfc, uint reg, u32 val)
nfc               180 drivers/mtd/nand/raw/vf610_nfc.c 	writel(val, nfc->regs + reg);
nfc               183 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_set(struct vf610_nfc *nfc, uint reg, u32 bits)
nfc               185 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, reg, vf610_nfc_read(nfc, reg) | bits);
nfc               188 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_clear(struct vf610_nfc *nfc, uint reg, u32 bits)
nfc               190 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, reg, vf610_nfc_read(nfc, reg) & ~bits);
nfc               193 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_set_field(struct vf610_nfc *nfc, u32 reg,
nfc               196 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, reg,
nfc               197 drivers/mtd/nand/raw/vf610_nfc.c 			(vf610_nfc_read(nfc, reg) & (~mask)) | val << shift);
nfc               281 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_clear_status(struct vf610_nfc *nfc)
nfc               283 drivers/mtd/nand/raw/vf610_nfc.c 	u32 tmp = vf610_nfc_read(nfc, NFC_IRQ_STATUS);
nfc               286 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, NFC_IRQ_STATUS, tmp);
nfc               289 drivers/mtd/nand/raw/vf610_nfc.c static void vf610_nfc_done(struct vf610_nfc *nfc)
nfc               300 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set(nfc, NFC_IRQ_STATUS, IDLE_EN_BIT);
nfc               301 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set(nfc, NFC_FLASH_CMD2, START_BIT);
nfc               303 drivers/mtd/nand/raw/vf610_nfc.c 	if (!wait_for_completion_timeout(&nfc->cmd_done, timeout))
nfc               304 drivers/mtd/nand/raw/vf610_nfc.c 		dev_warn(nfc->dev, "Timeout while waiting for BUSY.\n");
nfc               306 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear_status(nfc);
nfc               311 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = data;
nfc               313 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear(nfc, NFC_IRQ_STATUS, IDLE_EN_BIT);
nfc               314 drivers/mtd/nand/raw/vf610_nfc.c 	complete(&nfc->cmd_done);
nfc               319 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_ecc_mode(struct vf610_nfc *nfc, int ecc_mode)
nfc               321 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set_field(nfc, NFC_FLASH_CONFIG,
nfc               326 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_transfer_size(struct vf610_nfc *nfc, int size)
nfc               328 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, NFC_SECTOR_SIZE, size);
nfc               331 drivers/mtd/nand/raw/vf610_nfc.c static inline void vf610_nfc_run(struct vf610_nfc *nfc, u32 col, u32 row,
nfc               334 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set_field(nfc, NFC_COL_ADDR, COL_ADDR_MASK,
nfc               337 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set_field(nfc, NFC_ROW_ADDR, ROW_ADDR_MASK,
nfc               340 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, NFC_SECTOR_SIZE, trfr_sz);
nfc               341 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, NFC_FLASH_CMD1, cmd1);
nfc               342 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, NFC_FLASH_CMD2, cmd2);
nfc               344 drivers/mtd/nand/raw/vf610_nfc.c 	dev_dbg(nfc->dev,
nfc               348 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_done(nfc);
nfc               366 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               414 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_wr_to_sram(nfc->regs + NFC_MAIN_AREA(0) + offset,
nfc               416 drivers/mtd/nand/raw/vf610_nfc.c 				     trfr_sz, !nfc->data_access);
nfc               444 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_16BIT);
nfc               448 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_run(nfc, col, row, cmd1, cmd2, trfr_sz);
nfc               456 drivers/mtd/nand/raw/vf610_nfc.c 				       nfc->regs + NFC_MAIN_AREA(0) + offset,
nfc               457 drivers/mtd/nand/raw/vf610_nfc.c 				       trfr_sz, !nfc->data_access);
nfc               461 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_set(nfc, NFC_FLASH_CONFIG, CONFIG_16BIT);
nfc               486 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               490 drivers/mtd/nand/raw/vf610_nfc.c 	if (nfc->variant != NFC_VFC610)
nfc               493 drivers/mtd/nand/raw/vf610_nfc.c 	tmp = vf610_nfc_read(nfc, NFC_ROW_ADDR);
nfc               498 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_write(nfc, NFC_ROW_ADDR, tmp);
nfc               513 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               518 drivers/mtd/nand/raw/vf610_nfc.c 	int flips_threshold = nfc->chip.ecc.strength / 2;
nfc               520 drivers/mtd/nand/raw/vf610_nfc.c 	ecc_status = vf610_nfc_read(nfc, ecc_status_off) & 0xff;
nfc               526 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = true;
nfc               527 drivers/mtd/nand/raw/vf610_nfc.c 	nand_read_oob_op(&nfc->chip, page, 0, oob, mtd->oobsize);
nfc               528 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = false;
nfc               534 drivers/mtd/nand/raw/vf610_nfc.c 	return nand_check_erased_ecc_chunk(dat, nfc->chip.ecc.size, oob,
nfc               554 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               572 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_ecc_mode(nfc, nfc->ecc_mode);
nfc               573 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_run(nfc, 0, row, cmd1, cmd2, trfr_sz);
nfc               574 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_ecc_mode(nfc, ECC_BYPASS);
nfc               580 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_rd_from_sram(buf, nfc->regs + NFC_MAIN_AREA(0),
nfc               584 drivers/mtd/nand/raw/vf610_nfc.c 				       nfc->regs + NFC_MAIN_AREA(0) +
nfc               602 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               623 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_wr_to_sram(nfc->regs + NFC_MAIN_AREA(0), buf,
nfc               629 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_ecc_mode(nfc, nfc->ecc_mode);
nfc               630 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_run(nfc, 0, row, cmd1, cmd2, trfr_sz);
nfc               631 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_ecc_mode(nfc, ECC_BYPASS);
nfc               646 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               649 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = true;
nfc               651 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = false;
nfc               659 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               663 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = true;
nfc               668 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = false;
nfc               678 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               681 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = true;
nfc               683 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = false;
nfc               691 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               694 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = true;
nfc               697 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->data_access = false;
nfc               711 drivers/mtd/nand/raw/vf610_nfc.c static void vf610_nfc_preinit_controller(struct vf610_nfc *nfc)
nfc               713 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_16BIT);
nfc               714 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_ADDR_AUTO_INCR_BIT);
nfc               715 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_BUFNO_AUTO_INCR_BIT);
nfc               716 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_BOOT_MODE_BIT);
nfc               717 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_DMA_REQ_BIT);
nfc               718 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set(nfc, NFC_FLASH_CONFIG, CONFIG_FAST_FLASH_BIT);
nfc               719 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_ecc_mode(nfc, ECC_BYPASS);
nfc               722 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_set_field(nfc, NFC_FLASH_CONFIG, CONFIG_PAGE_CNT_MASK,
nfc               726 drivers/mtd/nand/raw/vf610_nfc.c static void vf610_nfc_init_controller(struct vf610_nfc *nfc)
nfc               728 drivers/mtd/nand/raw/vf610_nfc.c 	if (nfc->chip.options & NAND_BUSWIDTH_16)
nfc               729 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_set(nfc, NFC_FLASH_CONFIG, CONFIG_16BIT);
nfc               731 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_clear(nfc, NFC_FLASH_CONFIG, CONFIG_16BIT);
nfc               733 drivers/mtd/nand/raw/vf610_nfc.c 	if (nfc->chip.ecc.mode == NAND_ECC_HW) {
nfc               735 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_set_field(nfc, NFC_FLASH_CONFIG,
nfc               741 drivers/mtd/nand/raw/vf610_nfc.c 		vf610_nfc_set(nfc, NFC_FLASH_CONFIG, CONFIG_ECC_SRAM_REQ_BIT);
nfc               748 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = chip_to_nfc(chip);
nfc               750 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_init_controller(nfc);
nfc               758 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "Unsupported flash page size\n");
nfc               766 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "Unsupported flash with hwecc\n");
nfc               771 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "Step size needs to be page size\n");
nfc               782 drivers/mtd/nand/raw/vf610_nfc.c 		nfc->ecc_mode = ECC_60_BYTE;
nfc               785 drivers/mtd/nand/raw/vf610_nfc.c 		nfc->ecc_mode = ECC_45_BYTE;
nfc               788 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "Unsupported ECC strength\n");
nfc               812 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc;
nfc               821 drivers/mtd/nand/raw/vf610_nfc.c 	nfc = devm_kzalloc(&pdev->dev, sizeof(*nfc), GFP_KERNEL);
nfc               822 drivers/mtd/nand/raw/vf610_nfc.c 	if (!nfc)
nfc               825 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->dev = &pdev->dev;
nfc               826 drivers/mtd/nand/raw/vf610_nfc.c 	chip = &nfc->chip;
nfc               830 drivers/mtd/nand/raw/vf610_nfc.c 	mtd->dev.parent = nfc->dev;
nfc               838 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->regs = devm_ioremap_resource(nfc->dev, res);
nfc               839 drivers/mtd/nand/raw/vf610_nfc.c 	if (IS_ERR(nfc->regs))
nfc               840 drivers/mtd/nand/raw/vf610_nfc.c 		return PTR_ERR(nfc->regs);
nfc               842 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->clk = devm_clk_get(&pdev->dev, NULL);
nfc               843 drivers/mtd/nand/raw/vf610_nfc.c 	if (IS_ERR(nfc->clk))
nfc               844 drivers/mtd/nand/raw/vf610_nfc.c 		return PTR_ERR(nfc->clk);
nfc               846 drivers/mtd/nand/raw/vf610_nfc.c 	err = clk_prepare_enable(nfc->clk);
nfc               848 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "Unable to enable clock!\n");
nfc               856 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->variant = (enum vf610_nfc_variant)of_id->data;
nfc               858 drivers/mtd/nand/raw/vf610_nfc.c 	for_each_available_child_of_node(nfc->dev->of_node, child) {
nfc               862 drivers/mtd/nand/raw/vf610_nfc.c 				dev_err(nfc->dev,
nfc               874 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "NAND chip sub-node missing!\n");
nfc               881 drivers/mtd/nand/raw/vf610_nfc.c 	init_completion(&nfc->cmd_done);
nfc               883 drivers/mtd/nand/raw/vf610_nfc.c 	err = devm_request_irq(nfc->dev, irq, vf610_nfc_irq, 0, DRV_NAME, nfc);
nfc               885 drivers/mtd/nand/raw/vf610_nfc.c 		dev_err(nfc->dev, "Error requesting IRQ!\n");
nfc               889 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_preinit_controller(nfc);
nfc               891 drivers/mtd/nand/raw/vf610_nfc.c 	nand_controller_init(&nfc->base);
nfc               892 drivers/mtd/nand/raw/vf610_nfc.c 	nfc->base.ops = &vf610_nfc_controller_ops;
nfc               893 drivers/mtd/nand/raw/vf610_nfc.c 	chip->controller = &nfc->base;
nfc               900 drivers/mtd/nand/raw/vf610_nfc.c 	platform_set_drvdata(pdev, nfc);
nfc               911 drivers/mtd/nand/raw/vf610_nfc.c 	clk_disable_unprepare(nfc->clk);
nfc               917 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = platform_get_drvdata(pdev);
nfc               919 drivers/mtd/nand/raw/vf610_nfc.c 	nand_release(&nfc->chip);
nfc               920 drivers/mtd/nand/raw/vf610_nfc.c 	clk_disable_unprepare(nfc->clk);
nfc               927 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = dev_get_drvdata(dev);
nfc               929 drivers/mtd/nand/raw/vf610_nfc.c 	clk_disable_unprepare(nfc->clk);
nfc               935 drivers/mtd/nand/raw/vf610_nfc.c 	struct vf610_nfc *nfc = dev_get_drvdata(dev);
nfc               938 drivers/mtd/nand/raw/vf610_nfc.c 	err = clk_prepare_enable(nfc->clk);
nfc               942 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_preinit_controller(nfc);
nfc               943 drivers/mtd/nand/raw/vf610_nfc.c 	vf610_nfc_init_controller(nfc);
nfc               206 drivers/net/dsa/bcm_sf2.h 		      struct ethtool_rxnfc *nfc, u32 *rule_locs);
nfc               208 drivers/net/dsa/bcm_sf2.h 		      struct ethtool_rxnfc *nfc);
nfc              1009 drivers/net/dsa/bcm_sf2_cfp.c 				struct ethtool_rxnfc *nfc)
nfc              1013 drivers/net/dsa/bcm_sf2_cfp.c 	rule = bcm_sf2_cfp_rule_find(priv, port, nfc->fs.location);
nfc              1017 drivers/net/dsa/bcm_sf2_cfp.c 	memcpy(&nfc->fs, &rule->fs, sizeof(rule->fs));
nfc              1019 drivers/net/dsa/bcm_sf2_cfp.c 	bcm_sf2_invert_masks(&nfc->fs);
nfc              1022 drivers/net/dsa/bcm_sf2_cfp.c 	nfc->data = bcm_sf2_cfp_rule_size(priv);
nfc              1029 drivers/net/dsa/bcm_sf2_cfp.c 				    int port, struct ethtool_rxnfc *nfc,
nfc              1040 drivers/net/dsa/bcm_sf2_cfp.c 	nfc->data = bcm_sf2_cfp_rule_size(priv);
nfc              1041 drivers/net/dsa/bcm_sf2_cfp.c 	nfc->rule_cnt = rules_cnt;
nfc              1047 drivers/net/dsa/bcm_sf2_cfp.c 		      struct ethtool_rxnfc *nfc, u32 *rule_locs)
nfc              1055 drivers/net/dsa/bcm_sf2_cfp.c 	switch (nfc->cmd) {
nfc              1058 drivers/net/dsa/bcm_sf2_cfp.c 		nfc->rule_cnt = bitmap_weight(priv->cfp.unique,
nfc              1061 drivers/net/dsa/bcm_sf2_cfp.c 		nfc->data |= RX_CLS_LOC_SPECIAL;
nfc              1064 drivers/net/dsa/bcm_sf2_cfp.c 		ret = bcm_sf2_cfp_rule_get(priv, port, nfc);
nfc              1067 drivers/net/dsa/bcm_sf2_cfp.c 		ret = bcm_sf2_cfp_rule_get_all(priv, port, nfc, rule_locs);
nfc              1081 drivers/net/dsa/bcm_sf2_cfp.c 		ret = p->ethtool_ops->get_rxnfc(p, nfc, rule_locs);
nfc              1090 drivers/net/dsa/bcm_sf2_cfp.c 		      struct ethtool_rxnfc *nfc)
nfc              1098 drivers/net/dsa/bcm_sf2_cfp.c 	switch (nfc->cmd) {
nfc              1100 drivers/net/dsa/bcm_sf2_cfp.c 		ret = bcm_sf2_cfp_rule_set(ds, port, &nfc->fs);
nfc              1104 drivers/net/dsa/bcm_sf2_cfp.c 		ret = bcm_sf2_cfp_rule_del(priv, port, nfc->fs.location);
nfc              1120 drivers/net/dsa/bcm_sf2_cfp.c 		ret = p->ethtool_ops->set_rxnfc(p, nfc);
nfc              1123 drivers/net/dsa/bcm_sf2_cfp.c 			bcm_sf2_cfp_rule_del(priv, port, nfc->fs.location);
nfc              2103 drivers/net/ethernet/broadcom/bcmsysport.c 				struct ethtool_rxnfc *nfc)
nfc              2108 drivers/net/ethernet/broadcom/bcmsysport.c 	index = bcm_sysport_rule_find(priv, nfc->fs.location);
nfc              2112 drivers/net/ethernet/broadcom/bcmsysport.c 	nfc->fs.ring_cookie = RX_CLS_FLOW_WAKE;
nfc              2118 drivers/net/ethernet/broadcom/bcmsysport.c 				struct ethtool_rxnfc *nfc)
nfc              2126 drivers/net/ethernet/broadcom/bcmsysport.c 	if (nfc->fs.location > RXCHK_BRCM_TAG_CID_MASK)
nfc              2130 drivers/net/ethernet/broadcom/bcmsysport.c 	if (nfc->fs.ring_cookie != RX_CLS_FLOW_WAKE)
nfc              2147 drivers/net/ethernet/broadcom/bcmsysport.c 	reg |= nfc->fs.location << RXCHK_BRCM_TAG_CID_SHIFT;
nfc              2151 drivers/net/ethernet/broadcom/bcmsysport.c 	priv->filters_loc[index] = nfc->fs.location;
nfc              2177 drivers/net/ethernet/broadcom/bcmsysport.c 				 struct ethtool_rxnfc *nfc, u32 *rule_locs)
nfc              2182 drivers/net/ethernet/broadcom/bcmsysport.c 	switch (nfc->cmd) {
nfc              2184 drivers/net/ethernet/broadcom/bcmsysport.c 		ret = bcm_sysport_rule_get(priv, nfc);
nfc              2194 drivers/net/ethernet/broadcom/bcmsysport.c 				 struct ethtool_rxnfc *nfc)
nfc              2199 drivers/net/ethernet/broadcom/bcmsysport.c 	switch (nfc->cmd) {
nfc              2201 drivers/net/ethernet/broadcom/bcmsysport.c 		ret = bcm_sysport_rule_set(priv, nfc);
nfc              2204 drivers/net/ethernet/broadcom/bcmsysport.c 		ret = bcm_sysport_rule_del(priv, nfc->fs.location);
nfc               448 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c 			      struct ethtool_rxnfc *nfc)
nfc               453 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c 	if (nfc->data &
nfc               457 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c 	switch (nfc->flow_type) {
nfc               472 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c 		dpaa_set_hash(dev, !!nfc->data);
nfc              4226 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c static u8 hclge_get_rss_hash_bits(struct ethtool_rxnfc *nfc)
nfc              4228 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	u8 hash_sets = nfc->data & RXH_L4_B_0_1 ? HCLGE_S_PORT_BIT : 0;
nfc              4230 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	if (nfc->data & RXH_L4_B_2_3)
nfc              4235 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	if (nfc->data & RXH_IP_SRC)
nfc              4240 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	if (nfc->data & RXH_IP_DST)
nfc              4245 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	if (nfc->flow_type == SCTP_V4_FLOW || nfc->flow_type == SCTP_V6_FLOW)
nfc              4252 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 			       struct ethtool_rxnfc *nfc)
nfc              4261 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc              4277 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	tuple_sets = hclge_get_rss_hash_bits(nfc);
nfc              4278 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	switch (nfc->flow_type) {
nfc              4295 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 		if ((nfc->data & RXH_L4_B_0_1) ||
nfc              4296 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 		    (nfc->data & RXH_L4_B_2_3))
nfc              4331 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 			       struct ethtool_rxnfc *nfc)
nfc              4336 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	nfc->data = 0;
nfc              4338 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 	switch (nfc->flow_type) {
nfc              4369 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 		nfc->data |= RXH_L4_B_2_3;
nfc              4371 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 		nfc->data |= RXH_L4_B_0_1;
nfc              4373 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 		nfc->data |= RXH_IP_DST;
nfc              4375 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 		nfc->data |= RXH_IP_SRC;
nfc               797 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c static u8 hclgevf_get_rss_hash_bits(struct ethtool_rxnfc *nfc)
nfc               799 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	u8 hash_sets = nfc->data & RXH_L4_B_0_1 ? HCLGEVF_S_PORT_BIT : 0;
nfc               801 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	if (nfc->data & RXH_L4_B_2_3)
nfc               806 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	if (nfc->data & RXH_IP_SRC)
nfc               811 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	if (nfc->data & RXH_IP_DST)
nfc               816 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	if (nfc->flow_type == SCTP_V4_FLOW || nfc->flow_type == SCTP_V6_FLOW)
nfc               823 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 				 struct ethtool_rxnfc *nfc)
nfc               835 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	if (nfc->data &
nfc               851 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	tuple_sets = hclgevf_get_rss_hash_bits(nfc);
nfc               852 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	switch (nfc->flow_type) {
nfc               869 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 		if ((nfc->data & RXH_L4_B_0_1) ||
nfc               870 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 		    (nfc->data & RXH_L4_B_2_3))
nfc               904 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 				 struct ethtool_rxnfc *nfc)
nfc               913 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	nfc->data = 0;
nfc               915 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 	switch (nfc->flow_type) {
nfc               946 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 		nfc->data |= RXH_L4_B_2_3;
nfc               948 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 		nfc->data |= RXH_L4_B_0_1;
nfc               950 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 		nfc->data |= RXH_IP_DST;
nfc               952 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c 		nfc->data |= RXH_IP_SRC;
nfc               750 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 				  struct ethtool_rxnfc *nfc)
nfc               760 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc               764 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 	switch (nfc->flow_type) {
nfc               767 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc               768 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc               769 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    !(nfc->data & RXH_L4_B_0_1) ||
nfc               770 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    !(nfc->data & RXH_L4_B_2_3))
nfc               774 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc               775 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc               777 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc               791 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc               792 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc               794 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc               815 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc               816 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc               817 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    (nfc->data & RXH_L4_B_0_1) ||
nfc               818 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 		    (nfc->data & RXH_L4_B_2_3))
nfc              3350 drivers/net/ethernet/intel/i40e/i40e_ethtool.c static u64 i40e_get_rss_hash_bits(struct ethtool_rxnfc *nfc, u64 i_setc)
nfc              3355 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	if (nfc->data & RXH_L4_B_0_1)
nfc              3359 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	if (nfc->data & RXH_L4_B_2_3)
nfc              3364 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	if (nfc->flow_type == TCP_V6_FLOW || nfc->flow_type == UDP_V6_FLOW) {
nfc              3367 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	} else if (nfc->flow_type == TCP_V4_FLOW ||
nfc              3368 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 		  nfc->flow_type == UDP_V4_FLOW) {
nfc              3376 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	if (nfc->data & RXH_IP_SRC)
nfc              3380 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	if (nfc->data & RXH_IP_DST)
nfc              3395 drivers/net/ethernet/intel/i40e/i40e_ethtool.c static int i40e_set_rss_hash_opt(struct i40e_pf *pf, struct ethtool_rxnfc *nfc)
nfc              3412 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc              3416 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 	switch (nfc->flow_type) {
nfc              3454 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 		if ((nfc->data & RXH_L4_B_0_1) ||
nfc              3455 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 		    (nfc->data & RXH_L4_B_2_3))
nfc              3463 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 		if ((nfc->data & RXH_L4_B_0_1) ||
nfc              3464 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 		    (nfc->data & RXH_L4_B_2_3))
nfc              3485 drivers/net/ethernet/intel/i40e/i40e_ethtool.c 		i_set = i40e_get_rss_hash_bits(nfc, i_setc);
nfc              2600 drivers/net/ethernet/intel/igb/igb_ethtool.c 				struct ethtool_rxnfc *nfc)
nfc              2607 drivers/net/ethernet/intel/igb/igb_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc              2611 drivers/net/ethernet/intel/igb/igb_ethtool.c 	switch (nfc->flow_type) {
nfc              2614 drivers/net/ethernet/intel/igb/igb_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2615 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc              2616 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    !(nfc->data & RXH_L4_B_0_1) ||
nfc              2617 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    !(nfc->data & RXH_L4_B_2_3))
nfc              2621 drivers/net/ethernet/intel/igb/igb_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2622 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc              2624 drivers/net/ethernet/intel/igb/igb_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              2636 drivers/net/ethernet/intel/igb/igb_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2637 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc              2639 drivers/net/ethernet/intel/igb/igb_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              2658 drivers/net/ethernet/intel/igb/igb_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2659 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc              2660 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    (nfc->data & RXH_L4_B_0_1) ||
nfc              2661 drivers/net/ethernet/intel/igb/igb_ethtool.c 		    (nfc->data & RXH_L4_B_2_3))
nfc              1035 drivers/net/ethernet/intel/igc/igc_ethtool.c 				struct ethtool_rxnfc *nfc)
nfc              1042 drivers/net/ethernet/intel/igc/igc_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc              1046 drivers/net/ethernet/intel/igc/igc_ethtool.c 	switch (nfc->flow_type) {
nfc              1049 drivers/net/ethernet/intel/igc/igc_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              1050 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc              1051 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    !(nfc->data & RXH_L4_B_0_1) ||
nfc              1052 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    !(nfc->data & RXH_L4_B_2_3))
nfc              1056 drivers/net/ethernet/intel/igc/igc_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              1057 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc              1059 drivers/net/ethernet/intel/igc/igc_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              1071 drivers/net/ethernet/intel/igc/igc_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              1072 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc              1074 drivers/net/ethernet/intel/igc/igc_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              1093 drivers/net/ethernet/intel/igc/igc_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              1094 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc              1095 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    (nfc->data & RXH_L4_B_0_1) ||
nfc              1096 drivers/net/ethernet/intel/igc/igc_ethtool.c 		    (nfc->data & RXH_L4_B_2_3))
nfc              2821 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 				  struct ethtool_rxnfc *nfc)
nfc              2829 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc              2833 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 	switch (nfc->flow_type) {
nfc              2836 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2837 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc              2838 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    !(nfc->data & RXH_L4_B_0_1) ||
nfc              2839 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    !(nfc->data & RXH_L4_B_2_3))
nfc              2843 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2844 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc              2846 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              2858 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2859 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    !(nfc->data & RXH_IP_DST))
nfc              2861 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              2880 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		if (!(nfc->data & RXH_IP_SRC) ||
nfc              2881 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    !(nfc->data & RXH_IP_DST) ||
nfc              2882 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    (nfc->data & RXH_L4_B_0_1) ||
nfc              2883 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 		    (nfc->data & RXH_L4_B_2_3))
nfc               814 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 				  struct ethtool_rxnfc *nfc)
nfc               821 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	tt = flow_type_to_traffic_type(nfc->flow_type);
nfc               829 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	if (nfc->flow_type != TCP_V4_FLOW &&
nfc               830 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	    nfc->flow_type != TCP_V6_FLOW &&
nfc               831 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	    nfc->flow_type != UDP_V4_FLOW &&
nfc               832 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	    nfc->flow_type != UDP_V6_FLOW)
nfc               835 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc               839 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	if (nfc->data & RXH_IP_SRC)
nfc               841 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	if (nfc->data & RXH_IP_DST)
nfc               843 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	if (nfc->data & RXH_L4_B_0_1)
nfc               845 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	if (nfc->data & RXH_L4_B_2_3)
nfc               867 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 				  struct ethtool_rxnfc *nfc)
nfc               872 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	tt = flow_type_to_traffic_type(nfc->flow_type);
nfc               877 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 	nfc->data = 0;
nfc               880 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 		nfc->data |= RXH_IP_SRC;
nfc               882 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 		nfc->data |= RXH_IP_DST;
nfc               884 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 		nfc->data |= RXH_L4_B_0_1;
nfc               886 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c 		nfc->data |= RXH_L4_B_2_3;
nfc               836 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c 				    struct ethtool_rxnfc *nfc)
nfc               846 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c 	if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
nfc               851 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c 	if (!(nfc->data & RXH_IP_SRC) ||
nfc               852 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c 	    !(nfc->data & RXH_IP_DST))
nfc               855 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c 	nfp_rss_flag = ethtool_flow_to_nfp_flag(nfc->flow_type);
nfc               859 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c 	switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
nfc              7058 drivers/net/ethernet/sun/niu.c static int niu_get_hash_opts(struct niu *np, struct ethtool_rxnfc *nfc)
nfc              7062 drivers/net/ethernet/sun/niu.c 	nfc->data = 0;
nfc              7064 drivers/net/ethernet/sun/niu.c 	if (!niu_ethflow_to_class(nfc->flow_type, &class))
nfc              7069 drivers/net/ethernet/sun/niu.c 		nfc->data = RXH_DISCARD;
nfc              7071 drivers/net/ethernet/sun/niu.c 		nfc->data = niu_flowkey_to_ethflow(np->parent->flow_key[class -
nfc              7153 drivers/net/ethernet/sun/niu.c 				      struct ethtool_rxnfc *nfc)
nfc              7157 drivers/net/ethernet/sun/niu.c 	struct ethtool_rx_flow_spec *fsp = &nfc->fs;
nfc              7162 drivers/net/ethernet/sun/niu.c 	idx = tcam_get_index(np, (u16)nfc->fs.location);
nfc              7167 drivers/net/ethernet/sun/niu.c 			    parent->index, (u16)nfc->fs.location, idx);
nfc              7226 drivers/net/ethernet/sun/niu.c 	nfc->data = tcam_get_size(np);
nfc              7232 drivers/net/ethernet/sun/niu.c 				    struct ethtool_rxnfc *nfc,
nfc              7242 drivers/net/ethernet/sun/niu.c 	nfc->data = tcam_get_size(np);
nfc              7245 drivers/net/ethernet/sun/niu.c 	for (cnt = 0, i = 0; i < nfc->data; i++) {
nfc              7250 drivers/net/ethernet/sun/niu.c 		if (cnt == nfc->rule_cnt) {
nfc              7259 drivers/net/ethernet/sun/niu.c 	nfc->rule_cnt = cnt;
nfc              7294 drivers/net/ethernet/sun/niu.c static int niu_set_hash_opts(struct niu *np, struct ethtool_rxnfc *nfc)
nfc              7300 drivers/net/ethernet/sun/niu.c 	if (!niu_ethflow_to_class(nfc->flow_type, &class))
nfc              7307 drivers/net/ethernet/sun/niu.c 	if (nfc->data & RXH_DISCARD) {
nfc              7332 drivers/net/ethernet/sun/niu.c 	if (!niu_ethflow_to_flowkey(nfc->data, &flow_key))
nfc              7412 drivers/net/ethernet/sun/niu.c 				      struct ethtool_rxnfc *nfc)
nfc              7416 drivers/net/ethernet/sun/niu.c 	struct ethtool_rx_flow_spec *fsp = &nfc->fs;
nfc              7426 drivers/net/ethernet/sun/niu.c 	idx = nfc->fs.location;
nfc               957 include/linux/mtd/rawnand.h static inline void nand_controller_init(struct nand_controller *nfc)
nfc               959 include/linux/mtd/rawnand.h 	mutex_init(&nfc->lock);
nfc               506 include/net/dsa.h 			     struct ethtool_rxnfc *nfc, u32 *rule_locs);
nfc               508 include/net/dsa.h 			     struct ethtool_rxnfc *nfc);
nfc              1075 net/dsa/slave.c 			       struct ethtool_rxnfc *nfc, u32 *rule_locs)
nfc              1083 net/dsa/slave.c 	return ds->ops->get_rxnfc(ds, dp->index, nfc, rule_locs);
nfc              1087 net/dsa/slave.c 			       struct ethtool_rxnfc *nfc)
nfc              1095 net/dsa/slave.c 	return ds->ops->set_rxnfc(ds, dp->index, nfc);