Messages in this thread |  | | | Date | Sun, 24 Apr 2011 11:35:22 -0400 | | From | Jeff Garzik <> | | Subject | Re: [PATCH] ATA: pata_at91.c bugfixes |
| |
On 04/20/2011 07:44 AM, Igor Plyatov wrote: > * Fix "initial_timing" structure initialisation. The "struct ata_timing" must > contain 10 members, but ".dmack_hold" member was not initialised. > * The AT91SAM9 microcontrollers use special coding scheme for SMC_SETUP, > SMC_PULSE, SMC_CYCLE registers. > Old driver operates correctly only with low master clock values, but > with high master clock it incorrectly calculates SMC values and stops > to operate, because SMC can be setup only to admissible ranges in special > format. > New code correctly calculates SMC registers values, adjusts calculated > to admissible ranges, enlarges cycles if required and converts values > into SMC's format. > * Old driver calculates CS_SETUP and CS_PULSE cycles incorrectly > because of wrong assumptions. > New code calculates: > CS_SETUP = SETUP/2 > CS_PULSE = PULSE + SETUP/2 + HOLD/2 > * This fixes allows to correctly operate with any master clock frequency. > > Signed-off-by: Igor Plyatov<plyatov@gmail.com> > --- > drivers/ata/pata_at91.c | 223 ++++++++++++++++++++++++++++++++--------------- > 1 files changed, 154 insertions(+), 69 deletions(-)
FYI, the two previous "v4" patches are now applied.
Based on the comments from Stanislaw, this patch would need to be updated anyway.
|  |