From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergei Shtylyov Subject: Re: [PATCH 13/18] ide: use ->tf_load in SELECT_DRIVE() Date: Tue, 17 Feb 2009 18:13:01 +0300 Message-ID: <499AD3FD.6040109@ru.mvista.com> References: <20080620213323.13202.71450.sendpatchset@localhost.localdomain> <20080620213451.13202.12671.sendpatchset@localhost.localdomain> <49987A37.9000300@ru.mvista.com> <4998AE87.3020502@ru.mvista.com> <499AAC24.70200@ru.mvista.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from h155.mvista.com ([63.81.120.155]:25888 "EHLO imap.sh.mvista.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752247AbZBQPMl (ORCPT ); Tue, 17 Feb 2009 10:12:41 -0500 In-Reply-To: <499AAC24.70200@ru.mvista.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Sergei Shtylyov Cc: Bartlomiej Zolnierkiewicz , linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org Hello, I wrote: >>>> There should be no functional changes caused by this patch. >>>> Signed-off-by: Bartlomiej Zolnierkiewicz >>>> 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? :-) >> Convert SELECT_DRIVE() to use ->tf_load instead of ->OUTB. >> OTOH, adding such a "backdoor" to the taskfile doesn't seem very >> consistent... > ... which didn't prevent libata from having such backdoor though, in > the form of dev_select() method. Oh, and I forgot about the IDE core's infamous selectproc() method which could easily be taught to also write the device/head register and moved to 'struct ide_tp_ops'. MBR, Sergei