|
@@ -915,7 +915,8 @@ static int __devinit fsl_elbc_nand_probe(struct platform_device *pdev)
|
|
|
elbc_fcm_ctrl->chips[bank] = priv;
|
|
|
priv->bank = bank;
|
|
|
priv->ctrl = fsl_lbc_ctrl_dev;
|
|
|
- priv->dev = dev;
|
|
|
+ priv->dev = &pdev->dev;
|
|
|
+ dev_set_drvdata(priv->dev, priv);
|
|
|
|
|
|
priv->vbase = ioremap(res.start, resource_size(&res));
|
|
|
if (!priv->vbase) {
|
|
@@ -962,11 +963,10 @@ err:
|
|
|
|
|
|
static int fsl_elbc_nand_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
- int i;
|
|
|
struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl = fsl_lbc_ctrl_dev->nand;
|
|
|
- for (i = 0; i < MAX_BANKS; i++)
|
|
|
- if (elbc_fcm_ctrl->chips[i])
|
|
|
- fsl_elbc_chip_remove(elbc_fcm_ctrl->chips[i]);
|
|
|
+ struct fsl_elbc_mtd *priv = dev_get_drvdata(&pdev->dev);
|
|
|
+
|
|
|
+ fsl_elbc_chip_remove(priv);
|
|
|
|
|
|
mutex_lock(&fsl_elbc_nand_mutex);
|
|
|
elbc_fcm_ctrl->counter--;
|