From owner-svn-src-head@freebsd.org Fri Mar 6 21:51:29 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 91FC7251F97; Fri, 6 Mar 2020 21:51:29 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Z1Xc5k7Hz4qHM; Fri, 6 Mar 2020 21:51:28 +0000 (UTC) (envelope-from andreast@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 8614326ABB; Fri, 6 Mar 2020 21:51:28 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 026LpSOl082572; Fri, 6 Mar 2020 21:51:28 GMT (envelope-from andreast@FreeBSD.org) Received: (from andreast@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 026LpSfe082571; Fri, 6 Mar 2020 21:51:28 GMT (envelope-from andreast@FreeBSD.org) Message-Id: <202003062151.026LpSfe082571@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andreast set sender to andreast@FreeBSD.org using -f From: Andreas Tobler Date: Fri, 6 Mar 2020 21:51:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358724 - head/sys/powerpc/powermac X-SVN-Group: head X-SVN-Commit-Author: andreast X-SVN-Commit-Paths: head/sys/powerpc/powermac X-SVN-Commit-Revision: 358724 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.29 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: Fri, 06 Mar 2020 21:51:29 -0000 Author: andreast Date: Fri Mar 6 21:51:28 2020 New Revision: 358724 URL: https://svnweb.freebsd.org/changeset/base/358724 Log: Drop 'All rights reserved' Replace hardcoded sizes by nitems and sizeof Replace CTLFLAG_NEEDGIANT with CTLFLAG_MPSAFE, I run this driver since a few years with CTLFLAG_MPSAFE w/o issues. Modified: head/sys/powerpc/powermac/fcu.c Modified: head/sys/powerpc/powermac/fcu.c ============================================================================== --- head/sys/powerpc/powermac/fcu.c Fri Mar 6 21:32:42 2020 (r358723) +++ head/sys/powerpc/powermac/fcu.c Fri Mar 6 21:51:28 2020 (r358724) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2010 Andreas Tobler - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -152,7 +151,7 @@ fcu_write(device_t dev, uint32_t addr, uint8_t reg, ui for (;;) { - if (iicbus_transfer(dev, msg, 1) == 0) + if (iicbus_transfer(dev, msg, nitems(msg)) == 0) return (0); if (++try > 5) { @@ -176,7 +175,7 @@ fcu_read_1(device_t dev, uint32_t addr, uint8_t reg, u for (;;) { - err = iicbus_transfer(dev, msg, 2); + err = iicbus_transfer(dev, msg, nitems(msg)); if (err != 0) goto retry; @@ -250,8 +249,8 @@ fcu_start(void *xdev) sc = device_get_softc(dev); /* Start the fcu device. */ - fcu_write(sc->sc_dev, sc->sc_addr, 0xe, buf, 1); - fcu_write(sc->sc_dev, sc->sc_addr, 0x2e, buf, 1); + fcu_write(sc->sc_dev, sc->sc_addr, 0xe, buf, sizeof(buf)); + fcu_write(sc->sc_dev, sc->sc_addr, 0x2e, buf, sizeof(buf)); fcu_read_1(sc->sc_dev, sc->sc_addr, 0, buf); fcu_rpm_shift = (buf[0] == 1) ? 2 : 3; @@ -290,7 +289,7 @@ fcu_fan_set_rpm(struct fcu_fan *fan, int rpm) buf[0] = rpm >> (8 - fcu_rpm_shift); buf[1] = rpm << fcu_rpm_shift; - if (fcu_write(sc->sc_dev, sc->sc_addr, reg, buf, 2) < 0) + if (fcu_write(sc->sc_dev, sc->sc_addr, reg, buf, sizeof(buf)) < 0) return (EIO); return (0); @@ -323,7 +322,7 @@ fcu_fan_get_rpm(struct fcu_fan *fan) return (-1); if ((fail & (1 << fan->id)) != 0) { device_printf(fan->dev, - "RPM Fan failed ID: %d\n", fan->id); + "RPM Fan failed ID: %d %#x\n", fan->id, fail); return (-1); } /* Check if fan is active. */ @@ -356,7 +355,7 @@ fcu_fan_set_pwm(struct fcu_fan *fan, int pwm) { uint8_t reg; struct fcu_softc *sc; - uint8_t buf[2]; + uint8_t buf[1]; sc = device_get_softc(fan->dev); @@ -378,7 +377,7 @@ fcu_fan_set_pwm(struct fcu_fan *fan, int pwm) buf[0] = (pwm * 2550) / 1000; - if (fcu_write(sc->sc_dev, sc->sc_addr, reg, buf, 1) < 0) + if (fcu_write(sc->sc_dev, sc->sc_addr, reg, buf, sizeof(buf)) < 0) return (EIO); return (0); } @@ -632,8 +631,9 @@ fcu_attach_fans(device_t dev) "Maximum allowed RPM"); /* I use i to pass the fan id. */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "rpm", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - dev, i, fcu_fanrpm_sysctl, "I", "Fan RPM"); + "rpm", CTLTYPE_INT | CTLFLAG_RW | + CTLFLAG_MPSAFE, dev, i, + fcu_fanrpm_sysctl, "I", "Fan RPM"); } else { fcu_fan_get_pwm(dev, &sc->sc_fans[i], &sc->sc_fans[i].setpoint, @@ -654,13 +654,14 @@ fcu_attach_fans(device_t dev) * of info I want to display/modify. */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "pwm", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - dev, FCU_PWM_SYSCTL_PWM | i, fcu_fanrpm_sysctl, "I", - "Fan PWM in %"); - SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "rpm", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, - dev, FCU_PWM_SYSCTL_RPM | i, fcu_fanrpm_sysctl, "I", - "Fan RPM"); + "pwm", CTLTYPE_INT | CTLFLAG_RW | + CTLFLAG_MPSAFE, dev, + FCU_PWM_SYSCTL_PWM | i, + fcu_fanrpm_sysctl, "I", "Fan PWM in %"); + "rpm", CTLTYPE_INT | CTLFLAG_RD | + CTLFLAG_MPSAFE, dev, + FCU_PWM_SYSCTL_RPM | i, + fcu_fanrpm_sysctl, "I", "Fan RPM"); } }