Hi Miquel, > > > > > > > > > Macronix AC series support using SET/GET_FEATURES to change > > > > > Block Protection and Unprotection. > > > > > > > > > > MTD default _lock/_unlock function replacement by manufacturer > > > > > postponed initialization. > > > > > > > > Why would we do that? > > > > > > > > Anyway your solution looks overkill, if we ever decide to > > > > implement these hooks for raw nand, it is better just to not > > > > overwrite them in nand_scan_tail() if they have been filled > > > > previously (ie. by the manufacturer code). > > > > > > Actually you should add two NAND hooks that do the interface with the > > > MTD hooks. In the NAND hooks, check that the request is to lock all the > > > device, otherwise return -ENOTSUPP. > > > > sorry, can't get your point. > > > > Because the NAND entire chip will be protected if PT(protection) pin > > is active high at power-on. > > In your implementation of the locking, you should check that the > locking request is over the entire device, unless you can lock a > smaller portion of course. yes, I can lock a smaller portion. And at the power-on of device with PT pin at high voltage, all blocks are locked. They have to be unlocked by set feature command. > > > > > > > > > Then fill-in these two hooks from the manufacturer code, without the > > > postponed init. > > > > > > > But in the final of nand_scan_tail(), mtd->_lock/_unlock will be > > filled by NULL, right ? > > The NAND core should set mtd->_lock/_unlock() to NAND specific hooks so > that the MTD layer is abstracted and and drivers do not see it. Then, > in the NAND helper, either there is no specific hook defined by a > manufacturer driver and you return -ENOTSUPP, or you execute the > defined hook. okay, patch specific manufacturer _lock/_unlock driver in nand_manufacturer_init(); and in the final of nand_scan_tail() if (!mtd->_lock) mtd->_lock = NULL; if (!mtd->_unlock) mtd->_unlock = NULL; thanks for your time and comments. Mason CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. ===================================================================== ============================================================================ CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. ===================================================================== ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/