forked from Minki/linux
soc: qcom: smd: Remove standalone driver
Remove the standalone SMD implementation as we have transitioned the client drivers to use the RPMSG based one. Also remove all dependencies on QCOM_SMD from Kconfig files, in order to keep them selectable in the absence of the removed symbol. Acked-by: Andy Gross <andy.gross@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5052de8def
commit
395a48053a
@ -76,7 +76,7 @@ config QCOM_ADSP_PIL
|
||||
depends on OF && ARCH_QCOM
|
||||
depends on REMOTEPROC
|
||||
depends on QCOM_SMEM
|
||||
depends on RPMSG_QCOM_SMD || QCOM_SMD || (COMPILE_TEST && QCOM_SMD=n && RPMSG_QCOM_SMD=n)
|
||||
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
||||
select MFD_SYSCON
|
||||
select QCOM_MDT_LOADER
|
||||
select QCOM_RPROC_COMMON
|
||||
@ -93,7 +93,7 @@ config QCOM_Q6V5_PIL
|
||||
depends on OF && ARCH_QCOM
|
||||
depends on QCOM_SMEM
|
||||
depends on REMOTEPROC
|
||||
depends on RPMSG_QCOM_SMD || QCOM_SMD || (COMPILE_TEST && QCOM_SMD=n && RPMSG_QCOM_SMD=n)
|
||||
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
||||
select MFD_SYSCON
|
||||
select QCOM_RPROC_COMMON
|
||||
select QCOM_SCM
|
||||
@ -104,7 +104,7 @@ config QCOM_Q6V5_PIL
|
||||
config QCOM_WCNSS_PIL
|
||||
tristate "Qualcomm WCNSS Peripheral Image Loader"
|
||||
depends on OF && ARCH_QCOM
|
||||
depends on RPMSG_QCOM_SMD || QCOM_SMD || (COMPILE_TEST && QCOM_SMD=n && RPMSG_QCOM_SMD=n)
|
||||
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
||||
depends on QCOM_SMEM
|
||||
depends on REMOTEPROC
|
||||
select QCOM_MDT_LOADER
|
||||
|
@ -16,7 +16,6 @@ config RPMSG_CHAR
|
||||
config RPMSG_QCOM_SMD
|
||||
tristate "Qualcomm Shared Memory Driver (SMD)"
|
||||
depends on QCOM_SMEM
|
||||
depends on QCOM_SMD=n
|
||||
select RPMSG
|
||||
help
|
||||
Say y here to enable support for the Qualcomm Shared Memory Driver
|
||||
|
@ -33,14 +33,6 @@ config QCOM_SMEM
|
||||
The driver provides an interface to items in a heap shared among all
|
||||
processors in a Qualcomm platform.
|
||||
|
||||
config QCOM_SMD
|
||||
tristate "Qualcomm Shared Memory Driver (SMD)"
|
||||
depends on QCOM_SMEM
|
||||
help
|
||||
Say y here to enable support for the Qualcomm Shared Memory Driver
|
||||
providing communication channels to remote processors in Qualcomm
|
||||
platforms.
|
||||
|
||||
config QCOM_SMD_RPM
|
||||
tristate "Qualcomm Resource Power Manager (RPM) over SMD"
|
||||
depends on ARCH_QCOM
|
||||
|
@ -1,7 +1,6 @@
|
||||
obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o
|
||||
obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o
|
||||
obj-$(CONFIG_QCOM_PM) += spm.o
|
||||
obj-$(CONFIG_QCOM_SMD) += smd.o
|
||||
obj-$(CONFIG_QCOM_SMD_RPM) += smd-rpm.o
|
||||
obj-$(CONFIG_QCOM_SMEM) += smem.o
|
||||
obj-$(CONFIG_QCOM_SMEM_STATE) += smem_state.o
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
||||
|
||||
struct qcom_smd_edge;
|
||||
|
||||
#if IS_ENABLED(CONFIG_RPMSG_QCOM_SMD) || IS_ENABLED(CONFIG_QCOM_SMD)
|
||||
#if IS_ENABLED(CONFIG_RPMSG_QCOM_SMD)
|
||||
|
||||
struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent,
|
||||
struct device_node *node);
|
||||
|
@ -1,139 +0,0 @@
|
||||
#ifndef __QCOM_SMD_H__
|
||||
#define __QCOM_SMD_H__
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
struct qcom_smd;
|
||||
struct qcom_smd_channel;
|
||||
struct qcom_smd_lookup;
|
||||
|
||||
/**
|
||||
* struct qcom_smd_id - struct used for matching a smd device
|
||||
* @name: name of the channel
|
||||
*/
|
||||
struct qcom_smd_id {
|
||||
char name[20];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct qcom_smd_device - smd device struct
|
||||
* @dev: the device struct
|
||||
* @channel: handle to the smd channel for this device
|
||||
*/
|
||||
struct qcom_smd_device {
|
||||
struct device dev;
|
||||
struct qcom_smd_channel *channel;
|
||||
};
|
||||
|
||||
typedef int (*qcom_smd_cb_t)(struct qcom_smd_channel *, const void *, size_t);
|
||||
|
||||
/**
|
||||
* struct qcom_smd_driver - smd driver struct
|
||||
* @driver: underlying device driver
|
||||
* @smd_match_table: static channel match table
|
||||
* @probe: invoked when the smd channel is found
|
||||
* @remove: invoked when the smd channel is closed
|
||||
* @callback: invoked when an inbound message is received on the channel,
|
||||
* should return 0 on success or -EBUSY if the data cannot be
|
||||
* consumed at this time
|
||||
*/
|
||||
struct qcom_smd_driver {
|
||||
struct device_driver driver;
|
||||
const struct qcom_smd_id *smd_match_table;
|
||||
|
||||
int (*probe)(struct qcom_smd_device *dev);
|
||||
void (*remove)(struct qcom_smd_device *dev);
|
||||
qcom_smd_cb_t callback;
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_QCOM_SMD)
|
||||
|
||||
int qcom_smd_driver_register(struct qcom_smd_driver *drv);
|
||||
void qcom_smd_driver_unregister(struct qcom_smd_driver *drv);
|
||||
|
||||
struct qcom_smd_channel *qcom_smd_open_channel(struct qcom_smd_channel *channel,
|
||||
const char *name,
|
||||
qcom_smd_cb_t cb);
|
||||
void qcom_smd_close_channel(struct qcom_smd_channel *channel);
|
||||
void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel);
|
||||
void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data);
|
||||
int qcom_smd_send(struct qcom_smd_channel *channel, const void *data, int len);
|
||||
|
||||
|
||||
struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent,
|
||||
struct device_node *node);
|
||||
int qcom_smd_unregister_edge(struct qcom_smd_edge *edge);
|
||||
|
||||
#else
|
||||
|
||||
static inline int qcom_smd_driver_register(struct qcom_smd_driver *drv)
|
||||
{
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
static inline void qcom_smd_driver_unregister(struct qcom_smd_driver *drv)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline struct qcom_smd_channel *
|
||||
qcom_smd_open_channel(struct qcom_smd_channel *channel,
|
||||
const char *name,
|
||||
qcom_smd_cb_t cb)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void qcom_smd_close_channel(struct qcom_smd_channel *channel)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline int qcom_smd_send(struct qcom_smd_channel *channel,
|
||||
const void *data, int len)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
static inline struct qcom_smd_edge *
|
||||
qcom_smd_register_edge(struct device *parent,
|
||||
struct device_node *node)
|
||||
{
|
||||
return ERR_PTR(-ENXIO);
|
||||
}
|
||||
|
||||
static inline int qcom_smd_unregister_edge(struct qcom_smd_edge *edge)
|
||||
{
|
||||
/* This shouldn't be possible */
|
||||
WARN_ON(1);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define module_qcom_smd_driver(__smd_driver) \
|
||||
module_driver(__smd_driver, qcom_smd_driver_register, \
|
||||
qcom_smd_driver_unregister)
|
||||
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user