All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
	linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 13/18] ide: use ->tf_load in SELECT_DRIVE()
Date: Wed, 04 Mar 2009 18:43:45 +0300	[thread overview]
Message-ID: <49AEA1B1.3050008@ru.mvista.com> (raw)
In-Reply-To: <499AD872.2060605@ru.mvista.com>

Hello, I wrote:

>>>>>>>> There should be no functional changes caused by this patch.
>>>>>>>> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
>>>>>>>> Index: b/drivers/ide/ide-iops.c
>>>>>>>> ===================================================================
>>>>>>>> --- a/drivers/ide/ide-iops.c
>>>>>>>> +++ b/drivers/ide/ide-iops.c
>>>>>>>> @@ -88,11 +88,15 @@ void SELECT_DRIVE (ide_drive_t *drive)
>>>>>>>> {
>>>>>>>>     ide_hwif_t *hwif = drive->hwif;
>>>>>>>>     const struct ide_port_ops *port_ops = hwif->port_ops;
>>>>>>>> +    ide_task_t task;

>>>>>>>>     if (port_ops && port_ops->selectproc)
>>>>>>>>         port_ops->selectproc(drive);
>>>>>>>>
>>>>>>>> -    hwif->OUTB(drive->select.all, hwif->io_ports.device_addr);
>>>>>>>> +    memset(&task, 0, sizeof(task));
>>>>>>>> +    task.tf_flags = IDE_TFLAG_OUT_DEVICE;
>>>>>>>> +
>>>>>>>> +    drive->hwif->tf_load(drive, &task);

>>>>>>>   This actually doesn't seem like a bright idea to me, 
>>>>>>> considering that this gets called when starting every request. 
>>>>>>> How will you look at me adding the transport method for writing 
>>>>>>> this register? :-)

>>>> Please check profiles first -- it might not be worth it. [1]

>>>>>> Convert SELECT_DRIVE() to use ->tf_load instead of ->OUTB.

>>>>>>  OTOH, adding such a "backdoor" to the taskfile doesn't seem very 
>>>>>> consistent... well, I'm not excited about the whole idea 
>>>>>> conversion to tf_{load|read}() -- it's not clear what exactly this 
>>>>>> bought us.

>>>> This was explained some months ago already, so just to recall -- it was
>>>> a part of a bigger work removing duplicated code and allowing 
>>>> abstraction
>>>> of the ATA logic.

>>>> Anyway this is not set in a stone so if you have proposal of a better
>>>> approach please come forward with it.

>>>   Er... I think that the previous IN()/OUT() methods were better. 
>>> Note that we ended up using the local version of them in the dafault 
>>> ide_tf_{load}read}() anyway -- as Alan has pointed out it might be worth 

>> During ide_tf_{load,read}() addition I was a bit too optimistic about
>> the possibility of the quick io{read,write}* conversion later...

>>> splitting those into I/O and memory space versions... although given 
>>> general slowness of the I/O accesses, this is probably not going to 
>>> win much speed-wise.

>> Maybe it would be worth to add ->tf_{inb,outb} to struct ide_tp_ops
>> and convert default tp_ops to use them...  OTOH we should reinvestigate
>> the io{read,write}*() way first (maybe things have improved there)...

>    Yes, let's not be hasty here...

    What I certainly don't like is how tf_load/read() handle LBA48: there's 
much of the code duplication going on. I'll think what can be done about it 
but it may not be easy to tackle... it looks like 'struct ide_taskfile' needs 
to be reorganized to include 2 6-byte sub-structures.

>> Thanks,
>> Bart

MBR, Sergei


  reply	other threads:[~2009-03-04 15:43 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-20 21:33 [PATCH 01/18] ide: add ->read_sff_dma_status method Bartlomiej Zolnierkiewicz
2008-06-20 21:33 ` [PATCH 02/18] ide: use I/O ops directly in ide-dma.c Bartlomiej Zolnierkiewicz
2008-09-08 15:49   ` Sergei Shtylyov
2008-06-20 21:33 ` [PATCH 03/18] ide: remove ->dma_{status,command} fields from ide_hwif_t Bartlomiej Zolnierkiewicz
2008-06-20 21:33 ` [PATCH 04/18] ide: remove ide_setup_dma() Bartlomiej Zolnierkiewicz
2008-06-20 22:03   ` Sergei Shtylyov
2008-06-21 19:06     ` Bartlomiej Zolnierkiewicz
2008-06-21 19:29       ` Sergei Shtylyov
2008-08-21 17:16   ` Sergei Shtylyov
2008-08-21 17:56     ` Sergei Shtylyov
2008-06-20 21:33 ` [PATCH 05/18] ide: factor out simplex handling from ide_pci_dma_base() Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 06/18] ide: add ->exec_command method Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 07/18] ide: add ->read_status method Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 08/18] ide: add ->read_altstatus method Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 09/18] ide: add ->set_irq method Bartlomiej Zolnierkiewicz
2008-10-15 12:20   ` Sergei Shtylyov
2008-10-15 18:22     ` Bartlomiej Zolnierkiewicz
2008-10-15 21:22       ` Sergei Shtylyov
2008-06-20 21:34 ` [PATCH 10/18] ide: change order of register access in ide_config_drive_speed() Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 11/18] ide: use ->tf_load " Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 12/18] ide: use ->tf_load in actual_try_to_identify() Bartlomiej Zolnierkiewicz
2008-06-20 23:14   ` Sergei Shtylyov
2008-06-21 19:10     ` Bartlomiej Zolnierkiewicz
2008-06-20 21:34 ` [PATCH 13/18] ide: use ->tf_load in SELECT_DRIVE() Bartlomiej Zolnierkiewicz
2009-02-15 20:25   ` Sergei Shtylyov
2009-02-16  0:08     ` Sergei Shtylyov
2009-02-16 11:50       ` Sergei Shtylyov
2009-02-16 21:51         ` Bartlomiej Zolnierkiewicz
2009-02-17  1:04           ` Sergei Shtylyov
2009-02-17 14:43             ` Bartlomiej Zolnierkiewicz
2009-02-17 15:32               ` Sergei Shtylyov
2009-03-04 15:43                 ` Sergei Shtylyov [this message]
2009-02-17 12:23       ` Sergei Shtylyov
2009-02-17 15:13         ` Sergei Shtylyov
2008-06-20 21:34 ` [PATCH 14/18] ide: use ->tf_read in ide_read_error() Bartlomiej Zolnierkiewicz
2009-02-15 23:21   ` Sergei Shtylyov
2009-02-16 12:13     ` Sergei Shtylyov
2009-02-16 12:25       ` Sergei Shtylyov
2009-02-16 21:17         ` Bartlomiej Zolnierkiewicz
2009-02-17  0:14           ` Sergei Shtylyov
2009-02-17  0:50             ` Sergei Shtylyov
2008-06-20 21:35 ` [PATCH 15/18] ide: add ide_read_device() helper Bartlomiej Zolnierkiewicz
2008-06-20 21:35 ` [PATCH 16/18] ide: add ide_read_ireason() helper Bartlomiej Zolnierkiewicz
2008-06-20 21:35 ` [PATCH 17/18] ide: add ide_read_bcount_and_ireason() helper Bartlomiej Zolnierkiewicz
2008-06-20 21:35 ` [PATCH 18/18] ide: remove ->INB, ->OUTB and ->OUTBSYNC methods Bartlomiej Zolnierkiewicz
2008-09-03 13:19 ` [PATCH 01/18] ide: add ->read_sff_dma_status method Sergei Shtylyov
2008-09-03 18:13   ` Bartlomiej Zolnierkiewicz
2008-09-07 18:15     ` Sergei Shtylyov
2008-09-07 18:49       ` Sergei Shtylyov
2008-09-07 19:23       ` Bartlomiej Zolnierkiewicz
2008-09-07 22:26         ` 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=49AEA1B1.3050008@ru.mvista.com \
    --to=sshtylyov@ru.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 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.