1
0
Fork 0
forked from len0rd/rockbox
foxbox/firmware/export
Michael Sevakis eefc7c73e2 Fix some problems with playback crashing
I'm not sure all the situations it affects, to be honest. The fix
aimed to address the strange symptom here:
http://forums.rockbox.org/index.php/topic,50793.0.html

It turns out that ringbuf_add_cross was used when handles were
butted up against one another with the first parameter equal to
the last, which it interprets as being an empty case when it should
be interpreted as full in the context it was used. To fix this,
introduce full/empty variants of ringbuf_add_cross and ringbuf_sub
and use them at the appropriate time.

The other way to address the problem is ensure there's always at
least a space byte between the end of one handle and the start of
another but this make the code a bit trickier to reason about than
using additional function variants.

bufopen() may yield after creating a handle and so do some more
locking so that the buffering thread doesn't mess things up by
moving anything or not seeing the yet-to-be linked-in allocation.

Add alignof() macro to use proper method to get alignment of
struct memory_handle. That should be useful in general anyway.
It's merely defined as __alignof__ but looks nicer.

Change-Id: If21739eaa33a4f6c084a28ee5b3c8fceecfd87ce
2017-04-08 18:32:54 -04:00
..
config Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
adc.h adc-target.h: cleanup 2012-01-08 00:39:29 +00:00
aic3x.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
ak4537.h Radio and radio recording for Samsung YH-920. 2014-06-18 18:06:17 +00:00
akcodec.h
as3514.h as3514: document hardware setting based on as3514.c 2016-12-12 13:10:52 +01:00
as3525.h Move usb-s3c6400 register comments to usb-s3c6400.h 2011-12-13 04:21:06 +00:00
as3525v2.h as3525v2: use the new USB DesignWare driver 2016-08-15 02:56:23 +02:00
ascodec.h AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
at91sam9260.h
ata-defines.h Bulk convert all DOS line endings to UNIX. 2011-11-06 22:44:25 +00:00
ata-driver.h Add STORAGE_INIT_ATTR to some target-specific ATA functions. 2011-12-09 02:07:24 +00:00
ata.h iPod Classic: ATA SMART updates 2016-02-14 15:17:42 +01:00
ata_idle_notify.h events: Rework event subsystem (add_event, send_event) to be more versatile. 2014-03-14 23:36:30 +01:00
ata_mmc.h
audio.h Implement speaker enable/disable on jack (un)plug 2017-02-04 17:22:08 +01:00
audiohw.h Document AUDIOHW_SETTING 2016-12-12 12:15:07 +01:00
audiohw_settings.h Add DAC's oversampling filter roll-off selection to sound settings. 2013-05-24 11:18:16 +04:00
backlight-sw-fading.h
backlight.h Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
bidi.h
bitswap.h
bootchart.h bootchart.h doesn't need _ansi.h, especially not in a relative path 2010-07-25 15:28:24 +00:00
button.h touch devices: Disable touch on softlock. 2013-09-05 20:02:07 +02:00
config.h Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
config_caps.h Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
cpu.h Rockchip rk27xx port initial commit. This is still work in progress. 2011-05-30 21:10:37 +00:00
cs42l55.h iPod Classic: capture support for CS42L55 codec 2015-10-07 06:15:03 +02:00
cscodec.h New port: iPod Classic (also known as iPod 6G/6.5G/7G) 2011-01-02 23:16:27 +00:00
dac3550a.h Straighten out the mad twisted state of sound.c and related areas. 2013-04-15 12:02:05 -04:00
debug.h Hosted: Merge debugf() implementations. Cleanup debug.h. 2012-01-21 18:39:19 +01:00
df1704.h ma9: Slightly change df1704 driver API. 2013-11-05 09:59:45 +04:00
disk.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
dm320.h Sandisk Sansa Connect port (FS #12363) 2011-11-16 14:08:01 +00:00
ds2411.h
dsp-util.h Add rbcodecplatform.h and rbcodecconfig.h. 2012-05-03 14:49:35 +02:00
dummy_codec.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
eeprom_24cxx.h
eeprom_settings.h
enc_base.h Update software recording engine to latest codec interface. 2013-06-30 00:40:27 +02:00
events.h events: Rework event subsystem (add_event, send_event) to be more versatile. 2014-03-14 23:36:30 +01:00
fat.h Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
fmradio.h
fmradio_3wire.h Radio and radio recording for Samsung YH-920. 2014-06-18 18:06:17 +00:00
fmradio_i2c.h mark some functions as init functions (discarded after init() has run) 2010-05-27 12:00:29 +00:00
font.h fonts: Fix regression(s) caused by c23ce62. 2014-01-26 14:01:48 +01:00
gdb_api.h
general.h Simplify mpegplayer a bit and use array-based lists rather than linked lists for stream management. Move a couple useful functions to handle pointer arrays from kernel.c into general.c; mpeglayer now makes use of them. 2010-05-17 12:34:05 +00:00
generic_i2c.h Apply FS #11423 - Use udelay in AMS driver for FM radio I2C 2010-06-21 21:41:07 +00:00
hangul.h
hd66789r.h
hosted_codec.h iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
hostfs.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
hwcompat.h Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). 2010-06-21 16:53:00 +00:00
i2c-coldfire.h
i2c-pp.h
i2c-rk27xx.h Rockchip rk27xx port initial commit. This is still work in progress. 2011-05-30 21:10:37 +00:00
i2c-s5l8700.h
i2c-s5l8702.h iPod Classic: HW initialization for RB 2016-05-25 12:23:47 +02:00
i2c.h imx233/fuze+: replace software i2c by hardware i2c, make some code more correct, reduce code size of lcd init sequences 2011-07-03 15:18:41 +00:00
i2s.h
iap.h iAP: lingo 1 (microphone) 2015-10-07 06:15:04 +02:00
ifp_usb_serial.h
imx31l.h Clean up multiple definitions of RAM size. Remove -DMEM (make) and MEM (code), use the already defined MEMORYSIZE instead. 2011-02-02 17:43:32 +00:00
imx233-codec.h imx233: slightly rework 3D audio setting 2016-12-12 12:15:24 +01:00
imx233.h imx233: fix soc header for stmp3600 and stmp3700 2013-06-18 15:33:07 +02:00
ipod_remote_tuner.h Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
isp1362.h
isp1583.h creative zvm isp1583 defines: move to isp1583.h 2011-12-31 18:44:32 +00:00
jz4740-codec.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
jz4740.h jz4740: a few minor fixes 2013-03-11 08:33:18 +01:00
jz_mxu.h
lcd-charcell.h Fix Player red and icons on mono displays. 2014-01-07 23:39:37 +01:00
lcd-remote.h put_line/scrolling: Make the scroll engine inform custom scrollers about start/stop of scrolling. 2014-01-12 01:34:06 +01:00
lcd.h lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
led.h
load_code.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
logdiskf.h logdiskf.h - fix wrong cpp conditionals 2012-10-22 22:36:11 +02:00
logf.h Don't add new message to logf when we dump it to file 2016-04-04 11:07:44 +02:00
ltv350qv.h
lv24020lp.h Signal strength meter for FM radio - FS#8151 by Przemysław Hołubowski 2010-11-11 21:13:29 +00:00
m5636.h
m66591.h
mas35xx.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
mascodec.h FS#12378 : Removal of Archos HWCODEC unused code and data. Several large hardware-specific functions are kept for reference or future use. 2011-11-22 19:59:31 +00:00
mc13783.h Improve imx31 interrupt code for PMIC and GPIO 2017-01-29 19:07:55 -05:00
mcf5249.h
mcf5250.h
mi4-loader.h Move load_firmware() to separate file 2013-06-27 13:50:11 +02:00
mips-archdefs.h
mips.h
mipsregs.h
mmc.h Cleanup MV/MD macros a little. 2013-08-17 12:18:22 -04:00
mp3_playback.h Use buflib for the allocation of voice PCM resources. 2012-05-02 17:22:28 -04:00
mpr121.h zenxfi3: rewrite mpr121 driver 2016-06-01 23:09:27 +02:00
mv.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
nand.h Cleanup MV/MD macros a little. 2013-08-17 12:18:22 -04:00
nand_id.h
ohci.h
panic.h panicf doesn't return so why not tell GCC and $AVE : 2014-08-25 13:55:16 -04:00
pathfuncs.h Fix track formatting problems in playlist.c 2017-01-07 19:10:02 -05:00
pca9555.h Introduce HiFi E.T MA9 port. 2013-05-06 14:09:24 +04:00
pcf5060x.h
pcf5063x.h iPod Classic: ADC updates 2016-08-12 14:17:46 +02:00
pcf50605.h
pcf50606.h
pcf50635.h
pcm-internal.h Greatly reduce volume-change zipper artifacts with SW volume. 2014-03-08 08:04:41 +01:00
pcm.h Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
pcm1792.h Introduce HiFi E.T. MA8/MA8C ports. 2013-11-05 09:59:45 +04:00
pcm_mixer.h iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
pcm_sampr.h Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
pcm_sw_volume.h Provide high resolution volume and prescaler to hosted targets. 2013-04-27 06:59:27 +02:00
pl080.h iPod Classic: introduce PL080 DMA controller driver 2015-10-07 06:15:03 +02:00
pl081.h
pl180.h
pnx0101.h
power.h Rework powermgmt to enable code re-use on appliation and sims. 2012-01-03 23:44:38 +00:00
powermgmt.h Fix checking for CONFIG_CHARGING 2016-04-04 11:19:51 +02:00
pp5002.h Revise the PCM callback system after adding multichannel audio. 2012-03-03 07:23:38 +01:00
pp5020.h Bootloader USB mode for PP502x. Enable only on GoGear SA9200 for the time being. Add HAVE_BOOTLOADER_USB_MODE to config if BOOTLOADER is defined to enable it. Clean up some kernel stuff a little to support it. Mess up a bunch of other stuff (hopefully not too badly). 2011-01-15 08:19:30 +00:00
pp5024.h
pp6100.h sansaview: fix lcd code 2014-05-11 19:56:43 +02:00
profile.h
qt1106.h
r61509.h
ramdisk.h Cleanup MV/MD macros a little. 2013-08-17 12:18:22 -04:00
rbpaths.h iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
rda5802.h Signal strength meter for FM radio - FS#8151 by Przemysław Hołubowski 2010-11-11 21:13:29 +00:00
rds.h Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
rk27xx.h Revert "rk27xx: implement usb driver" 2013-08-11 19:21:24 +02:00
rk27xx_codec.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
rkw-loader.h rename rkw.h header file 2012-03-04 00:36:02 +01:00
rolo.h
rtc.h rtc_enable_alarm() needs no return value 2010-05-22 00:28:26 +00:00
s1a0903x01.h
s3c2440.h s5l870x : use mmu-arm.S 2010-04-13 15:59:49 +00:00
s5l8700.h iPod Nano 2G: use the new USB DesignWare driver 2016-08-02 04:57:50 +02:00
s5l8702.h iPod Classic: rework on I2C driver 2016-08-12 14:17:46 +02:00
screendump.h Really fix yellow: Rename BMP_LINESIZE and BMP_BPP to get rid of the macro name collision 2010-10-25 12:52:02 +00:00
scroll_engine.h put_line/scrolling: Make the scroll engine inform custom scrollers about start/stop of scrolling. 2014-01-12 01:34:06 +01:00
sd.h storage: fix MD vs MV confusion 2013-12-06 01:55:21 +01:00
sdmmc.h imx233: merge sd and mmc drivers, fix dma issues 2012-08-18 18:24:42 +02:00
serial.h
sh7034.h
si4700.h Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
sound.h Add DAC's oversampling filter roll-off selection to sound settings. 2013-05-24 11:18:16 +04:00
spdif.h
spi.h Clean spi.h and spi-target.h 2012-01-07 22:04:12 +00:00
stfm1000.h zenxfi3&stfm1000: implement fmradio i2c and debug screen 2012-05-19 18:04:25 +02:00
storage.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
structec.h
sw_i2c.h
synaptics-mep.h SA9200: Adjust touchpad sensitivities so that actual contact with the player is needed to cause button presses and hopefully those settings will work nicely. Add a parameter read function to the MEP driver for debugging and RE purposes; enable compilation of it if you want to use it. Make a note in power-sa9200.c about button inits. 2011-01-11 23:48:29 +00:00
synaptics-rmi.h fuze+: rewrite touchpad driver 2016-06-01 23:08:17 +02:00
system.h Fix some problems with playback crashing 2017-04-08 18:32:54 -04:00
tcc77x.h Define CACHEALIGN_BITS for missing ARM CPUs for later use. 2010-11-19 07:17:20 +00:00
tcc780x.h Define CACHEALIGN_BITS for missing ARM CPUs for later use. 2010-11-19 07:17:20 +00:00
tea5760.h Signal strength meter for FM radio - FS#8151 by Przemysław Hołubowski 2010-11-11 21:13:29 +00:00
tea5767.h Signal strength meter for FM radio - FS#8151 by Przemysław Hołubowski 2010-11-11 21:13:29 +00:00
timer.h Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). 2010-06-21 16:53:00 +00:00
tlv320.h tlv320: document audiohw setting based on tlv320.c 2016-12-12 13:13:52 +01:00
touchpad.h touch devices: Disable touch on softlock. 2013-09-05 20:02:07 +02:00
touchscreen.h fix red 2013-09-05 20:35:51 +02:00
tsc200x.h
tsc2100.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
tuner.h Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
uc870x.h iPod Classic: updates for uc8702 driver 2016-05-13 23:21:42 +02:00
uda1341.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
uda1380.h uda1380: document audiohw setting based on uda1380.c 2016-12-12 13:14:22 +01:00
udacodec.h
usb-designware.h Introduce new USB driver for Synopsys DesignWare USB OTG core. 2016-08-02 04:57:49 +02:00
usb-s3c6400x.h GHWCFG* are not as3525v2 specific 2012-01-01 19:21:49 +00:00
usb-tcc.h
usb.h usb: make usb_release_exclusive_storage private 2015-01-08 16:45:41 +01:00
usb_ch9.h
usb_core.h usb: move usb charging function prototype from usb_core.h to usb.h 2015-01-08 16:44:55 +01:00
usb_drv.h Get rid of usb_drv_attach() from USB code. 2013-05-14 22:13:38 -04:00
wm8731.h wm8731: document audiohw settings 2016-12-12 13:11:25 +01:00
wm8751.h wm8751: document and fix audiohw settings 2016-12-12 13:12:15 +01:00
wm8758.h wm8758: document and fix audiohw settings 2016-12-12 13:12:47 +01:00
wm8975.h wm8975: document audiohw settings 2016-12-12 13:13:13 +01:00
wm8978.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
wm8985.h Do some cleanup, adjustment and a couple fixes to recent sound changes. 2013-04-22 20:38:17 -04:00
wmcodec.h