All of lore.kernel.org
 help / color / mirror / Atom feed
From: geomatsi@gmail.com (Sergey Matyukevich)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ata: pata_at91.c bugfix for high master clock
Date: Sat, 11 Dec 2010 21:40:44 +0300	[thread overview]
Message-ID: <20101211214044.37b866e0@realm> (raw)
In-Reply-To: <1292038651-5578-1-git-send-email-plyatov@gmail.com>

Hello Igor,

On Sat, 11 Dec 2010 06:37:31 +0300
Igor Plyatov <plyatov@gmail.com> wrote:

> The AT91SAM9 microcontrollers with master clock higher then 105 MHz
> and PIO0, have overflow of the NCS_RD_PULSE value in the MSB. This
> lead to "NCS_RD_PULSE" pulse longer then "NRD_CYCLE" pulse and
> pata_at91 driver does not detect ATA device.
> 
> Signed-off-by: Igor Plyatov <plyatov@gmail.com>
> ---
>  drivers/ata/pata_at91.c |   11 +++++++++--
>  1 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/ata/pata_at91.c b/drivers/ata/pata_at91.c
> index 0da0dcc..2e189be 100644
> --- a/drivers/ata/pata_at91.c
> +++ b/drivers/ata/pata_at91.c
> @@ -33,12 +33,14 @@
>  
>  
>  #define DRV_NAME "pata_at91"
> -#define DRV_VERSION "0.1"
> +#define DRV_VERSION "0.2"
>  
>  #define CF_IDE_OFFSET	    0x00c00000
>  #define CF_ALT_IDE_OFFSET   0x00e00000
>  #define CF_IDE_RES_SIZE     0x08
>  
> +#define NCS_RD_PULSE_LIMIT  0x3f /* maximal value for pulse
> bitfields */ +
>  struct at91_ide_info {
>  	unsigned long mode;
>  	unsigned int cs;
> @@ -50,7 +52,7 @@ struct at91_ide_info {
>  };
>  
>  static const struct ata_timing initial_timing =
> -	{XFER_PIO_0, 70, 290, 240, 600, 165, 150, 600, 0};
> +	{XFER_PIO_0, 70, 290, 240, 600, 165, 150, 0, 600, 0};
>  
>  static unsigned long calc_mck_cycles(unsigned long ns, unsigned long
> mck_hz) {
> @@ -109,6 +111,11 @@ static void set_smc_timing(struct device *dev,
>  	/* (CS0, CS1, DIR, OE) <= (CFCE1, CFCE2, CFRNW, NCSX)
> timings */ ncs_read_setup = 1;
>  	ncs_read_pulse = read_cycle - 2;
> +	if (ncs_read_pulse > NCS_RD_PULSE_LIMIT) {
> +		ncs_read_pulse = NCS_RD_PULSE_LIMIT;
> +		dev_dbg(dev, "ncs_read_pulse limited to maximal
> value %lu\n",

arguably 'dev_warn' would be better in this case

> +			ncs_read_pulse);
> +	}
>  
>  	/* Write timings same as read timings */
>  	write_cycle = read_cycle;

Thanks for the fix.

By the way, it was not a good idea to send this patch separately to
both lists: linux-ide and linux-arm-kernel. I will ack this patch and
add linux-arm-kernel and other recipients in my reply to your email 
to linux-ide list.

Thanks,
Sergey

  reply	other threads:[~2010-12-11 18:40 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-11  3:37 [PATCH] ata: pata_at91.c bugfix for high master clock Igor Plyatov
2010-12-11 18:40 ` Sergey Matyukevich [this message]
2010-12-11 20:51   ` Igor Plyatov
  -- strict thread matches above, loose matches on Subject: below --
2010-12-10 20:03 Igor Plyatov
2010-12-11  3:40 ` Igor Plyatov
2010-12-11 19:16 ` Sergey Matyukevich
2010-12-11 19:16   ` Sergey Matyukevich
     [not found] ` <4D0385D1.9080209@ru.mvista.com>
     [not found]   ` <1292081113.1580.21.camel@homepc>
     [not found]     ` <4D039930.4050905@ru.mvista.com>
2010-12-11 19:43       ` Igor Plyatov
2010-12-12 13:46         ` Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101211214044.37b866e0@realm \
    --to=geomatsi@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.