]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/plat-omap/include/mach/mailbox.h
omap mailbox: add save_/restore_ctx() for PM
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / include / mach / mailbox.h
index 577db6852f436be1a52400aff5abcc9561ae7eb8..b7a6991814ec166c403266d58152d323530ca481 100644 (file)
@@ -33,6 +33,9 @@ struct omap_mbox_ops {
        void            (*disable_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq);
        void            (*ack_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq);
        int             (*is_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq);
+       /* ctx */
+       void            (*save_ctx)(struct omap_mbox *mbox);
+       void            (*restore_ctx)(struct omap_mbox *mbox);
 };
 
 struct omap_mbox_queue {
@@ -70,4 +73,24 @@ void omap_mbox_put(struct omap_mbox *);
 int omap_mbox_register(struct device *parent, struct omap_mbox *);
 int omap_mbox_unregister(struct omap_mbox *);
 
+static inline void omap_mbox_save_ctx(struct omap_mbox *mbox)
+{
+       if (!mbox->ops->save_ctx) {
+               dev_err(mbox->dev, "%s:\tno save\n", __func__);
+               return;
+       }
+
+       mbox->ops->save_ctx(mbox);
+}
+
+static inline void omap_mbox_restore_ctx(struct omap_mbox *mbox)
+{
+       if (!mbox->ops->restore_ctx) {
+               dev_err(mbox->dev, "%s:\tno restore\n", __func__);
+               return;
+       }
+
+       mbox->ops->restore_ctx(mbox);
+}
+
 #endif /* MAILBOX_H */