return 0;
}
-
-static int do_cached_write (struct mtdblk_dev *mtdblk, unsigned long pos,
+#if 0
+static int do_cached_write (struct mtdblk_dev *mtdblk, loff_t pos,
int len, const char *buf)
{
struct mtd_info *mtd = mtdblk->mtd;
}
-static int do_cached_read (struct mtdblk_dev *mtdblk, unsigned long pos,
+static int do_cached_read (struct mtdblk_dev *mtdblk, loff_t pos,
int len, char *buf)
{
struct mtd_info *mtd = mtdblk->mtd;
}
static int mtdblock_readsect(struct mtd_blktrans_dev *dev,
- unsigned long block,unsigned long nsect, char *buf)
+ loff_t block,unsigned long nsect, char *buf)
{
struct mtdblk_dev *mtdblk = mtdblks[dev->devnum];
- return do_cached_read(mtdblk, block<<9, 512*nsect, buf);
+ return do_cached_read(mtdblk, (loff_t)block<<9, 512*nsect, buf);
}
static int mtdblock_writesect(struct mtd_blktrans_dev *dev,
* return -EAGAIN sometimes, but why bother?
*/
}
- return do_cached_write(mtdblk, block<<9, 512*nsect, buf);
+ return do_cached_write(mtdblk, (loff_t)block<<9, 512*nsect, buf);
}
+#else
+static int mtdblock_readsect(struct mtd_blktrans_dev *dev,
+ unsigned long block,unsigned long nsect, char *buf)
+{
+ struct mtdblk_dev *mtdblk = mtdblks[dev->devnum];
+ struct mtd_info *mtd = mtdblk->mtd;
+ size_t retlen,len;
+ loff_t pos = (loff_t)block*512;
+ len = 512*nsect;
+ DEBUG(MTD_DEBUG_LEVEL2, "mtdblock: read on \"%s\" at 0x%llx, size 0x%x\n",mtd->name, pos, len);
+ return mtd->read(mtd, pos, len, &retlen, buf);
+}
+
+static int mtdblock_writesect(struct mtd_blktrans_dev *dev,
+ unsigned long block,unsigned long nsect, char *buf)
+{
+ struct mtdblk_dev *mtdblk = mtdblks[dev->devnum];
+ struct mtd_info *mtd = mtdblk->mtd;
+ size_t retlen,len;
+ loff_t pos = (loff_t)block*512;
+ len = 512*nsect;
+
+ DEBUG(MTD_DEBUG_LEVEL2, "mtdblock: write on \"%s\" at 0x%llx, size 0x%x\n",mtd->name, pos, len);
+ return mtd->write(mtd, pos, len, &retlen, buf);
+}
+#endif
static int mtdblock_open(struct mtd_blktrans_dev *mbd)
{
struct mtdblk_dev *mtdblk;