diff options
author | Suman Anna <s-anna@ti.com> | 2014-06-24 20:43:41 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2014-07-29 04:57:25 -0400 |
commit | 5040f534385a300dee4f05af2484cdbf9ecef8a6 (patch) | |
tree | c0b9e9a84e1700f951986ada8ad6014c74898a75 /drivers/mailbox/omap-mbox.h | |
parent | ef45eae6e9f6af297c0cd0bfb98c85f3f51e96be (diff) |
mailbox/omap: consolidate OMAP mailbox driver
There is no need for a separate common OMAP mailbox module
now that the OMAP1 mailbox driver has been removed. So,
consolidate the two individual OMAP mailbox modules into a
single driver. This streamlines the driver for converting
to mailbox framework.
The following are the main changes:
- collapse mailbox-omap2.c into omap-mailbox.c
- remove omap_mbox_ops and replace the ops calls with
the equivalent functionality.
- simplify the sub-mailbox startup/shutdown functionality,
the one-time operations are moved into probe, and the
pm_runtime_get_sync and pm_runtime_put_sync can be invoked
without using a configuration counter.
- move all definitions from private omap_mbox.h into the
source code, and eliminate this internal header.
- rename some variables that used the omap2_mbox prefix with
a generic omap_mbox prefix.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'drivers/mailbox/omap-mbox.h')
-rw-r--r-- | drivers/mailbox/omap-mbox.h | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/drivers/mailbox/omap-mbox.h b/drivers/mailbox/omap-mbox.h deleted file mode 100644 index fae215195590..000000000000 --- a/drivers/mailbox/omap-mbox.h +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * omap-mbox.h: OMAP mailbox internal definitions | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #ifndef OMAP_MBOX_H | ||
10 | #define OMAP_MBOX_H | ||
11 | |||
12 | #include <linux/device.h> | ||
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/kfifo.h> | ||
15 | #include <linux/spinlock.h> | ||
16 | #include <linux/workqueue.h> | ||
17 | #include <linux/omap-mailbox.h> | ||
18 | |||
19 | struct omap_mbox_ops { | ||
20 | int (*startup)(struct omap_mbox *mbox); | ||
21 | void (*shutdown)(struct omap_mbox *mbox); | ||
22 | /* fifo */ | ||
23 | mbox_msg_t (*fifo_read)(struct omap_mbox *mbox); | ||
24 | void (*fifo_write)(struct omap_mbox *mbox, mbox_msg_t msg); | ||
25 | int (*fifo_empty)(struct omap_mbox *mbox); | ||
26 | int (*fifo_full)(struct omap_mbox *mbox); | ||
27 | /* irq */ | ||
28 | void (*enable_irq)(struct omap_mbox *mbox, | ||
29 | omap_mbox_irq_t irq); | ||
30 | void (*disable_irq)(struct omap_mbox *mbox, | ||
31 | omap_mbox_irq_t irq); | ||
32 | void (*ack_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq); | ||
33 | int (*is_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq); | ||
34 | /* ctx */ | ||
35 | void (*save_ctx)(struct omap_mbox *mbox); | ||
36 | void (*restore_ctx)(struct omap_mbox *mbox); | ||
37 | }; | ||
38 | |||
39 | struct omap_mbox_queue { | ||
40 | spinlock_t lock; | ||
41 | struct kfifo fifo; | ||
42 | struct work_struct work; | ||
43 | struct tasklet_struct tasklet; | ||
44 | struct omap_mbox *mbox; | ||
45 | bool full; | ||
46 | }; | ||
47 | |||
48 | struct omap_mbox { | ||
49 | const char *name; | ||
50 | int irq; | ||
51 | struct omap_mbox_queue *txq, *rxq; | ||
52 | struct omap_mbox_ops *ops; | ||
53 | struct device *dev; | ||
54 | void *priv; | ||
55 | int use_count; | ||
56 | struct blocking_notifier_head notifier; | ||
57 | }; | ||
58 | |||
59 | int omap_mbox_register(struct device *parent, struct omap_mbox **); | ||
60 | int omap_mbox_unregister(void); | ||
61 | |||
62 | #endif /* OMAP_MBOX_H */ | ||