From owner-svn-src-stable@FreeBSD.ORG Mon Nov 22 17:09:42 2010 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF378106566C; Mon, 22 Nov 2010 17:09:42 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CD1378FC1E; Mon, 22 Nov 2010 17:09:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id oAMH9gt8099028; Mon, 22 Nov 2010 17:09:42 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oAMH9gto099026; Mon, 22 Nov 2010 17:09:42 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201011221709.oAMH9gto099026@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 22 Nov 2010 17:09:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r215692 - stable/8/sys/powerpc/powermac X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Nov 2010 17:09:43 -0000 Author: nwhitehorn Date: Mon Nov 22 17:09:42 2010 New Revision: 215692 URL: http://svn.freebsd.org/changeset/base/215692 Log: MFC r215100: Disabling CPU NAP modes during SMU commands is a hack needed only on U3 systems. Don't use it on non-U3 systems to allow cpu_idle() to work correctly. Modified: stable/8/sys/powerpc/powermac/smu.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/powerpc/powermac/smu.c ============================================================================== --- stable/8/sys/powerpc/powermac/smu.c Mon Nov 22 17:06:24 2010 (r215691) +++ stable/8/sys/powerpc/powermac/smu.c Mon Nov 22 17:09:42 2010 (r215692) @@ -89,6 +89,7 @@ struct smu_softc { struct resource *sc_memr; int sc_memrid; + int sc_u3; bus_dma_tag_t sc_dmatag; bus_space_tag_t sc_bt; @@ -243,6 +244,10 @@ smu_attach(device_t dev) sc->sc_cur_cmd = NULL; sc->sc_doorbellirqid = -1; + sc->sc_u3 = 0; + if (OF_finddevice("/u3") != -1) + sc->sc_u3 = 1; + /* * Map the mailbox area. This should be determined from firmware, * but I have not found a simple way to do that. @@ -361,7 +366,9 @@ smu_send_cmd(device_t dev, struct smu_cm mtx_assert(&sc->sc_mtx, MA_OWNED); - powerpc_pow_enabled = 0; /* SMU cannot work if we go to NAP */ + if (sc->sc_u3) + powerpc_pow_enabled = 0; /* SMU cannot work if we go to NAP */ + sc->sc_cur_cmd = cmd; /* Copy the command to the mailbox */ @@ -408,7 +415,8 @@ smu_doorbell_intr(void *xdev) sizeof(sc->sc_cmd->data)); wakeup(sc->sc_cur_cmd); sc->sc_cur_cmd = NULL; - powerpc_pow_enabled = 1; + if (sc->sc_u3) + powerpc_pow_enabled = 1; done: /* Queue next command if one is pending */