projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[cascardo/linux.git]
/
samples
/
rpmsg
/
rpmsg_client_sample.c
diff --git
a/samples/rpmsg/rpmsg_client_sample.c
b/samples/rpmsg/rpmsg_client_sample.c
index
d0e249c
..
f161dfd
100644
(file)
--- a/
samples/rpmsg/rpmsg_client_sample.c
+++ b/
samples/rpmsg/rpmsg_client_sample.c
@@
-24,38
+24,52
@@
#define MSG "hello world!"
#define MSG_LIMIT 100
#define MSG "hello world!"
#define MSG_LIMIT 100
-static void rpmsg_sample_cb(struct rpmsg_channel *rpdev, void *data, int len,
+struct instance_data {
+ int rx_count;
+};
+
+static int rpmsg_sample_cb(struct rpmsg_device *rpdev, void *data, int len,
void *priv, u32 src)
{
int ret;
void *priv, u32 src)
{
int ret;
- st
atic int rx_count
;
+ st
ruct instance_data *idata = dev_get_drvdata(&rpdev->dev)
;
- dev_info(&rpdev->dev, "incoming msg %d (src: 0x%x)\n", ++rx_count, src);
+ dev_info(&rpdev->dev, "incoming msg %d (src: 0x%x)\n",
+ ++idata->rx_count, src);
print_hex_dump(KERN_DEBUG, __func__, DUMP_PREFIX_NONE, 16, 1,
data, len, true);
/* samples should not live forever */
print_hex_dump(KERN_DEBUG, __func__, DUMP_PREFIX_NONE, 16, 1,
data, len, true);
/* samples should not live forever */
- if (rx_count >= MSG_LIMIT) {
+ if (
idata->
rx_count >= MSG_LIMIT) {
dev_info(&rpdev->dev, "goodbye!\n");
dev_info(&rpdev->dev, "goodbye!\n");
- return;
+ return
0
;
}
/* send a new message now */
}
/* send a new message now */
- ret = rpmsg_send(rpdev, MSG, strlen(MSG));
+ ret = rpmsg_send(rpdev
->ept
, MSG, strlen(MSG));
if (ret)
dev_err(&rpdev->dev, "rpmsg_send failed: %d\n", ret);
if (ret)
dev_err(&rpdev->dev, "rpmsg_send failed: %d\n", ret);
+
+ return 0;
}
}
-static int rpmsg_sample_probe(struct rpmsg_
channel
*rpdev)
+static int rpmsg_sample_probe(struct rpmsg_
device
*rpdev)
{
int ret;
{
int ret;
+ struct instance_data *idata;
dev_info(&rpdev->dev, "new channel: 0x%x -> 0x%x!\n",
rpdev->src, rpdev->dst);
dev_info(&rpdev->dev, "new channel: 0x%x -> 0x%x!\n",
rpdev->src, rpdev->dst);
+ idata = devm_kzalloc(&rpdev->dev, sizeof(*idata), GFP_KERNEL);
+ if (!idata)
+ return -ENOMEM;
+
+ dev_set_drvdata(&rpdev->dev, idata);
+
/* send a message to our remote processor */
/* send a message to our remote processor */
- ret = rpmsg_send(rpdev, MSG, strlen(MSG));
+ ret = rpmsg_send(rpdev
->ept
, MSG, strlen(MSG));
if (ret) {
dev_err(&rpdev->dev, "rpmsg_send failed: %d\n", ret);
return ret;
if (ret) {
dev_err(&rpdev->dev, "rpmsg_send failed: %d\n", ret);
return ret;
@@
-64,7
+78,7
@@
static int rpmsg_sample_probe(struct rpmsg_channel *rpdev)
return 0;
}
return 0;
}
-static void rpmsg_sample_remove(struct rpmsg_
channel
*rpdev)
+static void rpmsg_sample_remove(struct rpmsg_
device
*rpdev)
{
dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n");
}
{
dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n");
}