From owner-svn-src-head@FreeBSD.ORG Wed Feb 4 00:22:50 2015 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CE82C4DE for ; Wed, 4 Feb 2015 00:22:50 +0000 (UTC) Received: from mail-pa0-f42.google.com (mail-pa0-f42.google.com [209.85.220.42]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9FF117D3 for ; Wed, 4 Feb 2015 00:22:50 +0000 (UTC) Received: by mail-pa0-f42.google.com with SMTP id bj1so102888762pad.1 for ; Tue, 03 Feb 2015 16:22:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=+/6DjI+muHb97RIYlJMBlauDCHLFX3/jnmbFlQ8zvfg=; b=NaHPvvSGJ6jlDqL0+vbnq7zNYWYSIjxyhuu8UXZrBm7x+sRVyAaLtrmCfUjKFRlcqu VLUIbjGE4T5Wj/7uza0yTd68sD/tEPyoU6j+2iJEBAod556V9CfDBtjpXk2SwoISBgsi D6afHWQocJl0myRcNdPZP/XKgqA4k4mHTcMX6ZD4tyT1aiYyvkANUy/hcbERtvVuOOtm qcXNnlUt9xlvStNwgOvarchMoU+xEqfFPiKvz114D8QmIyrV+KHjK630kGPs4uVm6nGQ Fg61mF7BdBPDtmBd1F45O1LtdLHcxOxrKS0wWY3b/DPd2pgs++mR2/WhnROD9mYS8D85 zhkw== X-Gm-Message-State: ALoCoQlYAay/W8+1mqypQyNc6q8nNgYNyxb4du8CWsCqp5nuAn1BTs1ZMx2K1VBOiICOqlvlgP4x X-Received: by 10.68.125.197 with SMTP id ms5mr42538461pbb.12.1423009364699; Tue, 03 Feb 2015 16:22:44 -0800 (PST) Received: from [10.64.26.90] ([69.53.236.236]) by mx.google.com with ESMTPSA id n3sm33521pdf.95.2015.02.03.16.22.43 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 03 Feb 2015 16:22:44 -0800 (PST) Sender: Warner Losh Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) Subject: Re: svn commit: r278108 - head/sys/dev/gpio From: Warner Losh In-Reply-To: <54CFDBAF.2010003@freebsd.org> Date: Tue, 3 Feb 2015 17:22:41 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <40055CE4-282E-4D9C-AD06-06331EAE5F5F@bsdimp.com> References: <201502021922.t12JMZDE040713@svn.freebsd.org> <54CFCEF5.70200@freebsd.org> <1422907737.15718.291.camel@freebsd.org> <54CFDBAF.2010003@freebsd.org> To: Nathan Whitehorn X-Mailer: Apple Mail (2.2070.6) Cc: Luiz Otavio O Souza , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Ian Lepore X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 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: Wed, 04 Feb 2015 00:22:50 -0000 > On Feb 2, 2015, at 1:18 PM, Nathan Whitehorn = wrote: >=20 > On 02/02/15 12:08, Ian Lepore wrote: >> On Mon, 2015-02-02 at 11:24 -0800, Nathan Whitehorn wrote: >>> Please don't condition things like this on FDT. They are useful on = Open >>> Firmware systems too. >>> -Nathan >>>=20 >>=20 >> Is there something defined for OFW? The gpio code needs to work on >> hint-based (not-FDT and not-OFW) mips systems too. >=20 > There isn't right now, so far as I'm aware, but there should be. > -Nathan It=92s a one-liner in sys/conf/options to have DEV_OFWBUS defined whenever ofwbus is in the kernel. Warner >> -- Ian >>=20 >>=20 >>> On 02/02/15 11:22, Luiz Otavio O Souza wrote: >>>> Author: loos >>>> Date: Mon Feb 2 19:22:34 2015 >>>> New Revision: 278108 >>>> URL: https://svnweb.freebsd.org/changeset/base/278108 >>>>=20 >>>> Log: >>>> Register the GPIO controller device reference on xref table for = FDT systems. >>>>=20 >>>> Modified: >>>> head/sys/dev/gpio/gpiobus.c >>>> head/sys/dev/gpio/gpiobusvar.h >>>> head/sys/dev/gpio/ofw_gpiobus.c >>>>=20 >>>> Modified: head/sys/dev/gpio/gpiobus.c >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/dev/gpio/gpiobus.c Mon Feb 2 19:00:18 2015 = (r278107) >>>> +++ head/sys/dev/gpio/gpiobus.c Mon Feb 2 19:22:34 2015 = (r278108) >>>> @@ -143,6 +143,9 @@ gpiobus_attach_bus(device_t dev) >>>> device_delete_child(dev, busdev); >>>> return (NULL); >>>> } >>>> +#ifdef FDT >>>> + ofw_gpiobus_register_provider(dev); >>>> +#endif >>>> bus_generic_attach(dev); >>>>=20 >>>> return (busdev); >>>> @@ -152,6 +155,10 @@ int >>>> gpiobus_detach_bus(device_t dev) >>>> { >>>>=20 >>>> +#ifdef FDT >>>> + ofw_gpiobus_unregister_provider(dev); >>>> +#endif >>>> + >>>> return (bus_generic_detach(dev)); >>>> } >>>>=20 >>>>=20 >>>> Modified: head/sys/dev/gpio/gpiobusvar.h >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/dev/gpio/gpiobusvar.h Mon Feb 2 19:00:18 2015 = (r278107) >>>> +++ head/sys/dev/gpio/gpiobusvar.h Mon Feb 2 19:22:34 2015 = (r278108) >>>> @@ -93,6 +93,8 @@ gpio_map_gpios(device_t bus, phandle_t d >>>> } >>>>=20 >>>> device_t ofw_gpiobus_add_fdt_child(device_t, phandle_t); >>>> +void ofw_gpiobus_register_provider(device_t); >>>> +void ofw_gpiobus_unregister_provider(device_t); >>>> #endif >>>> int gpio_check_flags(uint32_t, uint32_t); >>>> device_t gpiobus_attach_bus(device_t); >>>>=20 >>>> Modified: head/sys/dev/gpio/ofw_gpiobus.c >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/dev/gpio/ofw_gpiobus.c Mon Feb 2 19:00:18 2015 = (r278107) >>>> +++ head/sys/dev/gpio/ofw_gpiobus.c Mon Feb 2 19:22:34 2015 = (r278108) >>>> @@ -217,6 +217,24 @@ ofw_gpiobus_parse_gpios(struct gpiobus_s >>>> return (0); >>>> } >>>>=20 >>>> +void >>>> +ofw_gpiobus_register_provider(device_t provider) >>>> +{ >>>> + phandle_t node; >>>> + >>>> + node =3D ofw_bus_get_node(provider); >>>> + OF_device_register_xref(OF_xref_from_node(node), provider); >>>> +} >>>> + >>>> +void >>>> +ofw_gpiobus_unregister_provider(device_t provider) >>>> +{ >>>> + phandle_t node; >>>> + >>>> + node =3D ofw_bus_get_node(provider); >>>> + OF_device_register_xref(OF_xref_from_node(node), NULL); >>>> +} >>>> + >>>> static struct ofw_gpiobus_devinfo * >>>> ofw_gpiobus_setup_devinfo(device_t dev, phandle_t node) >>>> { >>>>=20 >>>=20 >>>=20 >>=20 >>=20 >=20 >=20