Skip to content

Commit 319b4ed

Browse files
committed
Revert "HACK (do not mainline): mtd: nand: atmel: Save/restore SMC regs"
This reverts commit 700fa87.
1 parent 700fa87 commit 319b4ed

3 files changed

Lines changed: 16 additions & 58 deletions

File tree

drivers/mtd/nand/atmel/nand-controller.c

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2525,35 +2525,11 @@ static int atmel_nand_controller_remove(struct platform_device *pdev)
25252525
return nc->caps->ops->remove(nc);
25262526
}
25272527

2528-
static __maybe_unused int atmel_nand_controller_suspend(struct device *dev)
2529-
{
2530-
struct atmel_nand_controller *nc = dev_get_drvdata(dev);
2531-
struct atmel_pmecc *pmecc = nc->pmecc;
2532-
2533-
if (pmecc && pmecc->regs.timing) {
2534-
pmecc->suspend.setup = readl(pmecc->regs.timing);
2535-
pmecc->suspend.pulse = readl(pmecc->regs.timing + 0x4);
2536-
pmecc->suspend.cycle = readl(pmecc->regs.timing + 0x8);
2537-
pmecc->suspend.timings = readl(pmecc->regs.timing + 0xc);
2538-
pmecc->suspend.mode = readl(pmecc->regs.timing + 0x10);
2539-
}
2540-
2541-
return 0;
2542-
}
25432528
static __maybe_unused int atmel_nand_controller_resume(struct device *dev)
25442529
{
25452530
struct atmel_nand_controller *nc = dev_get_drvdata(dev);
2546-
struct atmel_pmecc *pmecc = nc->pmecc;
25472531
struct atmel_nand *nand;
25482532

2549-
if (pmecc && pmecc->regs.timing) {
2550-
writel(pmecc->suspend.setup, pmecc->regs.timing);
2551-
writel(pmecc->suspend.pulse, pmecc->regs.timing + 0x4);
2552-
writel(pmecc->suspend.cycle, pmecc->regs.timing + 0x8);
2553-
writel(pmecc->suspend.timings, pmecc->regs.timing + 0xc);
2554-
writel(pmecc->suspend.mode, pmecc->regs.timing + 0x10);
2555-
}
2556-
25572533
list_for_each_entry(nand, &nc->chips, node) {
25582534
int i;
25592535

@@ -2564,8 +2540,7 @@ static __maybe_unused int atmel_nand_controller_resume(struct device *dev)
25642540
return 0;
25652541
}
25662542

2567-
static SIMPLE_DEV_PM_OPS(atmel_nand_controller_pm_ops,
2568-
atmel_nand_controller_suspend,
2543+
static SIMPLE_DEV_PM_OPS(atmel_nand_controller_pm_ops, NULL,
25692544
atmel_nand_controller_resume);
25702545

25712546
static struct platform_driver atmel_nand_controller_driver = {

drivers/mtd/nand/atmel/pmecc.c

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,18 @@ struct atmel_pmecc_caps {
148148
bool correct_erased_chunks;
149149
};
150150

151+
struct atmel_pmecc {
152+
struct device *dev;
153+
const struct atmel_pmecc_caps *caps;
154+
155+
struct {
156+
void __iomem *base;
157+
void __iomem *errloc;
158+
} regs;
159+
160+
struct mutex lock;
161+
};
162+
151163
struct atmel_pmecc_user_conf_cache {
152164
u32 cfg;
153165
u32 sarea;
@@ -817,8 +829,7 @@ EXPORT_SYMBOL_GPL(atmel_pmecc_wait_rdy);
817829

818830
static struct atmel_pmecc *atmel_pmecc_create(struct platform_device *pdev,
819831
const struct atmel_pmecc_caps *caps,
820-
int pmecc_res_idx, int errloc_res_idx,
821-
int timing_res_idx)
832+
int pmecc_res_idx, int errloc_res_idx)
822833
{
823834
struct device *dev = &pdev->dev;
824835
struct atmel_pmecc *pmecc;
@@ -842,11 +853,6 @@ static struct atmel_pmecc *atmel_pmecc_create(struct platform_device *pdev,
842853
if (IS_ERR(pmecc->regs.errloc))
843854
return ERR_CAST(pmecc->regs.errloc);
844855

845-
res = platform_get_resource(pdev, IORESOURCE_MEM, timing_res_idx);
846-
pmecc->regs.timing = devm_ioremap_resource(dev, res);
847-
if (IS_ERR(pmecc->regs.timing))
848-
return ERR_CAST(pmecc->regs.timing);
849-
850856
/* Disable all interrupts before registering the PMECC handler. */
851857
writel(0xffffffff, pmecc->regs.base + ATMEL_PMECC_IDR);
852858

@@ -954,7 +960,7 @@ struct atmel_pmecc *devm_atmel_pmecc_get(struct device *userdev)
954960
if (match && match->data)
955961
caps = match->data;
956962

957-
pmecc = atmel_pmecc_create(pdev, caps, 1, 2, 4);
963+
pmecc = atmel_pmecc_create(pdev, caps, 1, 2);
958964
}
959965

960966
return pmecc;
@@ -981,7 +987,7 @@ static int atmel_pmecc_probe(struct platform_device *pdev)
981987
return -EINVAL;
982988
}
983989

984-
pmecc = atmel_pmecc_create(pdev, caps, 0, 1, 2);
990+
pmecc = atmel_pmecc_create(pdev, caps, 0, 1);
985991
if (IS_ERR(pmecc))
986992
return PTR_ERR(pmecc);
987993

drivers/mtd/nand/atmel/pmecc.h

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -54,29 +54,6 @@ struct atmel_pmecc_user_req {
5454
} ecc;
5555
};
5656

57-
struct atmel_pmecc_suspend_ctx {
58-
u32 setup;
59-
u32 pulse;
60-
u32 cycle;
61-
u32 timings;
62-
u32 mode;
63-
};
64-
65-
struct atmel_pmecc {
66-
struct device *dev;
67-
const struct atmel_pmecc_caps *caps;
68-
69-
struct {
70-
void __iomem *base;
71-
void __iomem *errloc;
72-
void __iomem *timing;
73-
} regs;
74-
75-
struct mutex lock;
76-
77-
struct atmel_pmecc_suspend_ctx suspend;
78-
};
79-
8057
struct atmel_pmecc *devm_atmel_pmecc_get(struct device *dev);
8158

8259
struct atmel_pmecc_user *

0 commit comments

Comments
 (0)