On 10/28/2014 02:10 PM, Greg Kroah-Hartman wrote:
On Tue, Oct 28, 2014 at 11:26:21AM +0000, Qais Yousef wrote:
AXD is Audio Processing IP by Imagination Technologies that can perform decoding, encoding, equalisation, resampling, mixing, synchronisation and audio playback.
Isn't that a codec? Why is this a "char" driver and not one that fits into our existing audio subsystem?
As far as I understand it doesn't fit into current alsa framework because of a number of unsupported features that we need. Specifically the range of compressed decoders we support and their configurations and encoding. I might have gotten it wrong though so I'll wait to see what alsa people say.
this patch adds defs and initialisation files
Spell check :)
Hmm UK spelling vs US spelling :) Unless you mean the defs then I'll expand it.
Signed-off-by: Qais Yousef qais.yousef@imgtec.com Cc: Arnd Bergmann arnd@arndb.de Cc: Greg Kroah-Hartman gregkh@linuxfoundation.org Cc: Grant Likely grant.likely@linaro.org Cc: Rob Herring robh+dt@kernel.org Cc: devicetree@vger.kernel.org Cc: alsa-devel@alsa-project.org
drivers/char/axd/axd_api.h | 641 +++++++++++++++++++++++++ drivers/char/axd/axd_module.c | 1064 +++++++++++++++++++++++++++++++++++++++++ drivers/char/axd/axd_module.h | 99 ++++ include/linux/axd.h | 32 ++ 4 files changed, 1836 insertions(+) create mode 100644 drivers/char/axd/axd_api.h create mode 100644 drivers/char/axd/axd_module.c create mode 100644 drivers/char/axd/axd_module.h create mode 100644 include/linux/axd.h
diff --git a/drivers/char/axd/axd_api.h b/drivers/char/axd/axd_api.h new file mode 100644 index 000000000000..0d732f173f55 --- /dev/null +++ b/drivers/char/axd/axd_api.h @@ -0,0 +1,641 @@ +/*
- Copyright (C) 2011-2014 Imagination Technologies Ltd.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
Do you really mean "any later version"?
Nope. I probably copied that from the wrong source.
- Main API to the AXD for access from the host.
- */
+#ifndef AXD_API_H_ +#define AXD_API_H_
+#include <linux/types.h>
+#define THREAD_COUNT 4 +#define AXD_MAX_PIPES 3
+#define AXD_DESCRIPTOR_READY_BIT 0x80000000 +#define AXD_DESCRIPTOR_INUSE_BIT 0x40000000 +#define AXD_DESCRIPTOR_EOS_BIT 0x20000000 +#define AXD_DESCRIPTOR_SIZE_MASK 0x0000FFFF
+struct axd_buffer_desc {
- uint32_t status_size;
- uint32_t data_ptr;
- uint32_t pts_high;
- uint32_t pts_low;
Please always use standard Linux kernel types, "u32" in this case.
OK.
Thanks, Qais
thanks,
greg k-h