From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tejun Heo Subject: Re: [PATCH 1/3] libata: implement dev->acpi_init_gtm Date: Sat, 03 Nov 2007 16:10:08 +0900 Message-ID: <472C1ED0.5080407@gmail.com> References: <472B402A.4030009@gmail.com> <472B43E6.2020402@garzik.org> <472BA0D6.3050607@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from rv-out-0910.google.com ([209.85.198.190]:22689 "EHLO rv-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751414AbXKCHKP (ORCPT ); Sat, 3 Nov 2007 03:10:15 -0400 Received: by rv-out-0910.google.com with SMTP id k20so994098rvb for ; Sat, 03 Nov 2007 00:10:15 -0700 (PDT) In-Reply-To: <472BA0D6.3050607@gmail.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Jeff Garzik Cc: IDE/ATA development list , Alan Cox Tejun Heo wrote: > Jeff Garzik wrote: >> Tejun Heo wrote: >>> Add dev->acpi_init_gtm and store initial GTM values on host >>> initialization. If the field is valid, ATA_PFLAG_INIT_GTM_VALID flag >>> is set. This is to remember BIOS/firmware programmed initial timing >>> for later use before reset and mode configuration modify it. >>> >>> Signed-off-by: Tejun Heo >> It sounds like pata_via and pata_amd need a foo_save_initial_config() >> much like AHCI, during which they would fill ppriv->init_gtm rather than >> ap->init_gtm. Thoughts? Both drivers are calling ata_acpi_cbl() >> themselves, permitting the possibility of ppriv->init_gtm. >> >> This avoids forcing everyone else to bear the memory cost in ata_port >> for just these two drivers. > > The memory overhead is pretty small and more importantly there isn't a > good place to load initial GTM. ACPI is associated with the host during > host registration after all private host initialization is complete. > When the EH gets invoked, the first thing which is done is forcing PIO0 > before initial reset. > > Unless we add another hook, the only place to put this is in private > ->error_handler(). A driver can check whether it's being called for the > first time and record it in private structure, which isn't too pretty, > so I thought doing it this way was fair tradeoff. Jeff, do you agree or still think it's better done in LLDs? I'm okay either way. Thanks. -- tejun