Hi Vladimir -- a couple comments.
+ PNX8550_XIO_FLASH_CTRL = reg_nand; + barrier(); +}
barrier() at the end of a function shouldn't be needed, function exit is an implicit optimizer flush?
+ pnx8550_nand_alloc_transfer_buffer(); + + memcpy(transferBuffer, buf, len);
Something should check for NULL return from kmalloc in both places this is called.
+ /* Scan to find existence of the device */ + if (nand_scan(&pnx8550_mtd, 1)) { + printk(KERN_ERR "No NAND devices\n"); + return -ENXIO; + } + + if (!transferBuffer) { + printk(KERN_ERR + "Unable to allocate NAND data buffer for PNX8550\n"); + return -ENOMEM; + }
Not sure why transferBuffer was expected to be allocated at this point (only when first read/write_buf called, scan does read_byte)?
-- Todd