pmecc             165 drivers/mtd/nand/raw/atmel/nand-controller.c 	struct atmel_pmecc_user *pmecc;
pmecc             222 drivers/mtd/nand/raw/atmel/nand-controller.c 	struct atmel_pmecc *pmecc;
pmecc             728 drivers/mtd/nand/raw/atmel/nand-controller.c 	ret = atmel_pmecc_enable(nand->pmecc, op);
pmecc             741 drivers/mtd/nand/raw/atmel/nand-controller.c 		atmel_pmecc_disable(nand->pmecc);
pmecc             758 drivers/mtd/nand/raw/atmel/nand-controller.c 	ret = atmel_pmecc_wait_rdy(nand->pmecc);
pmecc             770 drivers/mtd/nand/raw/atmel/nand-controller.c 		atmel_pmecc_get_generated_eccbytes(nand->pmecc, i,
pmecc             793 drivers/mtd/nand/raw/atmel/nand-controller.c 	ret = atmel_pmecc_wait_rdy(nand->pmecc);
pmecc             806 drivers/mtd/nand/raw/atmel/nand-controller.c 		ret = atmel_pmecc_correct_sector(nand->pmecc, i, databuf,
pmecc             808 drivers/mtd/nand/raw/atmel/nand-controller.c 		if (ret < 0 && !atmel_pmecc_correct_erased_chunks(nand->pmecc))
pmecc             845 drivers/mtd/nand/raw/atmel/nand-controller.c 		atmel_pmecc_disable(nand->pmecc);
pmecc            1053 drivers/mtd/nand/raw/atmel/nand-controller.c 	if (!nc->pmecc) {
pmecc            1098 drivers/mtd/nand/raw/atmel/nand-controller.c 	nand->pmecc = atmel_pmecc_create_user(nc->pmecc, &req);
pmecc            1099 drivers/mtd/nand/raw/atmel/nand-controller.c 	if (IS_ERR(nand->pmecc))
pmecc            1100 drivers/mtd/nand/raw/atmel/nand-controller.c 		return PTR_ERR(nand->pmecc);
pmecc            1500 drivers/mtd/nand/raw/atmel/nand-controller.c 	if (nc->pmecc)
pmecc            1978 drivers/mtd/nand/raw/atmel/nand-controller.c 	nc->pmecc = devm_atmel_pmecc_get(dev);
pmecc            1979 drivers/mtd/nand/raw/atmel/nand-controller.c 	if (IS_ERR(nc->pmecc)) {
pmecc            1980 drivers/mtd/nand/raw/atmel/nand-controller.c 		ret = PTR_ERR(nc->pmecc);
pmecc            2566 drivers/mtd/nand/raw/atmel/nand-controller.c 	if (nc->pmecc)
pmecc            2567 drivers/mtd/nand/raw/atmel/nand-controller.c 		atmel_pmecc_reset(nc->pmecc);
pmecc             169 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc;
pmecc             277 drivers/mtd/nand/raw/atmel/pmecc.c static int atmel_pmecc_prepare_user_req(struct atmel_pmecc *pmecc,
pmecc             309 drivers/mtd/nand/raw/atmel/pmecc.c 	for (i = 0; i < pmecc->caps->nstrengths; i++) {
pmecc             310 drivers/mtd/nand/raw/atmel/pmecc.c 		int nbytes, strength = pmecc->caps->strengths[i];
pmecc             343 drivers/mtd/nand/raw/atmel/pmecc.c atmel_pmecc_create_user(struct atmel_pmecc *pmecc,
pmecc             350 drivers/mtd/nand/raw/atmel/pmecc.c 	ret = atmel_pmecc_prepare_user_req(pmecc, req);
pmecc             369 drivers/mtd/nand/raw/atmel/pmecc.c 	user->pmecc = pmecc;
pmecc             392 drivers/mtd/nand/raw/atmel/pmecc.c 	for (strength = 0; strength < pmecc->caps->nstrengths; strength++) {
pmecc             393 drivers/mtd/nand/raw/atmel/pmecc.c 		if (pmecc->caps->strengths[strength] == req->ecc.strength)
pmecc             419 drivers/mtd/nand/raw/atmel/pmecc.c 	const int *strengths = user->pmecc->caps->strengths;
pmecc             437 drivers/mtd/nand/raw/atmel/pmecc.c 		value = readl_relaxed(user->pmecc->regs.base +
pmecc             645 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc = user->pmecc;
pmecc             652 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(PMERRLOC_DISABLE, pmecc->regs.errloc + ATMEL_PMERRLOC_ELDIS);
pmecc             656 drivers/mtd/nand/raw/atmel/pmecc.c 			       pmecc->regs.errloc + ATMEL_PMERRLOC_SIGMA(i));
pmecc             664 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(val, pmecc->regs.errloc + ATMEL_PMERRLOC_ELCFG);
pmecc             666 drivers/mtd/nand/raw/atmel/pmecc.c 	       pmecc->regs.errloc + ATMEL_PMERRLOC_ELEN);
pmecc             668 drivers/mtd/nand/raw/atmel/pmecc.c 	ret = readl_relaxed_poll_timeout(pmecc->regs.errloc +
pmecc             673 drivers/mtd/nand/raw/atmel/pmecc.c 		dev_err(pmecc->dev,
pmecc             693 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc = user->pmecc;
pmecc             715 drivers/mtd/nand/raw/atmel/pmecc.c 		errpos = readl_relaxed(pmecc->regs.errloc +
pmecc             716 drivers/mtd/nand/raw/atmel/pmecc.c 				ATMEL_PMERRLOC_EL(pmecc->caps->el_offset, i));
pmecc             729 drivers/mtd/nand/raw/atmel/pmecc.c 			dev_dbg(pmecc->dev,
pmecc             735 drivers/mtd/nand/raw/atmel/pmecc.c 		dev_dbg(pmecc->dev,
pmecc             748 drivers/mtd/nand/raw/atmel/pmecc.c 	return user->pmecc->caps->correct_erased_chunks;
pmecc             755 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc = user->pmecc;
pmecc             760 drivers/mtd/nand/raw/atmel/pmecc.c 		ptr[i] = readb_relaxed(pmecc->regs.base +
pmecc             765 drivers/mtd/nand/raw/atmel/pmecc.c void atmel_pmecc_reset(struct atmel_pmecc *pmecc)
pmecc             767 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(PMECC_CTRL_RST, pmecc->regs.base + ATMEL_PMECC_CTRL);
pmecc             768 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(PMECC_CTRL_DISABLE, pmecc->regs.base + ATMEL_PMECC_CTRL);
pmecc             774 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc = user->pmecc;
pmecc             778 drivers/mtd/nand/raw/atmel/pmecc.c 		dev_err(pmecc->dev, "Bad ECC operation!");
pmecc             782 drivers/mtd/nand/raw/atmel/pmecc.c 	mutex_lock(&user->pmecc->lock);
pmecc             790 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(cfg, pmecc->regs.base + ATMEL_PMECC_CFG);
pmecc             791 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(user->cache.sarea, pmecc->regs.base + ATMEL_PMECC_SAREA);
pmecc             792 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(user->cache.saddr, pmecc->regs.base + ATMEL_PMECC_SADDR);
pmecc             793 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(user->cache.eaddr, pmecc->regs.base + ATMEL_PMECC_EADDR);
pmecc             795 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(PMECC_CTRL_ENABLE, pmecc->regs.base + ATMEL_PMECC_CTRL);
pmecc             796 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(PMECC_CTRL_DATA, pmecc->regs.base + ATMEL_PMECC_CTRL);
pmecc             804 drivers/mtd/nand/raw/atmel/pmecc.c 	atmel_pmecc_reset(user->pmecc);
pmecc             805 drivers/mtd/nand/raw/atmel/pmecc.c 	mutex_unlock(&user->pmecc->lock);
pmecc             811 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc = user->pmecc;
pmecc             815 drivers/mtd/nand/raw/atmel/pmecc.c 	ret = readl_relaxed_poll_timeout(pmecc->regs.base +
pmecc             820 drivers/mtd/nand/raw/atmel/pmecc.c 		dev_err(pmecc->dev,
pmecc             825 drivers/mtd/nand/raw/atmel/pmecc.c 	user->isr = readl_relaxed(pmecc->regs.base + ATMEL_PMECC_ISR);
pmecc             836 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc;
pmecc             839 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc = devm_kzalloc(dev, sizeof(*pmecc), GFP_KERNEL);
pmecc             840 drivers/mtd/nand/raw/atmel/pmecc.c 	if (!pmecc)
pmecc             843 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc->caps = caps;
pmecc             844 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc->dev = dev;
pmecc             845 drivers/mtd/nand/raw/atmel/pmecc.c 	mutex_init(&pmecc->lock);
pmecc             848 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc->regs.base = devm_ioremap_resource(dev, res);
pmecc             849 drivers/mtd/nand/raw/atmel/pmecc.c 	if (IS_ERR(pmecc->regs.base))
pmecc             850 drivers/mtd/nand/raw/atmel/pmecc.c 		return ERR_CAST(pmecc->regs.base);
pmecc             853 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc->regs.errloc = devm_ioremap_resource(dev, res);
pmecc             854 drivers/mtd/nand/raw/atmel/pmecc.c 	if (IS_ERR(pmecc->regs.errloc))
pmecc             855 drivers/mtd/nand/raw/atmel/pmecc.c 		return ERR_CAST(pmecc->regs.errloc);
pmecc             858 drivers/mtd/nand/raw/atmel/pmecc.c 	writel(0xffffffff, pmecc->regs.base + ATMEL_PMECC_IDR);
pmecc             859 drivers/mtd/nand/raw/atmel/pmecc.c 	atmel_pmecc_reset(pmecc);
pmecc             861 drivers/mtd/nand/raw/atmel/pmecc.c 	return pmecc;
pmecc             866 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc **pmecc = res;
pmecc             868 drivers/mtd/nand/raw/atmel/pmecc.c 	put_device((*pmecc)->dev);
pmecc             875 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc, **ptr;
pmecc             881 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc = platform_get_drvdata(pdev);
pmecc             882 drivers/mtd/nand/raw/atmel/pmecc.c 	if (!pmecc) {
pmecc             893 drivers/mtd/nand/raw/atmel/pmecc.c 	*ptr = pmecc;
pmecc             897 drivers/mtd/nand/raw/atmel/pmecc.c 	return pmecc;
pmecc             934 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc;
pmecc             945 drivers/mtd/nand/raw/atmel/pmecc.c 		pmecc = atmel_pmecc_get_by_node(userdev, np);
pmecc             970 drivers/mtd/nand/raw/atmel/pmecc.c 		pmecc = atmel_pmecc_create(pdev, caps, 1, 2);
pmecc             973 drivers/mtd/nand/raw/atmel/pmecc.c 	return pmecc;
pmecc             989 drivers/mtd/nand/raw/atmel/pmecc.c 	struct atmel_pmecc *pmecc;
pmecc             997 drivers/mtd/nand/raw/atmel/pmecc.c 	pmecc = atmel_pmecc_create(pdev, caps, 0, 1);
pmecc             998 drivers/mtd/nand/raw/atmel/pmecc.c 	if (IS_ERR(pmecc))
pmecc             999 drivers/mtd/nand/raw/atmel/pmecc.c 		return PTR_ERR(pmecc);
pmecc            1001 drivers/mtd/nand/raw/atmel/pmecc.c 	platform_set_drvdata(pdev, pmecc);
pmecc              56 drivers/mtd/nand/raw/atmel/pmecc.h atmel_pmecc_create_user(struct atmel_pmecc *pmecc,
pmecc              60 drivers/mtd/nand/raw/atmel/pmecc.h void atmel_pmecc_reset(struct atmel_pmecc *pmecc);