mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@mvista.com>
To: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 04/20] pata_efar: unify code for programming PIO and MWDMA timings
Date: Sun, 20 Feb 2011 17:32:07 +0300	[thread overview]
Message-ID: <4D6125E7.2090706@ru.mvista.com> (raw)
In-Reply-To: <20110208122401.19110.20615.sendpatchset@linux-mhg7.site>

Hello.

On 08-02-2011 15:24, Bartlomiej Zolnierkiewicz wrote:

>  From 2de7db4bcc16b7e95cca9ceb5921a6f620be76b7 Mon Sep 17 00:00:00 2001
> From: Bartlomiej Zolnierkiewicz<bzolnier@gmail.com>
> Date: Tue, 8 Feb 2011 12:39:25 +0100
> Subject: [PATCH 04/20] pata_efar: unify code for programming PIO and MWDMA timings

> Besides making things noticably simpler it results in ~10% decrease in
> the driver LOC count and also ~8% decrease in the driver binary size
> (as measured on x86-32).

> Signed-off-by: Bartlomiej Zolnierkiewicz<bzolnier@gmail.com>
[...]

> diff --git a/drivers/ata/pata_efar.c b/drivers/ata/pata_efar.c
> index afe92b7..1e2ff7d 100644
> --- a/drivers/ata/pata_efar.c
> +++ b/drivers/ata/pata_efar.c
[...]
> @@ -103,13 +92,18 @@ static void efar_set_piomode (struct ata_port *ap, struct ata_device *adev)
>   			    { 2, 1 },
>   			    { 2, 3 }, };
>
> -	if (pio>  1)
> +	if (pio>  1 || use_mwdma)
>   		control |= 1;	/* TIME */
> -	if (ata_pio_need_iordy(adev))	/* PIO 3/4 require IORDY */
> +	if (ata_pio_need_iordy(adev) || use_mwdma)
>   		control |= 2;	/* IE */

    Same comments as for ata_piix for these two bits...

>   	/* Intel specifies that the prefetch/posting is for disk only */
>   	if (adev->class == ATA_DEV_ATA)
>   		control |= 4;	/* PPE */
> +	/* If the drive MWDMA is faster than it can do PIO then
> +	   we must force PIO into PIO0 */

    Fix comment style, like in ata_piix.

> +	if (use_mwdma && adev->pio_mode < (XFER_PIO_0 + pio))

    Parens not needed around +.

> @@ -145,6 +139,22 @@ static void efar_set_piomode (struct ata_port *ap, struct ata_device *adev)
>   }
>
>   /**
> + *	efar_set_piomode - Initialize host controller PATA PIO timings
> + *	@ap: Port whose timings we are configuring
> + *	@adev: Device to program
> + *
> + *	Set PIO mode for device, in host controller PCI config space.
> + *
> + *	LOCKING:
> + *	None (inherited from caller).
> + */
> +
> +static void efar_set_piomode(struct ata_port *ap, struct ata_device *adev)
> +{
> +	efar_set_timings(ap, adev, adev->pio_mode - XFER_PIO_0, 0);

    s/0/false/? Likewise in ata_piix...

> @@ -158,29 +168,19 @@ static void efar_set_piomode (struct ata_port *ap, struct ata_device *adev)
>   static void efar_set_dmamode (struct ata_port *ap, struct ata_device *adev)
>   {
>   	struct pci_dev *dev	= to_pci_dev(ap->host->dev);
> -	u8 master_port		= ap->port_no ? 0x42 : 0x40;
> -	u16 master_data;
>   	u8 speed		= adev->dma_mode;
>   	int devid		= adev->devno + 2 * ap->port_no;
>   	unsigned long flags;
>   	u8 udma_enable;
>
> -	static const	 /* ISP  RTC */
> -	u8 timings[][2]	= { { 0, 0 },
> -			    { 0, 0 },
> -			    { 1, 0 },
> -			    { 2, 1 },
> -			    { 2, 3 }, };
> -
> -	spin_lock_irqsave(&efar_lock, flags);
> -
> -	pci_read_config_word(dev, master_port, &master_data);
> -	pci_read_config_byte(dev, 0x48, &udma_enable);
> -
>   	if (speed>= XFER_UDMA_0) {
> -		unsigned int udma	= adev->dma_mode - XFER_UDMA_0;
> +		unsigned int udma = speed - XFER_UDMA_0;
>   		u16 udma_timing;
>
> +		spin_lock_irqsave(&efar_lock, flags);
> +
> +		pci_read_config_byte(dev, 0x48, &udma_enable);

    Don't think you should have moved this...

> +
>   		udma_enable |= (1 << devid);
>
>   		/* Load the UDMA mode number */
> @@ -188,50 +188,20 @@ static void efar_set_dmamode (struct ata_port *ap, struct ata_device *adev)
[...]
> -		udma_enable &= ~(1 << devid);
> -		pci_write_config_word(dev, master_port, master_data);

    No, you should disable UDMA when programming MWDMA.

> +		efar_set_timings(ap, adev, pio, 1);

    s/1/true/? Likewise in ata_piix...

WBR, Sergei

  reply	other threads:[~2011-02-20 14:33 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-08 12:23 [PATCHSET] ata: rework support for PIIX-alike PATA controllers Bartlomiej Zolnierkiewicz
2011-02-08 12:23 ` [PATCH 01/20] ata_piix: SITRE handling fix Bartlomiej Zolnierkiewicz
2011-02-08 13:04   ` Alan Cox
2011-02-08 13:02     ` Bartlomiej Zolnierkiewicz
2011-02-08 12:23 ` [PATCH 02/20] ata_piix: unify code for programming PIO and MWDMA timings Bartlomiej Zolnierkiewicz
2011-02-20 13:36   ` Sergei Shtylyov
2011-02-20 18:59     ` Alan Cox
2011-02-20 20:42       ` Sergei Shtylyov
2011-02-20 21:07         ` Alan Cox
2011-02-21 11:38           ` Sergei Shtylyov
2011-02-21 11:53             ` Sergei Shtylyov
2011-02-21 12:00               ` Alan Cox
2011-02-21 11:58             ` Alan Cox
2011-02-21 11:59               ` Sergei Shtylyov
2011-02-08 12:23 ` [PATCH 03/20] pata_efar: fix register naming used in efar_set_piomode() Bartlomiej Zolnierkiewicz
2011-02-08 12:24 ` [PATCH 04/20] pata_efar: unify code for programming PIO and MWDMA timings Bartlomiej Zolnierkiewicz
2011-02-20 14:32   ` Sergei Shtylyov [this message]
2011-02-08 12:24 ` [PATCH 05/20] pata_efar: always program master_data before slave_data Bartlomiej Zolnierkiewicz
2011-02-08 13:07   ` Alan Cox
2011-02-08 13:16     ` Bartlomiej Zolnierkiewicz
2011-02-08 13:25       ` Alan Cox
2011-02-08 13:28         ` Bartlomiej Zolnierkiewicz
2011-02-08 13:39           ` Alan Cox
2011-02-08 13:57             ` Bartlomiej Zolnierkiewicz
2011-02-08 14:12               ` Alan Cox
2011-02-08 14:32                 ` Bartlomiej Zolnierkiewicz
2011-02-08 13:38         ` Sergei Shtylyov
2011-02-19  9:25           ` Bartlomiej Zolnierkiewicz
2011-02-19 16:48             ` Alan Cox
2011-02-20 10:38               ` Bartlomiej Zolnierkiewicz
2011-02-20 11:36                 ` Alan Cox
2011-02-21 20:06             ` Jeff Garzik
2011-02-22  9:19               ` Bartlomiej Zolnierkiewicz
2011-02-22 11:14                 ` Alan Cox
2011-02-23  8:45                   ` Bartlomiej Zolnierkiewicz
2011-02-23  8:53                     ` Bartlomiej Zolnierkiewicz
2011-02-23 10:17                       ` Bartlomiej Zolnierkiewicz
2011-02-23  9:14                     ` Alan Cox
2011-02-23 10:28                       ` Bartlomiej Zolnierkiewicz
2011-02-23 10:36                         ` Alan Cox
2011-02-24 17:53                         ` Alan Cox
2011-02-10 14:23   ` Sergei Shtylyov
2011-02-10 17:14     ` Bartlomiej Zolnierkiewicz
2011-02-10 17:55       ` Sergei Shtylyov
2011-02-08 12:24 ` [PATCH 06/20] pata_it8213: fix register naming used in it8213_set_piomode() Bartlomiej Zolnierkiewicz
2011-02-08 12:24 ` [PATCH 07/20] pata_it8213: unify code for programming PIO and MWDMA timings Bartlomiej Zolnierkiewicz
2011-02-20 14:37   ` Sergei Shtylyov
2011-02-08 12:24 ` [PATCH 08/20] pata_it8213: add UDMA100 and UDMA133 support Bartlomiej Zolnierkiewicz
2011-02-08 12:24 ` [PATCH 09/20] pata_oldpiix: unify code for programming PIO and MWDMA timings Bartlomiej Zolnierkiewicz
2011-02-20 14:52   ` Sergei Shtylyov
2011-02-08 12:24 ` [PATCH 10/20] pata_radisys: " Bartlomiej Zolnierkiewicz
2011-02-20 15:01   ` Sergei Shtylyov
2011-02-08 12:24 ` [PATCH 11/20] pata_rdc: " Bartlomiej Zolnierkiewicz
2011-02-08 12:25 ` [PATCH 12/20] pata_rdc: parallel scanning needs an extra locking Bartlomiej Zolnierkiewicz
2011-02-20 15:04   ` Sergei Shtylyov
2011-02-08 12:25 ` [PATCH 13/20] pata_rdc: add Power Management support Bartlomiej Zolnierkiewicz
2011-02-08 12:25 ` [PATCH 14/20] pata_oldpiix: add locking for parallel scanning Bartlomiej Zolnierkiewicz
2011-02-10 14:28   ` Sergei Shtylyov
2011-02-08 12:25 ` [PATCH 15/20] pata_oldpiix: enable parallel scan Bartlomiej Zolnierkiewicz
2011-02-08 12:25 ` [PATCH 16/20] ata_piix: add EFAR SLC90E66 support Bartlomiej Zolnierkiewicz
2011-02-08 13:13   ` Alan Cox
2011-02-08 13:27     ` Bartlomiej Zolnierkiewicz
2011-02-08 13:38       ` Alan Cox
2011-02-08 14:01         ` Bartlomiej Zolnierkiewicz
2011-02-08 12:25 ` [PATCH 17/20] ata_piix: add IT8213 support Bartlomiej Zolnierkiewicz
2011-02-08 12:25 ` [PATCH 18/20] ata_piix: add RDC support Bartlomiej Zolnierkiewicz
2011-02-08 12:25 ` [PATCH 19/20] ata_piix: add Intel old PIIX support Bartlomiej Zolnierkiewicz
2011-02-08 12:26 ` [PATCH 20/20] ata_piix: add Radisys R82600 support Bartlomiej Zolnierkiewicz

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=4D6125E7.2090706@ru.mvista.com \
    --to=sshtylyov@mvista.com \
    --cc=bzolnier@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome