freebsd-skq/sys/arm/allwinner
Hans Petter Selasky d3bf5efc1f Fix device delete child function.
When detaching device trees parent devices must be detached prior to
detaching its children. This is because parent devices can have
pointers to the child devices in their softcs which are not
invalidated by device_delete_child(). This can cause use after free
issues and panic().

Device drivers implementing trees, must ensure its detach function
detaches or deletes all its children before returning.

While at it remove now redundant device_detach() calls before
device_delete_child() and device_delete_children(), mostly in
the USB controller drivers.

Tested by:		Jan Henrik Sylvester <me@janh.de>
Reviewed by:		jhb
Differential Revision:	https://reviews.freebsd.org/D8070
MFC after:		2 weeks
2016-10-17 10:20:38 +00:00
..
a10 Allwinner: Move a10_padconf.c into a10 subdirectory. 2016-08-19 12:48:32 +00:00
a13 Add support for Allwinner A13. 2016-07-08 23:38:25 +00:00
a20 Remove the old Allwinner std.* files, these are not part of the common 2016-10-03 16:47:46 +00:00
a31 Remove the old Allwinner std.* files, these are not part of the common 2016-10-03 16:47:46 +00:00
a64 Add Allwinner A64 padconf settings. 2016-07-11 20:06:21 +00:00
a83t Remove the old Allwinner std.* files, these are not part of the common 2016-10-03 16:47:46 +00:00
clk Match "allwinner,sun8i-h3-apb0-gates-clk" compatible string. 2016-10-15 13:27:01 +00:00
h3 Remove the old Allwinner std.* files, these are not part of the common 2016-10-03 16:47:46 +00:00
a10_ahci.c ALLWINNER: ahci_devclass is local variable, don't export it. 2016-09-30 05:30:16 +00:00
a10_codec.c EXTRES: Add OF node as argument to all <foo>_get_by_ofw_<bar>() functions. 2016-07-10 18:28:15 +00:00
a10_common.c Restrict where we need to define fdt_fixup_table to just PowerPC and 2016-09-23 14:11:23 +00:00
a10_dmac.c EXTRES: Add OF node as argument to all <foo>_get_by_ofw_<bar>() functions. 2016-07-10 18:28:15 +00:00
a10_dmac.h Add support for the Allwinner DMA controller. This will be used by the at 2016-02-15 19:56:35 +00:00
a10_ehci.c Fix device delete child function. 2016-10-17 10:20:38 +00:00
a10_fb.c EXTRES: Add OF node as argument to all <foo>_get_by_ofw_<bar>() functions. 2016-07-10 18:28:15 +00:00
a10_gpio.c ARM: Remove unused includes. 2016-10-09 10:25:47 +00:00
a10_gpio.h Rename a10_emac_gpio_config() to a10_gpio_ethernet_activate() to make the 2015-07-03 17:54:41 +00:00
a10_hdmi.c EXTRES: Add OF node as argument to all <foo>_get_by_ofw_<bar>() functions. 2016-07-10 18:28:15 +00:00
a10_hdmiaudio.c Add Allwinner A20 HDMI support. 2016-02-25 20:17:18 +00:00
a10_mmc.c a10_mmc: Remove completly the PIO code now all access is done by DMA. 2016-09-10 17:45:35 +00:00
a10_mmc.h a10_mmc: Remove completly the PIO code now all access is done by DMA. 2016-09-10 17:45:35 +00:00
a10_sramc.c Add function for mapping SRAM-D area to USB0 (OTG) controller. Use a lower 2016-04-08 10:54:59 +00:00
a10_sramc.h Add function for mapping SRAM-D area to USB0 (OTG) controller. Use a lower 2016-04-08 10:54:59 +00:00
allwinner_pinctrl.h Move the Allwinner kernels to use fdt_pinctrl. This will read the pin 2016-02-17 18:28:03 +00:00
aw_ccu.c aw_ccu on H3 needs access to PRCM space. The r_pio controller works now. 2016-10-16 12:55:31 +00:00
aw_if_dwc.c Rename allwinner_machdep.{c.h} to aw_machdep.{c.h} as all allwinner source 2016-08-17 21:44:02 +00:00
aw_machdep.c Move cpu_reset to be a platform method to allow multiple implementations. 2016-09-23 13:08:15 +00:00
aw_machdep.h Rename allwinner_machdep.{c.h} to aw_machdep.{c.h} as all allwinner source 2016-08-17 21:44:02 +00:00
aw_mp.c ARM: SEV/WFE instructions are implemented starting from ARMv6K, 2016-10-06 13:18:18 +00:00
aw_mp.h Merge a20_mp_start_ap and a31_mp_start_ap into one function. 2016-05-10 18:00:37 +00:00
aw_nmi.c axp209 needs aw_nmi so attach a bit earlier 2016-07-21 13:28:07 +00:00
aw_reset.c Attach hwreset resources at the same time as clock resources. 2016-04-08 23:07:16 +00:00
aw_rsb.c Attach RSB early. Children of RSB may provide resources necessary for 2016-07-11 20:02:51 +00:00
aw_rtc.c Remove dependency on allwinner_soc_family() as it is not available on arm64. 2016-08-25 10:14:56 +00:00
aw_sid.c Add support for reading root key on A83T/A64. 2016-09-03 15:22:50 +00:00
aw_sid.h Add support for the SID (Security ID Module) on Allwinner A10 and A20. 2016-07-20 11:23:06 +00:00
aw_thermal.c Add support for the Allwinner H3 Thermal Sensor Controller. The H3 embeds 2016-09-05 11:05:14 +00:00
aw_ts.c Allwinner: Add thermal sensor driver for A10/A20 2016-08-23 22:26:50 +00:00
aw_usbphy.c Add support for Allwinner A64 USB PHY. 2016-08-31 10:45:53 +00:00
aw_wdog.c ARM: Remove unused includes. 2016-10-09 10:25:47 +00:00
aw_wdog.h Add support for the Allwinner A31 watchdog to the existing A10 watchdog 2016-02-25 16:50:36 +00:00
axp81x.c Attach later so axp81x attaches after aw_nmi. 2016-09-07 01:09:25 +00:00
axp209.c axp209: Add support for regulators 2016-10-15 17:49:41 +00:00
axp209reg.h axp209: Add support for regulators 2016-10-15 17:49:41 +00:00
console.c Switch to my freebsd.org emal address in copyright. 2014-03-25 08:31:47 +00:00
files.allwinner Add sy8106a to Allwinner kernel. This regulator is used to control VDD_CPUX 2016-09-05 13:45:45 +00:00
files.allwinner_up Rename kernel config A10 into ALLWINNER_UP as it is intend to work with all 2016-08-17 20:32:08 +00:00
if_awg.c Use the root key in the Security ID EFUSE (when valid) to generate a 2016-09-03 15:28:09 +00:00
if_awgreg.h Allwinner Gigabit EMAC performance improvements. 2016-07-13 20:46:54 +00:00
if_emac.c if_emac: Before generating a random MAC address, try using the SID rootkey 2016-08-19 23:44:07 +00:00
if_emacreg.h Simplify the receiver code a bit. 2015-04-18 00:35:00 +00:00
std.allwinner Split CPU_CORTEXA into CPU_CORTEXA8, for the Cortex-A8, and CPU_CORTEXA_MP, 2016-10-04 12:25:44 +00:00
std.allwinner_up Split CPU_CORTEXA into CPU_CORTEXA8, for the Cortex-A8, and CPU_CORTEXA_MP, 2016-10-04 12:25:44 +00:00
sunxi_dma_if.m Add support for the Allwinner DMA controller. This will be used by the at 2016-02-15 19:56:35 +00:00
timer.c Rename allwinner_machdep.{c.h} to aw_machdep.{c.h} as all allwinner source 2016-08-17 21:44:02 +00:00