Re: [git patches] libata updates

Jeff Garzik
2009-10-06T04:24:50Z

On 09/28/2009 11:34 AM, Bartlomiej Zolnierkiewicz wrote:
> Thanks, your patch looks good to me but since there are still some
> leftover issues left we would also need something like the incremental
> patch below:
>
> From: Bartlomiej Zolnierkiewicz<bzolnier@gmail.com>
> Subject: [PATCH] pata_atp867x: PIO support fixes
>
> * use 8 clk setting for active clocks == 7 (was 12 clk)
> * use 12 clk setting for active clocks> 12 (was 8 clk)
> * do 66MHz bus fixup before mapping active clocks
> * fix setup of PIO command timings
>
> Signed-off-by: Bartlomiej Zolnierkiewicz<bzolnier@gmail.com>
> ---
> drivers/ata/pata_atp867x.c | 36 +++++++++++++++++++-----------------
> 1 file changed, 19 insertions(+), 17 deletions(-)
>
> Index: b/drivers/ata/pata_atp867x.c
> ===================================================================
> --- a/drivers/ata/pata_atp867x.c
> +++ b/drivers/ata/pata_atp867x.c
> @@ -155,30 +155,31 @@ static int atp867x_get_active_clocks_shi
> struct atp867x_priv *dp = ap->private_data;
> unsigned char clocks = clk;
>
> + /*
> + * Doc 6.6.9: increase the clock value by 1 for safer PIO speed
> + * on 66MHz bus
> + */
> + if (dp->pci66mhz)
> + clocks++;
> +
> switch (clocks) {
> case 0:
> clocks = 1;
> break;
> - case 1 ... 7:
> - break;
> - case 9 ... 12:
> - clocks = 7;
> + case 1 ... 6:
> break;
> default:
> printk(KERN_WARNING "ATP867X: active %dclk is invalid. "
> - "Using default 8clk.\n", clk);
> + "Using 12clk.\n", clk);
> + case 9 ... 12:
> + clocks = 7; /* 12 clk */
> + break;
> + case 7:
> case 8: /* default 8 clk */
> clocks = 0;
> goto active_clock_shift_done;
> }
>
> - /*
> - * Doc 6.6.9: increase the clock value by 1 for safer PIO speed
> - * on 66MHz bus
> - */
> - if (dp->pci66mhz&& clocks< 7)
> - clocks++;
> -
> active_clock_shift_done:
> return clocks<< ATP867X_IO_PIOSPD_ACTIVE_SHIFT;
> }
> @@ -193,7 +194,8 @@ static int atp867x_get_recover_clocks_sh
> break;
> case 1 ... 11:
> break;
> - case 13: case 14:
> + case 13:
> + case 14:
> --clocks; /* by the spec */
> break;
> case 15:
> @@ -235,16 +237,16 @@ static void atp867x_set_piomode(struct a
> iowrite8(b, dp->dma_mode);
>
> b = atp867x_get_active_clocks_shifted(ap, t.active) |
> - atp867x_get_recover_clocks_shifted(t.recover);
> + atp867x_get_recover_clocks_shifted(t.recover);
>
> if (adev->devno& 1)
> iowrite8(b, dp->slave_piospd);
> else
> iowrite8(b, dp->mstr_piospd);
>
> - /*
> - * use the same value for comand timing as for PIO timimg
> - */
> + b = atp867x_get_active_clocks_shifted(ap, t.act8b) |
> + atp867x_get_recover_clocks_shifted(t.rec8b);
> +
> iowrite8(b, dp->eightb_piospd);
> }
>
>

This was incremental to the previous patch, or upstream?

Jeff