Thread (6 messages) 6 messages, 3 authors, 2011-05-12

Re: [PATCH] ATA: pata_at91.c bugfixes

From: Igor Plyatov <hidden>
Date: 2011-05-12 12:05:16
Also in: lkml

Hi Jeff!
On 04/20/2011 07:44 AM, Igor Plyatov wrote:
quoted
* 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<redacted>
---
  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.
Thank you for info!

I will update this patch.

Best regards!

-- 
Igor Plyatov
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help