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);