freebsd-dev/sys/arm/broadcom/bcm2835
Oleksandr Tymoshenko 3a48aebfbe [rpi] Fix bcm2835_audio locking and samples starvation
Rework general approach to locking and working with audio worker thread:

- Use flags to signal requested worker action
- Fix submitted buffer calculations to avoid samples starvation
- Protect buffer pointers with locks to fix race condition between callback
  and audio worker thread
- Remove unnecessary vchi_service_use
- Do not use lock to serialize VCHI requests since only one thread issues them now
- Fix unloading signaling per hselasky@ suggestion
- Add output to detect inconsistent callback data caused by possible firmware bug
  https://github.com/raspberrypi/firmware/issues/696
- Add stats/debug sysctls to troubleshoot possible bugs

PR:		213687, 205979, 215194
MFC after:	1 week
2016-12-27 19:08:08 +00:00
..
bcm283x_dwc_fdt.c Make BCM283x USB driver compatible with upstream DT 2016-10-12 03:07:49 +00:00
bcm2835_audio.c [rpi] Fix bcm2835_audio locking and samples starvation 2016-12-27 19:08:08 +00:00
bcm2835_bsc.c Add compatible strings used in upstream dts files 2016-10-12 03:00:42 +00:00
bcm2835_bscreg.h Add the Raspberry Pi BSC (I2C compliant) controller driver. 2013-10-23 12:29:39 +00:00
bcm2835_bscvar.h Add a mask to match only the relative base address of BSC controllers. 2015-02-16 19:06:31 +00:00
bcm2835_cpufreq.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_dma.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_dma.h Do not use DMA channels used by GPU. 2016-02-16 12:19:06 +00:00
bcm2835_fb.c Use the correct OF_getencprop to get the height. 2016-11-16 11:31:53 +00:00
bcm2835_fbd.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_ft5406.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_gpio.c Start to remove the old pre-INTRNG code from the arm platforms. These have 2016-11-08 12:15:57 +00:00
bcm2835_gpio.h Export a function to allow BCM2835's peripheral devices to enable their 2013-09-07 18:48:15 +00:00
bcm2835_intr.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_machdep.c All armv6 platforms have the same implementation of platform_lastaddr. 2016-12-16 10:31:13 +00:00
bcm2835_mbox_prop.h Force framebuffer virtual viewport to be the same as physical 2016-04-20 22:38:00 +00:00
bcm2835_mbox.c Add compatibility string from upstream DT 2016-10-12 03:03:55 +00:00
bcm2835_mbox.h Driver for CPU frequency/voltage control on the Raspberry Pi. 2014-12-20 19:15:10 +00:00
bcm2835_rng.c Random bit generator (RBG) driver for RPi and RPi2. 2016-07-19 18:07:47 +00:00
bcm2835_sdhci.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_spi.c ofw_spi: Parse property for the SPI mode and CS polarity. 2016-12-18 14:54:20 +00:00
bcm2835_spireg.h Add the Raspberry Pi SPI controller driver. 2013-10-24 16:27:33 +00:00
bcm2835_spivar.h Add the Raspberry Pi SPI controller driver. 2013-10-24 16:27:33 +00:00
bcm2835_systimer.c Stop including fdt_common.h from the arm code when it's unneeded. 2016-11-14 11:41:22 +00:00
bcm2835_vcbus.h Make BRCM2837 port conform FreeBSD/ARM64 guidelines 2016-10-14 22:23:03 +00:00
bcm2835_vcio.c Remove some NULL checks after M_WAITOK allocations from sys/arm/. 2016-08-09 16:02:35 +00:00
bcm2835_wdog.c Add the missing void to function signatures in much of the arm code. 2016-12-13 13:43:22 +00:00
bcm2835_wdog.h
bcm2836_mp.c Start to remove the old pre-INTRNG code from the arm platforms. These have 2016-11-08 12:15:57 +00:00
bcm2836_mp.h RPI2: Add support for PLATFORM_SMP so we can later add it to GENERIC. 2016-09-29 06:54:02 +00:00
bcm2836.c [rpi3] Fix SMP build for FreeBSD/arm64 2016-11-24 00:39:17 +00:00
files.bcm283x Start to remove the old pre-INTRNG code from the arm platforms. These have 2016-11-08 12:15:57 +00:00
files.bcm2835 Build the cpufunc_asm_* files based on the cpu type, not which config file 2015-03-29 22:43:39 +00:00
files.bcm2836 Create device options for the two common ARM timers. 2015-11-21 16:23:56 +00:00
std.bcm2835 Add the SOC_BCM2835 and SOC_BCM2836 options for the arm kernel and add the 2015-03-24 18:46:01 +00:00
std.bcm2836 Split CPU_CORTEXA into CPU_CORTEXA8, for the Cortex-A8, and CPU_CORTEXA_MP, 2016-10-04 12:25:44 +00:00
std.rpi Remove FREEBSD_BOOT_LOADER that already exists in std.armv6 config file. 2016-03-20 16:48:29 +00:00
vc_vchi_audioserv_defs.h Add VideoCore audio driver for Rasperry Pi (BCM2835) 2015-02-08 01:12:40 +00:00