From owner-freebsd-acpi@FreeBSD.ORG Mon Jan 3 02:59:42 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BC6DF16A4CE for ; Mon, 3 Jan 2005 02:59:42 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7B56943D2D for ; Mon, 3 Jan 2005 02:59:42 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.5.50] (adsl-64-171-186-95.dsl.snfc21.pacbell.net [64.171.186.95]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j032xaGV025261 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 2 Jan 2005 18:59:38 -0800 Message-ID: <41D8B4D2.4050700@root.org> Date: Sun, 02 Jan 2005 18:58:26 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: takawata@jp.freebsd.org References: <200501021735.j02HZWAs017587@sana.init-main.com> In-Reply-To: <200501021735.j02HZWAs017587@sana.init-main.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: sam@errno.com cc: freebsd-acpi@freebsd.org Subject: Re: ACPI C3 patch for atheros X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jan 2005 02:59:42 -0000 takawata@jp.freebsd.org wrote: > Happy Newyear! > I was pity to be unable to use atheros wlan adaptor on FreeBSD > with ACPI. > > I checked madwifi archive and I found problem much alike with me in Linux > and the fix. It seems that it can easyly be applyed to FreeBSD, > so I tried following patch and it works. > > How about this? > And should it be in PCI framework? > > Index: if_ath_pci.c > =================================================================== > RCS file: /home/ncvs/src/sys/dev/ath/if_ath_pci.c,v > retrieving revision 1.10 > diff -u -r1.10 if_ath_pci.c > --- if_ath_pci.c 31 Dec 2004 22:41:45 -0000 1.10 > +++ if_ath_pci.c 2 Jan 2005 17:30:21 -0000 > @@ -109,6 +109,9 @@ > bzero(psc, sizeof (*psc)); > sc->sc_dev = dev; > > + /*Disable RETRY_TIMEOUT */ > + pci_write_config(dev, 0x41, 0, 1 ); > + > cmd = pci_read_config(dev, PCIR_COMMAND, 4); > cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; > pci_write_config(dev, PCIR_COMMAND, cmd, 4); > @@ -248,6 +251,7 @@ > struct ath_pci_softc *psc = device_get_softc(dev); > u_int16_t cmd; > > + pci_write_config(dev, 0x41, 0, 1 ); > pci_write_config(dev, PCIR_INTLINE, psc->sc_saved_intline, 1); > pci_write_config(dev, PCIR_CACHELNSZ, psc->sc_saved_cachelinesz, 1); > pci_write_config(dev, PCIR_LATTIMER, psc->sc_saved_lattimer, 1); Sorry, I don't know enough about the semantics of this config space variable to comment in much detail. 0x41 should be a PCIR_ #define though. It looks like these config writes in ath_pci_attach() should probably be done in the PCI bus but they may be driver-specific. The saves of config space in ath_pci_suspend/resume() are definitely suspect since we save/resume all config space now. See sys/dev/pci/pci.c One other comment: you don't need to bzero a softc since it's allocated with M_ZERO. -- Nate