* (Fwd) several bugfixes/workarounds in mtd snapshot of 20041226
@ 2005-01-03 6:49 Frantisek Rysanek
0 siblings, 0 replies; only message in thread
From: Frantisek Rysanek @ 2005-01-03 6:49 UTC (permalink / raw)
To: linux-mtd
[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 1207 bytes --]
Dear MTD maintainers,
I suggest several bugfixes and workarounds against the
snapshot of 20041226 (inserted into a vanilla 2.4.28) - see
the attached patch.
I hope it's not a problem that my message is posted a few days
later than I would've liked - I didn't notice I had to
subscribe to be able to post :-)
I'm using DiskOnChip devices in various sorts of Advantech
hardware. I'm compiling my MTD drivers for the DiskOnChip
alone - I don't want to include all the other MTD stuff
(useless to me).
Bugs fixed / worked around:
1) if you flush the partition table and issue a BLKRRPART
(i.e., you re-partition the diskonchip), the reported device
size shrinks to one half of the original. If you do this again
before a reboot, the size shrinks again (now one quarter).
Seems like the driver would re-init device size to a size denominated in 1k blocks,
rather than sectors (512B).
2) in my DiskOnChip-only setup, CONFIG_MTD_MAP_BANK_WIDTH_1
is missing in the .config. I've added that straight to $LINUX/include/linux/map.h
3) two #includes seem to be missing in $MTD/nand/diskonchip.c
4) the Reed-Solomon library hooks are messed up in $LINUX/lib/Config.in
I hope this helps
Frank Rysanek
[-- Attachment #2: - --]
[-- Type: Application/Octet-stream, Size: 1137 bytes --]
Dear MTD maintainers,
I suggest several bugfixes and workarounds against the
snapshot of 20041226 (inserted into a vanilla 2.4.28) - see
the attached patch.
I'm using DiskOnChip devices in various sorts of Advantech
hardware. I'm compiling my MTD drivers for the DiskOnChip
alone - I don't want to include all the other MTD stuff
(useless to me).
Bugs fixed / worked around:
1) if you flush the partition table and issue a BLKRRPART
(i.e., you re-partition the diskonchip), the reported device
size shrinks to one half of the original. If you do this again
before a reboot, the size shrinks again (now one quarter).
Seems like the driver would re-init device size to a size denominated in 1k blocks,
rather than sectors (512B).
2) in my DiskOnChip-only setup, CONFIG_MTD_MAP_BANK_WIDTH_1
is missing in the .config. I've added that straight to $LINUX/include/linux/map.h
3) two #includes seem to be missing in $MTD/nand/diskonchip.c
4) the Reed-Solomon library hooks are messed up in $LINUX/lib/Config.in
I hope this helps
Frank Rysanek
Attachments:
G:\vymena\mtd-bugs.20041226.patch
[-- Attachment #3: Text from file 'mtd-bugs.20041226.patch' --]
[-- Type: text/plain, Size: 1910 bytes --]
--- linux_with_mtd_bugs/drivers/mtd/mtd_blkdevs-24.c 2004-12-27 14:48:52.000000000 +0100
+++ linux/drivers/mtd/mtd_blkdevs-24.c 2004-12-29 14:32:14.000000000 +0100
@@ -315,7 +315,7 @@
}
grok_partitions(gd, minor, 1 << tr->part_bits,
- tr->blkcore_priv->sizes[minor]);
+ dev->size);
up(&mtd_table_mutex);
return 0;
--- linux_with_mtd_bugs/include/linux/mtd/map.h 2004-12-27 14:48:54.000000000 +0100
+++ linux/include/linux/mtd/map.h 2004-12-27 15:33:58.000000000 +0100
@@ -14,6 +14,10 @@
#include <asm/io.h>
#include <asm/bug.h>
+#ifndef CONFIG_MTD_CFI_GEOMETRY
+#define CONFIG_MTD_MAP_BANK_WIDTH_1
+#endif
+
#ifdef CONFIG_MTD_MAP_BANK_WIDTH_1
#define map_bankwidth(map) 1
#define map_bankwidth_is_1(map) (map_bankwidth(map) == 1)
--- linux_with_mtd_bugs/drivers/mtd/nand/diskonchip.c 2004-12-27 14:48:53.000000000 +0100
+++ linux/drivers/mtd/nand/diskonchip.c 2004-12-27 13:39:56.000000000 +0100
@@ -24,6 +24,8 @@
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/rslib.h>
+#include <linux/moduleparam.h>
+#include <linux/rslib.h>
#include <asm/io.h>
#include <linux/mtd/mtd.h>
--- linux_with_mtd_bugs/lib/Config.in 2004-12-27 14:48:54.000000000 +0100
+++ linux/lib/Config.in 2004-12-29 14:37:35.000000000 +0100
@@ -43,13 +43,15 @@
if [ "$CONFIG_MTD_DOCPROBE" = "y" -o \
"$CONFIG_MTD_NAND_RTC_FROM4" = "y" -o \
- "$MTD_NAND_DISKONCHIP" = "y" ]; then
+ "$CONFIG_MTD_NAND_DISKONCHIP" = "y" ]; then
define_tristate CONFIG_REED_SOLOMON y
+ define_tristate CONFIG_REED_SOLOMON_DEC16 y
else
if [ "$CONFIG_MTD_DOCPROBE" = "m" -o \
"$CONFIG_MTD_NAND_RTC_FROM4" = "m" -o \
- "$MTD_NAND_DISKONCHIP" = "m" ]; then
+ "$CONFIG_MTD_NAND_DISKONCHIP" = "m" ]; then
define_tristate CONFIG_REED_SOLOMON m
+ define_tristate CONFIG_REED_SOLOMON_DEC16 y
else
define_tristate CONFIG_REED_SOLOMON n
fi
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-01-03 6:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-03 6:49 (Fwd) several bugfixes/workarounds in mtd snapshot of 20041226 Frantisek Rysanek
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.