Re: [RFC 1/2] Add basic API for shared memory driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

On 7 February 2014 12:35, Lukasz Rymanowski <lukasz.rymanowski@xxxxxxxxx> wrote:
> This patch adds simple API to shared memory driver based on msm-smd.h
> This is required in order to add support for support Qualcomm BT chips
> via SMD
>
> Signed-off-by: Lukasz Rymanowski <lukasz.rymanowski@xxxxxxxxx>
> ---
>  include/linux/smd.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 69 insertions(+)
>  create mode 100644 include/linux/smd.h
>
> diff --git a/include/linux/smd.h b/include/linux/smd.h
> new file mode 100644
> index 0000000..58de0d4
> --- /dev/null
> +++ b/include/linux/smd.h
> @@ -0,0 +1,69 @@
> +/*
> +* smd.h - API for Shared Memory Driver
> +*
> +* Copyright (c) 2014 Intel Corporation
> +*
> +* This program is free software; you can redistribute it and/or modify
> +* it under the terms of the GNU General Public License version 2 as
> +* published by the Free Software Foundation.
> +*/
> +
> +#ifndef _SMD_H_
> +#define _SMD_H_
> +
> +#include <linux/platform_device.h>
> +
> +/**
> +* Events from smd device.
> +*/
> +#define SMD_EVENT_DATA 1
> +#define SMD_EVENT_OPEN 2
> +#define SMD_EVENT_CLOSE 3
> +
> +struct smd_channel;
> +struct smd_notify_data;
> +struct smd_data;
> +
> +/**
> +* struct smd_ops - specific operation for smd channel
> +*
> +* @open:       Open SMD channel. It should return zero once device is opened.
> +*              On open there is need to pass notification cb which is used
> +*              for notifications form SMD device.
> +* @close       Close SMD channel
> +* @write:      Write data to SMD channel. It should return number of written
> +*              bytes or negative value in case of error.
> +* @read:       Read data from SMD channel.It should return number of written
> +*              bytes or negative value in case of error.
> +*@read_avail:  Returns number of bytes ready to be read. This should be called
> +*              before read in order to allocate enought skb
> +*
> +*/
> +struct smd_ops {
> +       int (*open)(struct smd_data *s,
> +               void (*notify)(struct platform_device *pdev,
> +                                                       unsigned int event));
> +       int (*close)(struct smd_data *s);
> +       int (*write)(struct smd_data *s, const void *data, int len);
> +       int (*read)(struct smd_data *s, void *buf, int len);
> +       int (*read_avail)(struct smd_data *s);
> +};
> +/**
> +* struct smd_data - smd device data for shared memory channel
> +*
> +* @pdev:       Platform device for given smd channel.
> +* @ops:                SMD specific operations for this smd channel.
> +* @ch:         SMD channel which is used by SMD device. Should not be
> +*              used by the driver
> +* @notifier:   SMD notifier data. Shall not be used by driver.
> +*
> +* smd_data are initialized by the platform and are available for driver
> +* in platform_data.
> +*/
> +struct smd_data {
> +       struct platform_device *pdev;
> +       struct smd_ops ops;
> +       struct smd_channel *ch;
> +       struct smd_notify_data *notify_data;
> +};
> +#endif
> --

Adding linux-arm-msm group for comments on SMD API

BR
Lukasz
> 1.8.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux