From owner-svn-src-head@freebsd.org Sat Jun 23 15:03:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB93A1024219; Sat, 23 Jun 2018 15:03:55 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 66FA085AB7; Sat, 23 Jun 2018 15:03:55 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42F9F11704; Sat, 23 Jun 2018 15:03:55 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w5NF3tTA053056; Sat, 23 Jun 2018 15:03:55 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w5NF3sN0053054; Sat, 23 Jun 2018 15:03:54 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201806231503.w5NF3sN0053054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 23 Jun 2018 15:03:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r335581 - head/sys/arm/allwinner/clkng X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner/clkng X-SVN-Commit-Revision: 335581 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jun 2018 15:03:56 -0000 Author: manu Date: Sat Jun 23 15:03:54 2018 New Revision: 335581 URL: https://svnweb.freebsd.org/changeset/base/335581 Log: allwinner: clkng: Correct mux width and flags The test for checking if the clock have a mux was inverted and the mask to calculate the parent index was wrong was wrong too. It means that upon creation the incorrect parent was resolved as the current one and upon reparent the switch was never made. Pointy hat (lots of them): manu Modified: head/sys/arm/allwinner/clkng/aw_clk_nkmp.c head/sys/arm/allwinner/clkng/aw_clk_nm.c Modified: head/sys/arm/allwinner/clkng/aw_clk_nkmp.c ============================================================================== --- head/sys/arm/allwinner/clkng/aw_clk_nkmp.c Sat Jun 23 10:41:52 2018 (r335580) +++ head/sys/arm/allwinner/clkng/aw_clk_nkmp.c Sat Jun 23 15:03:54 2018 (r335581) @@ -128,12 +128,12 @@ aw_clk_nkmp_set_mux(struct clknode *clk, int index) sc = clknode_get_softc(clk); - if ((sc->flags & AW_CLK_HAS_MUX) != 0) + if ((sc->flags & AW_CLK_HAS_MUX) == 0) return (0); DEVICE_LOCK(clk); READ4(clk, sc->offset, &val); - val &= ~(sc->mux_mask >> sc->mux_shift); + val &= ~sc->mux_mask; val |= index << sc->mux_shift; WRITE4(clk, sc->offset, val); DEVICE_UNLOCK(clk); Modified: head/sys/arm/allwinner/clkng/aw_clk_nm.c ============================================================================== --- head/sys/arm/allwinner/clkng/aw_clk_nm.c Sat Jun 23 10:41:52 2018 (r335580) +++ head/sys/arm/allwinner/clkng/aw_clk_nm.c Sat Jun 23 15:03:54 2018 (r335581) @@ -125,12 +125,12 @@ aw_clk_nm_set_mux(struct clknode *clk, int index) sc = clknode_get_softc(clk); - if ((sc->flags & AW_CLK_HAS_MUX) != 0) + if ((sc->flags & AW_CLK_HAS_MUX) == 0) return (0); DEVICE_LOCK(clk); READ4(clk, sc->offset, &val); - val &= ~(sc->mux_mask >> sc->mux_shift); + val &= ~sc->mux_mask; val |= index << sc->mux_shift; WRITE4(clk, sc->offset, val); DEVICE_UNLOCK(clk);