summaryrefslogtreecommitdiffstats
path: root/sys/arm/broadcom/bcm2835/bcm2835_fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/broadcom/bcm2835/bcm2835_fb.c')
-rw-r--r--sys/arm/broadcom/bcm2835/bcm2835_fb.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/arm/broadcom/bcm2835/bcm2835_fb.c b/sys/arm/broadcom/bcm2835/bcm2835_fb.c
index 0f1e81c..879f278 100644
--- a/sys/arm/broadcom/bcm2835/bcm2835_fb.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_fb.c
@@ -66,6 +66,8 @@ __FBSDID("$FreeBSD$");
#include <arm/broadcom/bcm2835/bcm2835_mbox.h>
#include <arm/broadcom/bcm2835/bcm2835_vcbus.h>
+#include "mbox_if.h"
+
#define BCMFB_FONT_HEIGHT 16
struct argb {
@@ -173,6 +175,7 @@ bcm_fb_init(void *arg)
volatile struct bcm_fb_config* fb_config = sc->fb_config;
phandle_t node;
pcell_t cell;
+ device_t mbox;
node = ofw_bus_get_node(sc->dev);
@@ -205,8 +208,12 @@ bcm_fb_init(void *arg)
bus_dmamap_sync(sc->dma_tag, sc->dma_map,
BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD);
- bcm_mbox_write(BCM2835_MBOX_CHAN_FB, sc->fb_config_phys);
- bcm_mbox_read(BCM2835_MBOX_CHAN_FB, &err);
+
+ mbox = devclass_get_device(devclass_find("mbox"), 0);
+ if (mbox) {
+ MBOX_WRITE(mbox, BCM2835_MBOX_CHAN_FB, sc->fb_config_phys);
+ MBOX_READ(mbox, BCM2835_MBOX_CHAN_FB, &err);
+ }
bus_dmamap_sync(sc->dma_tag, sc->dma_map,
BUS_DMASYNC_POSTREAD);
OpenPOWER on IntegriCloud