From c31ed1a30add53d3b7ad0a2a4474bbff2f75627c Mon Sep 17 00:00:00 2001 From: Vivek Gautam Date: Mon, 16 Jul 2012 11:25:37 +0530 Subject: [PATCH] --- yaml --- r: 317055 b: refs/heads/master c: 2c026e2b36e8e934de9726398a3e1eeb3fa6055c h: refs/heads/master i: 317053: 6287bb0eefef836e1df61fbadf8c09c762db75d9 317051: 5431af01947c4a4958ff9e5352a4ed63a5953fa3 317047: 15d6611f6d8aefeaacbdec3c12a52c0547ea38c9 317039: 443266881d6505d6ee2e1374f368f9c72c853576 317023: f38674a5f97d0e726c6c81e54fbee15b935b8ae4 316991: 1382f66b2c3f998fb60295d3a3629af9f4692815 316927: a11a0a8db6921df230f8fdc29b2e9a52c070d289 v: v3 --- [refs] | 2 +- trunk/drivers/usb/host/ehci-s5p.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ec1f24da195f..bc55049a7b3f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d51389306f598d635c55e72f42609b543efd9469 +refs/heads/master: 2c026e2b36e8e934de9726398a3e1eeb3fa6055c diff --git a/trunk/drivers/usb/host/ehci-s5p.c b/trunk/drivers/usb/host/ehci-s5p.c index 13c179fb2ee2..37d84cf9a408 100644 --- a/trunk/drivers/usb/host/ehci-s5p.c +++ b/trunk/drivers/usb/host/ehci-s5p.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include @@ -63,6 +64,8 @@ static const struct hc_driver s5p_ehci_hc_driver = { .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete, }; +static u64 ehci_s5p_dma_mask = DMA_BIT_MASK(32); + static int __devinit s5p_ehci_probe(struct platform_device *pdev) { struct s5p_ehci_platdata *pdata; @@ -79,6 +82,16 @@ static int __devinit s5p_ehci_probe(struct platform_device *pdev) return -EINVAL; } + /* + * Right now device-tree probed devices don't get dma_mask set. + * Since shared usb code relies on it, set it here for now. + * Once we move to full device tree support this will vanish off. + */ + if (!pdev->dev.dma_mask) + pdev->dev.dma_mask = &ehci_s5p_dma_mask; + if (!pdev->dev.coherent_dma_mask) + pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); + s5p_ehci = devm_kzalloc(&pdev->dev, sizeof(struct s5p_ehci_hcd), GFP_KERNEL); if (!s5p_ehci) @@ -233,6 +246,14 @@ static const struct dev_pm_ops s5p_ehci_pm_ops = { .resume = s5p_ehci_resume, }; +#ifdef CONFIG_OF +static const struct of_device_id exynos_ehci_match[] = { + { .compatible = "samsung,exynos-ehci" }, + {}, +}; +MODULE_DEVICE_TABLE(of, exynos_ehci_match); +#endif + static struct platform_driver s5p_ehci_driver = { .probe = s5p_ehci_probe, .remove = __devexit_p(s5p_ehci_remove), @@ -241,6 +262,7 @@ static struct platform_driver s5p_ehci_driver = { .name = "s5p-ehci", .owner = THIS_MODULE, .pm = &s5p_ehci_pm_ops, + .of_match_table = of_match_ptr(exynos_ehci_match), } };