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

Reply via email to