From: Paul Pawlowski <paul@xxxxxxxx>
This patch adds a driver named apple-bce, to add support for the T2
Security Chip found on certain Macs.
The driver has 3 main components:
BCE (Buffer Copy Engine) - this is what the files in the root directory
are for. This estabilishes a basic communication channel with the T2.
VHCI and Audio both require this component.
VHCI - this is a virtual USB host controller; keyboard, mouse and
other system components are provided by this component (other
drivers use this host controller to provide more functionality).
Audio - a driver for the T2 audio interface, currently only audio
output is supported.
Currently, suspend and resume for VHCI is broken after a firmware
update in iBridge since macOS Sonoma.
Signed-off-by: Paul Pawlowski <paul@xxxxxxxx>
Signed-off-by: Aditya Garg <gargaditya08@xxxxxxxx>
---
drivers/staging/Kconfig | 2 +
drivers/staging/Makefile | 1 +
drivers/staging/apple-bce/Kconfig | 18 +
drivers/staging/apple-bce/Makefile | 28 +
drivers/staging/apple-bce/apple_bce.c | 448 ++++++++++
drivers/staging/apple-bce/apple_bce.h | 44 +
drivers/staging/apple-bce/audio/audio.c | 714 ++++++++++++++++
drivers/staging/apple-bce/audio/audio.h | 128 +++
drivers/staging/apple-bce/audio/description.h | 45 ++
drivers/staging/apple-bce/audio/pcm.c | 311 +++++++
drivers/staging/apple-bce/audio/pcm.h | 19 +
drivers/staging/apple-bce/audio/protocol.c | 350 ++++++++
drivers/staging/apple-bce/audio/protocol.h | 148 ++++
.../staging/apple-bce/audio/protocol_bce.c | 229 ++++++
.../staging/apple-bce/audio/protocol_bce.h | 75 ++
drivers/staging/apple-bce/mailbox.c | 154 ++++
drivers/staging/apple-bce/mailbox.h | 56 ++
drivers/staging/apple-bce/queue.c | 393 +++++++++
drivers/staging/apple-bce/queue.h | 180 +++++
drivers/staging/apple-bce/queue_dma.c | 223 +++++
drivers/staging/apple-bce/queue_dma.h | 53 ++
drivers/staging/apple-bce/vhci/command.h | 207 +++++
drivers/staging/apple-bce/vhci/queue.c | 271 +++++++
drivers/staging/apple-bce/vhci/queue.h | 79 ++
drivers/staging/apple-bce/vhci/transfer.c | 664 +++++++++++++++
drivers/staging/apple-bce/vhci/transfer.h | 76 ++
drivers/staging/apple-bce/vhci/vhci.c | 764 ++++++++++++++++++
drivers/staging/apple-bce/vhci/vhci.h | 55 ++
28 files changed, 5735 insertions(+)