Skip to content

Commit

Permalink
mtd: OneNAND: Samsung SoCs use own chip_probe function
Browse files Browse the repository at this point in the history
Samsung SoCs use own chip_probe function.
Don't touch the memory configuration at probe time.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Kyungmin Park authored and David Woodhouse committed Aug 4, 2010
1 parent ad0d363 commit 7b0507e
Showing 1 changed file with 8 additions and 13 deletions.
21 changes: 8 additions & 13 deletions drivers/mtd/onenand/samsung.c
Original file line number Diff line number Diff line change
Expand Up @@ -630,6 +630,12 @@ static int s5pc110_read_bufferram(struct mtd_info *mtd, int area,
return 0;
}

static int s5pc110_chip_probe(struct mtd_info *mtd)
{
/* Now just return 0 */
return 0;
}

static int s3c_onenand_bbt_wait(struct mtd_info *mtd, int state)
{
unsigned int flags = INT_ACT | LOAD_CMP;
Expand Down Expand Up @@ -757,6 +763,7 @@ static void s3c_onenand_setup(struct mtd_info *mtd)
/* Use generic onenand functions */
onenand->cmd_map = s5pc1xx_cmd_map;
this->read_bufferram = s5pc110_read_bufferram;
this->chip_probe = s5pc110_chip_probe;
return;
} else {
BUG();
Expand All @@ -781,7 +788,6 @@ static int s3c_onenand_probe(struct platform_device *pdev)
struct mtd_info *mtd;
struct resource *r;
int size, err;
unsigned long onenand_ctrl_cfg = 0;

pdata = pdev->dev.platform_data;
/* No need to check pdata. the platform data is optional */
Expand Down Expand Up @@ -900,25 +906,14 @@ static int s3c_onenand_probe(struct platform_device *pdev)
}

onenand->phys_base = onenand->base_res->start;

onenand_ctrl_cfg = readl(onenand->dma_addr + 0x100);
if ((onenand_ctrl_cfg & ONENAND_SYS_CFG1_SYNC_WRITE) &&
onenand->dma_addr)
writel(onenand_ctrl_cfg & ~ONENAND_SYS_CFG1_SYNC_WRITE,
onenand->dma_addr + 0x100);
else
onenand_ctrl_cfg = 0;
}

if (onenand_scan(mtd, 1)) {
err = -EFAULT;
goto scan_failed;
}

if (onenand->type == TYPE_S5PC110) {
if (onenand_ctrl_cfg && onenand->dma_addr)
writel(onenand_ctrl_cfg, onenand->dma_addr + 0x100);
} else {
if (onenand->type != TYPE_S5PC110) {
/* S3C doesn't handle subpage write */
mtd->subpage_sft = 0;
this->subpagesize = mtd->writesize;
Expand Down

0 comments on commit 7b0507e

Please sign in to comment.