All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: "Pedanekar, Hemant" <hemantp@ti.com>
Cc: "linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
	"davinci-linux-open-source@linux.davincidsp.com"
	<davinci-linux-open-source@linux.davincidsp.com>,
	Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: Re: Not able to set DMA mode other than default using hdparm
Date: Mon, 23 Nov 2009 20:44:30 +0300	[thread overview]
Message-ID: <4B0AC9FE.1070504@ru.mvista.com> (raw)
In-Reply-To: <2A3DCF3DA181AD40BDE86A3150B27B6B02F6D66E3C@dbde02.ent.ti.com>

Pedanekar, Hemant wrote:

> I am getting following error when trying to set DMA transfer mode as UDMA2 on latest DaVinci (DM6467) git kernel using hdparm (9.27 or older):

> # ./hdparm -d1 -Xudma2  /dev/hda
> /dev/hda:hda: UDMA/66 mode selected
>  setting using_dma to 1 (on)
> hda: UDMA/66 mode selected
>  setting xfermode to 66 (UltraDMA mode2)
>  HDIO_DRIVE_CMD(setxfermode) failed: Invalid argument
>  using_dma     =  1 (on)

> It seems DMA mode setting other than the default mode returns this error. That is, if I use "-Xudma4" in above command it returns success as UDMA4 is the default mode on DM6467.

> I made following change which allows hdparm to set any supported DMA mode. Can anyone confirm if this is a hdparm compatibility (incorrect use of ioctl?) or the patch below indeed fixes the issue?

> diff --git a/drivers/ide/ide-ioctls.c b/drivers/ide/ide-ioctls.c
> index d3440b5..6e7ae2b 100644
> --- a/drivers/ide/ide-ioctls.c
> +++ b/drivers/ide/ide-ioctls.c
> @@ -162,7 +162,7 @@ static int ide_cmd_ioctl(ide_drive_t *drive, unsigned long arg)
>         if (tf->command == ATA_CMD_SET_FEATURES &&
>             tf->feature == SETFEATURES_XFER &&
>             tf->nsect >= XFER_SW_DMA_0) {
> -               xfer_rate = ide_find_dma_mode(drive, XFER_UDMA_6);
> +               xfer_rate = ide_find_dma_mode(drive, tf->nsect);
>                 if (xfer_rate != tf->nsect) {
>                         err = -EINVAL;
>                         goto abort;
> 

    Looks like the patch is correct, the following commit has introduced the 
mistake:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a9c415090710a108edcd81b3392b90396f190a9a

    Could you resubmit your patch with proper description and sign-off?

MBR, Sergei

  reply	other threads:[~2009-11-23 17:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-23 16:58 Not able to set DMA mode other than default using hdparm Pedanekar, Hemant
2009-11-23 17:44 ` Sergei Shtylyov [this message]
2009-11-23 18:10   ` 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=4B0AC9FE.1070504@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=bzolnier@gmail.com \
    --cc=davinci-linux-open-source@linux.davincidsp.com \
    --cc=hemantp@ti.com \
    --cc=linux-ide@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 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.