Only probe for device combinations that fit in map's bankwidth.
PATCH 1/1 Only probe for device combinations that fit in map's bankwidth.
Hi,
Recent MTD changed how chip probing is done and it now probes for chips of all bus widths. On my board (IXP425 with 16-bit AMD AM29LV128 flash) probing for 8-bit wide devices cannot work because 8-bit writes/reads to 16-bit devices aren't allowed (they cause data aborts). So...
Make genprobe_new_chip() only probe for combinations that fit in the map's bankwidth.
drivers/mtd/chips/gen_probe.c +3 -2
@@ -172,8 +172,9 @@for (type =0 ; type <3 ; type++) { cfi->device_type =1 <<type; -if (cp->probe_chip (map,0 ,NULL , cfi)) -return 1 ; +if (cfi->device_type * cfi->interleave ==map_bankwidth (map)) +if (cp->probe_chip (map,0 ,NULL , cfi)) +return 1 ; } }return 0 ;
David Vrabel
Signature · 4 lines
David Vrabel, Design Engineer Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/
Quoted 9 lines · David Vrabel
Hi,
Recent MTD changed how chip probing is done and it now probes for chips of all bus widths. On my board (IXP425 with 16-bit AMD AM29LV128 flash) probing for 8-bit wide devices cannot work because 8-bit writes/reads to 16-bit devices aren't allowed (they cause data aborts). So...
Make
genprobe_new_chip()only probe for combinations that fit in the map's bankwidth.
MTD CVS has this fixed already. I noticed the same behavior right after dwmw2 merged with Linus. Can you try what's there and see if it fixes your problem?
josh