[PATCH 00/29] staging: bcm2835-audio: Cleanups and fixes

Takashi Iwai
2018-09-04T15:59:05Z

Hi,

since I had an opportunity to play with RPi3B+ recently, I took a look
at the existing bcm2835-audio driver code and was amused very much :)

So here is the result, a cleanup and fix patch series.

Most of the patches are trivial cleanups, just brushing up, removing
many redundant and buggy codes, as well as code simplifications.

A big functional change is that now it uses non-atomic PCM ops, so
that we can kill the ugly workqueue usages. Also, the resource
management was simplified.

As a result, we can get rid of ca 1000 lines. Not too bad.

Takashi

===

Takashi Iwai (29):
staging: bcm2835-audio: Clean up mutex locks
staging: bcm2835-audio: Remove redundant spdif stream ctls
staging: bcm2835-audio: Clean up include files in bcm2835-ctl.c
staging: bcm2835-audio: Remove redundant substream mask checks
staging: bcm2835-audio: Fix mute controls, volume handling cleanup
staging: bcm2835-audio: Remove redundant function calls
staging: bcm2835-audio: Remove superfluous open flag
staging: bcm2835-audio: Drop useless running flag and check
staging: bcm2835-audio: Fix incorrect draining handling
staging: bcm2835-audio: Kill unused spinlock
staging: bcm2835-audio: Use PCM runtime values instead
staging: bcm2835-audio: Drop unnecessary pcm indirect setup
staging: bcm2835-audio: Drop useless NULL check
staging: bcm2835-audio: Propagate parameter setup error
staging: bcm2835-audio: Drop debug messages in bcm2835-pcm.c
staging: bcm2835-audio: Drop superfluous mutex lock during prepare
staging: bcm2835-audio: Add 10ms period constraint
staging: bcm2835-audio: Make single vchi handle
staging: bcm2835-audio: Code refactoring of vchiq accessor codes
staging: bcm2835-audio: Operate non-atomic PCM ops
staging: bcm2835-audio: Use card->private_data
staging: bcm2835-audio: Use standard error print helpers
staging: bcm2835-audio: Remove unnecessary header file includes
staging: bcm2835-audio: Move module parameter description
staging: bcm2835-audio: Use coherent device buffers
staging: bcm2835-audio: Set SNDRV_PCM_INFO_SYNC_APPLPTR
staging: bcm2835-audio: Simplify PCM creation helpers
staging: bcm2835-audio: Simplify kctl creation helpers
staging: bcm2835-audio: Simplify card object management

.../vc04_services/bcm2835-audio/bcm2835-ctl.c | 235 ++---
.../vc04_services/bcm2835-audio/bcm2835-pcm.c | 338 ++-----
.../bcm2835-audio/bcm2835-vchiq.c | 893 +++++-------------
.../vc04_services/bcm2835-audio/bcm2835.c | 222 ++---
.../vc04_services/bcm2835-audio/bcm2835.h | 85 +-
5 files changed, 413 insertions(+), 1360 deletions(-)

--
2.18.0