Re: [PATCH V2 2/2] mtd: msm_nand: Add initial msm nand driver support.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Murali Nalajala a Ãcrit :
> On 4/18/2011 1:02 PM, Matthieu CASTET wrote:
>> Hi,
>>
>> Murali Nalajala a Ãcrit :
>>> Add initial msm nand driver support for Qualcomm MSM platforms.
>>> This driver is capable of handling both 2k and 4k page support
>>> nand devices.
>>>
>>> This driver was originally developed by Arve HjÃnnevÃg at google.
>>> Its source is available at
>>> http://android.git.kernel.org/?p=kernel/msm.git under
>>> android-msm-2.6.35 branch.
>>>
>>> CC: Dima Zavin<dima@xxxxxxxxxxx>
>>> CC: Brian Swetland<swetland@xxxxxxxxxx>
>>> CC: Arve HjÃnnevÃg<arve@xxxxxxxxxxx>
>>> Signed-off-by: Murali Nalajala<mnalajal@xxxxxxxxxxxxxx>
>>> ---
>>> Changes in V2
>>> * Turn most of the pr_info() calls into pr_debug().
>>>
>>>   drivers/mtd/devices/Kconfig    |   11 +
>>>   drivers/mtd/devices/Makefile   |    1 +
>>>   drivers/mtd/devices/msm_nand.c | 1597 ++++++++++++++++++++++++++++++++++++++++
>>>   drivers/mtd/devices/msm_nand.h |   77 ++
>>>   4 files changed, 1686 insertions(+), 0 deletions(-)
>>>   create mode 100644 drivers/mtd/devices/msm_nand.c
>>>   create mode 100644 drivers/mtd/devices/msm_nand.h
>>>
>> For the record, I am not sure it is a great idea to make nand drivers
>> independent of the nand layer.
>> By doing that you could change the expected behavior, and introduce bug
>> difficult to debug.
>>
>> Why do you need that ? Nand drivers can override callbacks of nand framework.
>>
>> Maybe because the nand layer call the driver page per page, and  you want to
>> work with more than one page. But in this case you can extend nand layer.
>>
>> Or does your controller don't allow sending raw command ?
>> And in that case all the nand logic is in the nand controller ?
> 
> Our controller doesn't allow sending RAW commands to the flash. All 
> these commands are abstracted by the controller logic. Please refer the 
> msm_nand.h file where you will find the commands which are different 
> from the actual NAND device commands.
Ok, but does the controller does all other check : status check, ...

In the nand framework there is already controller like yours : see the denali.c
as example.
> 
> eg: To send read/write data command to the device we configure the 
> controller with page address & controller specific command. Then the 
> controller itself takes care of generating the internal h/w signals 
> required by the flash and it polls for the R/B signal & wait states are 
> internally controlled by the h/w.
> 
So you provide your own
    chip->ecc.read_page
    chip->ecc.read_page_raw
    chip->ecc.read_oob
    chip->write_page
    chip->ecc.write_oob

and your done.


Matthieu
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux