diff options
| -rw-r--r-- | drivers/usb/musb/musb_core.c | 1 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_host.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 0981925deb8..f882a2a47fd 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -1932,7 +1932,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl) status = -ENODEV; goto fail0; } - dev->dma_mask = 0 ; /* allocate */ musb = allocate_instance(dev, plat->config, ctrl); if (!musb) { diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c index ff02e5924fb..ed496068192 100644 --- a/drivers/usb/musb/musb_host.c +++ b/drivers/usb/musb/musb_host.c @@ -46,6 +46,7 @@ #include "musb_core.h" #include "musb_host.h" +static bool is_host_dma_enabled; /* MUSB HOST status 22-mar-2006 * @@ -710,7 +711,7 @@ static void musb_ep_program(struct musb *musb, u8 epnum, musb_ep_select(mbase, epnum); /* candidate for DMA? */ - dma_controller = musb->dma_controller; + dma_controller = is_host_dma_enabled ? musb->dma_controller : NULL; if (is_dma_capable() && epnum && dma_controller) { dma_channel = is_out ? hw_ep->tx_channel : hw_ep->rx_channel; if (!dma_channel) { @@ -2274,6 +2275,7 @@ static int musb_h_start(struct usb_hcd *hcd) */ hcd->state = HC_STATE_RUNNING; musb->port1_status = 0; + is_host_dma_enabled = false; return 0; } |
