]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/mtd/devices/mtd_dataflash.c
Merge tag 'md-3.5-fixes' of git://neil.brown.name/md
[karo-tx-linux.git] / drivers / mtd / devices / mtd_dataflash.c
index 236057ead0d2ab2fcd5d57bff92e18a05e927223..928fb0e6d73a632c9a5522a03a5e6a07284a4c53 100644 (file)
@@ -164,9 +164,6 @@ static int dataflash_erase(struct mtd_info *mtd, struct erase_info *instr)
              dev_name(&spi->dev), (long long)instr->addr,
              (long long)instr->len);
 
-       /* Sanity checks */
-       if (instr->addr + instr->len > mtd->size)
-               return -EINVAL;
        div_u64_rem(instr->len, priv->page_size, &rem);
        if (rem)
                return -EINVAL;
@@ -252,14 +249,6 @@ static int dataflash_read(struct mtd_info *mtd, loff_t from, size_t len,
        pr_debug("%s: read 0x%x..0x%x\n", dev_name(&priv->spi->dev),
                        (unsigned)from, (unsigned)(from + len));
 
-       *retlen = 0;
-
-       /* Sanity checks */
-       if (!len)
-               return 0;
-       if (from + len > mtd->size)
-               return -EINVAL;
-
        /* Calculate flash page/byte address */
        addr = (((unsigned)from / priv->page_size) << priv->page_offset)
                + ((unsigned)from % priv->page_size);
@@ -328,14 +317,6 @@ static int dataflash_write(struct mtd_info *mtd, loff_t to, size_t len,
        pr_debug("%s: write 0x%x..0x%x\n",
                dev_name(&spi->dev), (unsigned)to, (unsigned)(to + len));
 
-       *retlen = 0;
-
-       /* Sanity checks */
-       if (!len)
-               return 0;
-       if ((to + len) > mtd->size)
-               return -EINVAL;
-
        spi_message_init(&msg);
 
        x[0].tx_buf = command = priv->command;
@@ -490,8 +471,6 @@ static ssize_t otp_read(struct spi_device *spi, unsigned base,
 
        if ((off + len) > 64)
                len = 64 - off;
-       if (len == 0)
-               return len;
 
        spi_message_init(&m);
 
@@ -611,16 +590,16 @@ static int dataflash_write_user_otp(struct mtd_info *mtd,
 
 static char *otp_setup(struct mtd_info *device, char revision)
 {
-       device->get_fact_prot_info = dataflash_get_otp_info;
-       device->read_fact_prot_reg = dataflash_read_fact_otp;
-       device->get_user_prot_info = dataflash_get_otp_info;
-       device->read_user_prot_reg = dataflash_read_user_otp;
+       device->_get_fact_prot_info = dataflash_get_otp_info;
+       device->_read_fact_prot_reg = dataflash_read_fact_otp;
+       device->_get_user_prot_info = dataflash_get_otp_info;
+       device->_read_user_prot_reg = dataflash_read_user_otp;
 
        /* rev c parts (at45db321c and at45db1281 only!) use a
         * different write procedure; not (yet?) implemented.
         */
        if (revision > 'c')
-               device->write_user_prot_reg = dataflash_write_user_otp;
+               device->_write_user_prot_reg = dataflash_write_user_otp;
 
        return ", OTP";
 }
@@ -672,9 +651,9 @@ add_dataflash_otp(struct spi_device *spi, char *name,
        device->owner = THIS_MODULE;
        device->type = MTD_DATAFLASH;
        device->flags = MTD_WRITEABLE;
-       device->erase = dataflash_erase;
-       device->read = dataflash_read;
-       device->write = dataflash_write;
+       device->_erase = dataflash_erase;
+       device->_read = dataflash_read;
+       device->_write = dataflash_write;
        device->priv = priv;
 
        device->dev.parent = &spi->dev;
@@ -946,18 +925,7 @@ static struct spi_driver dataflash_driver = {
        /* FIXME:  investigate suspend and resume... */
 };
 
-static int __init dataflash_init(void)
-{
-       return spi_register_driver(&dataflash_driver);
-}
-module_init(dataflash_init);
-
-static void __exit dataflash_exit(void)
-{
-       spi_unregister_driver(&dataflash_driver);
-}
-module_exit(dataflash_exit);
-
+module_spi_driver(dataflash_driver);
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Andrew Victor, David Brownell");