From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 15 19:40:58 2014 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 90F1412D for ; Tue, 15 Jul 2014 19:40:58 +0000 (UTC) Received: from nm2.access.bullet.mail.gq1.yahoo.com (nm2.access.bullet.mail.gq1.yahoo.com [216.39.62.33]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4553D2C77 for ; Tue, 15 Jul 2014 19:40:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=att.net; s=s2048; t=1405453156; bh=z6GVkGMYf3XDoLpV9pTn1uggVmGV8V3/o0M3Hzuf1is=; h=Received:Received:Received:DKIM-Signature:X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type; b=IsmYpg0uYQIUe+FGkxNiKmu95cCIS8jOv1qUUaIAtKbOFk/Cr21x/IVPflXFTqm4bBjquW+ZaNcSX8qt/UIxtJOARAdObiUVAqpa8g6OyRUxT6zXxhcxpyBaZmWYVV8HksNldGiGo76HCjhfT1DoZ+K80nluvrI+DZHdhbPrxTAUIe07dUewWYHIUUbh6tg/g5p7B0bluFlmvl57Z1K/56ktFkK7pvccnRYqBdQHkD7oPW0vhsPLj7xmXOK5VCZ0NWSyfylSHBVLPkqxhuPnM5yD97KURZ7kyj5WFb1S/NvT/XY4gFYmoAPSKaI5aOF/nxCih+j2rqUp4bn24124UQ== DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=att.net; b=JmRWFbwwC8scO12PRzhWJ2fTWNUSnAS3pJWUIxwziuO0+gJwCnbHdzUcZ8eAQ4wOwJwVWGYUlgqZSGU/khUC8QLpFBvDYvT9bFCeW8aXHiXbqi4WUleF6uUBCm41USnOlEPS/Vi1yOne4FMp6T+3GESHLCxTNtClzuthAAy3U6xxc3QwcFOhVFxg64vEdAjKvRLSiXvoQQzPUIRqSFGMTNI0xbDQSF0i9sIhXPCVGO0JXadDJk7m7D2ECqL1+R7hm+P6CF1QtgIkkqiFwQKJdVaPHtieFzlUKystl0M64VoBUKSiAL+f62GWMGmXE6Thi00K1kfbM/J63mk7VZWULA==; Received: from [216.39.60.170] by nm2.access.bullet.mail.gq1.yahoo.com with NNFMP; 15 Jul 2014 19:39:16 -0000 Received: from [98.138.226.240] by tm6.access.bullet.mail.gq1.yahoo.com with NNFMP; 15 Jul 2014 19:39:16 -0000 Received: from [127.0.0.1] by smtp111.sbc.mail.ne1.yahoo.com with NNFMP; 15 Jul 2014 19:39:16 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=att.net; s=s1024; t=1405453156; bh=z6GVkGMYf3XDoLpV9pTn1uggVmGV8V3/o0M3Hzuf1is=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type; b=YMWDlHv8zVN8IGH3AZPg+HkelJIPcG9fQPZFV+OwStGRTtHNGL4ubEG/lKOWLoBzqd0mYBZOnh8A9734zDy3nLrkhAWcfaYBy6V13v3MeVd5XcFCjV4RiMAcMGrFsdbxTJfSDR5e4k5nCHiD+UtPioNAqvou0/tE4Ez+J1K4FVY= X-Yahoo-Newman-Id: 216656.83282.bm@smtp111.sbc.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: YFLVv.cVM1ngvpjys8bV9_ajm.a5RMcp7eyLd4_nDJw5tLB tq.p6ZRwsI3WJteuiSOefgD9Ns1nZDJqyCYv7lXxN6AJeKc.Ce0oNLmYw2EJ 1aOYpVnOg4zxtFioRqVPmZOscGVFAuD1tGqkRHA_9uorVB0sjmIuwNOdTZMR EjU_byzRW9EK28O1Omh6zeaGqsZ2KTaQLRV1mu9UufU8YHhjri9_CyOZCf4m atqCwHsNRO6I6tTfPI5NK0TMGJJy9gAT3iUAIx5gf6QcWbp4AtFDoi_fnpYa OOXOv4pB_US1DSwFbuggotDTGcKpsQDtU6aFfnTIH8HMX07XeVQYTizg2dY5 aRVn5Y4Gwj5i25Fmd41Fvu9nrsoCyNS07GWZhTO6S2V9WiHUXg35JXTnQHaA oULQg4qBwrkZhuKOgCNCD9n7eEMVzER48f4IHhDBYG3Ej.rRRoYatjpnPlQh ckyErYHj6rYTkv6OrN0p59MY7f9eGhChHPqRgOIoP7FuR7a_F1G08MKxtexv VW7lYl75Ty5JdViNhiR0ShMUdBXrS12.tOkGD9befBEXONHgt4R2ZeUwE7qU NssgJ6.nf59x5ask0oEbjaYPG.PZOnxvGBPrl4sNgp8g2XjJeh4kc8zg45g- - X-Yahoo-SMTP: OKD1keCswBBTAmAF1s00hLyKW3wE3YfSK0Eazl6b4VZG4LTqJxg- Message-ID: <53C58363.6050809@att.net> Date: Tue, 15 Jul 2014 15:39:15 -0400 From: Anthony Jenkins User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Daniele Mazzotti Subject: Re: ACPI support - Freebsd 10 on Sony Vaio VPCCA3C5E References: <53BF0546.70505@att.net> <53BFCBF4.2090104@att.net> <53C020CE.8010205@att.net> <53C02604.9070207@att.net> <53C3D322.3080302@att.net> In-Reply-To: Content-Type: multipart/mixed; boundary="------------050503070806000304030204" Cc: freebsd-acpi@freebsd.org X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2014 19:40:58 -0000 This is a multi-part message in MIME format. --------------050503070806000304030204 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 07/15/2014 13:49, Daniele Mazzotti wrote: > Hello Anthony, > I just noticed that I forgot to answer the part where you proposed me to > "patch" my ACPI. Unfortunately I am running and AMD 64 architecture and I > do not think this is fitting with what you already patched. x86-based architectures use my patch, including amd64. It patches the sys/x86/isa/atrtc.c driver. I'll attach it... might fix some stuff. I've been running it on my laptop for several weeks and posted it to this newsgroup some time ago, so it should be safe at least. # cd /usr/src && patch < path/to/atrtc.c.patch > By the way I am not sure that what I wrote is that relevant to you, but I > just wanted to give you the feeling that I am not just passively requiring > help. Not at all... I'm scared I can't really help you with your problem. At least it helps me learn ACPI. Anthony P.S. I alternate between top-posting and bottom-posting, depending on the audience...I know I've switched at least twice in this thread. > Cheers, > Daniele. > > > 2014-07-14 20:21 GMT+02:00 Daniele Mazzotti : > >> Hi Anthony, >> >> no problem for the "delay". I did not expect you to answer 5 seconds or 5 >> minutes after my email as I think we all have lives and jobs that keep us >> busy quite a lot. So, no problem at all! >> >> Regarding the issue we are discussing about, I think I already posted the >> output of "acpidump -dt" here http://pastebin.com/F0a2mZP4 and I also >> tried to understand a bit of the contents but I had no luck. Unfortunately >> I am not so much into this ACPI thing, but I am very interested to know how >> it works and fix (my.... maybe also someone's else) bug. >> >> I followed your recommendation and enabled the debug in the loader.conf. >> You can find my output here: http://pastebin.com/JXMjBhyx. >> Thanks again for the precious help. >> >> Cheers, >> Daniele. >> --------------050503070806000304030204 Content-Type: text/x-patch; name="atrtc.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="atrtc.c.patch" Index: sys/x86/isa/atrtc.c =================================================================== --- sys/x86/isa/atrtc.c (revision 267519) +++ sys/x86/isa/atrtc.c (working copy) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include "opt_isa.h" +#include "opt_acpi.h" #include #include @@ -53,6 +54,10 @@ #include #include "clock_if.h" +#include +#include +#include + #define RTC_LOCK do { if (!kdb_active) mtx_lock_spin(&clock_lock); } while (0) #define RTC_UNLOCK do { if (!kdb_active) mtx_unlock_spin(&clock_lock); } while (0) @@ -161,8 +166,33 @@ struct resource *intr_res; void *intr_handler; struct eventtimer et; + ACPI_HANDLE acpi_handle; /* Handle of the PNP0B00 node */ }; +static ACPI_STATUS +acpi_rtc_cmos_handler(UINT32 function, ACPI_PHYSICAL_ADDRESS address, UINT32 width, + UINT64 *value, void *context, void *region_context) +{ + struct atrtc_softc *sc; + + sc = (struct atrtc_softc *)context; + if (!value || !sc) + return AE_BAD_PARAMETER; + if (width != 8 || address >= 64U) + return AE_BAD_PARAMETER; + switch (function) { + case ACPI_READ: + *((UINT8 *)value) = rtcin((int)address); + break; + case ACPI_WRITE: + writertc((int)address, *((UINT8 *)value)); + break; + default: + return AE_BAD_PARAMETER; + } + return AE_OK; +} + static int rtc_start(struct eventtimer *et, sbintime_t first, sbintime_t period) { @@ -245,10 +275,17 @@ int i; sc = device_get_softc(dev); + sc->acpi_handle = acpi_get_handle(dev); sc->port_res = bus_alloc_resource(dev, SYS_RES_IOPORT, &sc->port_rid, IO_RTC, IO_RTC + 1, 2, RF_ACTIVE); if (sc->port_res == NULL) device_printf(dev, "Warning: Couldn't map I/O.\n"); + if (ACPI_FAILURE(AcpiInstallAddressSpaceHandler(sc->acpi_handle, + ACPI_ADR_SPACE_CMOS, acpi_rtc_cmos_handler, NULL, sc))) + { + device_printf(dev, "Error registering ACPI CMOS address space handler.\n"); + return 0; + } atrtc_start(); clock_register(dev, 1000000); bzero(&sc->et, sizeof(struct eventtimer)); @@ -286,6 +323,15 @@ return(0); } +static int atrtc_detach(device_t dev) +{ + struct atrtc_softc *sc; + + sc = device_get_softc(dev); + AcpiRemoveAddressSpaceHandler(sc->acpi_handle, ACPI_ADR_SPACE_CMOS, acpi_rtc_cmos_handler); + return bus_generic_detach(dev); +} + static int atrtc_resume(device_t dev) { @@ -366,7 +412,7 @@ /* Device interface */ DEVMETHOD(device_probe, atrtc_probe), DEVMETHOD(device_attach, atrtc_attach), - DEVMETHOD(device_detach, bus_generic_detach), + DEVMETHOD(device_detach, atrtc_detach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), /* XXX stop statclock? */ @@ -402,3 +448,4 @@ rtcin(RTC_STATUSA), rtcin(RTC_STATUSB), rtcin(RTC_INTR)); } #endif /* DDB */ + --------------050503070806000304030204--