|
@@ -1148,6 +1148,16 @@ static int tegra_xusb_probe(struct platform_device *pdev)
|
|
|
|
|
|
|
|
tegra_xusb_ipfs_config(tegra, regs);
|
|
tegra_xusb_ipfs_config(tegra, regs);
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ * The XUSB Falcon microcontroller can only address 40 bits, so set
|
|
|
|
|
+ * the DMA mask accordingly.
|
|
|
|
|
+ */
|
|
|
|
|
+ err = dma_set_mask_and_coherent(tegra->dev, DMA_BIT_MASK(40));
|
|
|
|
|
+ if (err < 0) {
|
|
|
|
|
+ dev_err(&pdev->dev, "failed to set DMA mask: %d\n", err);
|
|
|
|
|
+ goto put_rpm;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
err = tegra_xusb_load_firmware(tegra);
|
|
err = tegra_xusb_load_firmware(tegra);
|
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
|
dev_err(&pdev->dev, "failed to load firmware: %d\n", err);
|
|
dev_err(&pdev->dev, "failed to load firmware: %d\n", err);
|