linux-mips
[Top] [All Lists]

Re: [PATCH 2/7] MIPS: bcm63xx: register integrated EHCI controller devic

To: Maxime Bizon <mbizon@freebox.fr>
Subject: Re: [PATCH 2/7] MIPS: bcm63xx: register integrated EHCI controller device.
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date: Sun, 31 Jan 2010 16:16:17 +0300
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org
In-reply-to: <1264872898-28149-3-git-send-email-mbizon@freebox.fr>
References: <1264872898-28149-1-git-send-email-mbizon@freebox.fr> <1264872898-28149-3-git-send-email-mbizon@freebox.fr>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.23 (Windows/20090812)
Hello.

Maxime Bizon wrote:

The bcm63xx SOC has an integrated EHCI controller, this patch adds
platform device registration and change board code to register
EHCI device when necessary.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>

[...]

diff --git a/arch/mips/bcm63xx/dev-usb-ehci.c b/arch/mips/bcm63xx/dev-usb-ehci.c
new file mode 100644
index 0000000..4bdd675
--- /dev/null
+++ b/arch/mips/bcm63xx/dev-usb-ehci.c
@@ -0,0 +1,49 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2010 Maxime Bizon <mbizon@freebox.fr>
+ */
+
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <bcm63xx_cpu.h>
+#include <bcm63xx_dev_usb_ehci.h>
+
+static struct resource ehci_resources[] = {
+       {
+               /* start & end filled at runtime */
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               /* start filled at runtime */
+               .flags          = IORESOURCE_IRQ,
+       },
+};
+
+static u64 ehci_dmamask = ~(u32)0;

  Should be DMA_BIT_MASK(32).

+
+static struct platform_device bcm63xx_ehci_device = {
+       .name           = "bcm63xx_ehci",
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(ehci_resources),
+       .resource       = ehci_resources,
+       .dev            = {
+               .dma_mask               = &ehci_dmamask,
+               .coherent_dma_mask      = 0xffffffff,

  Same here...

+       },
+};
+
+int __init bcm63xx_ehci_register(void)
+{
+       if (!BCMCPU_IS_6358())
+               return 0;
+
+       ehci_resources[0].start = bcm63xx_regset_address(RSET_EHCI0);
+       ehci_resources[0].end = ehci_resources[0].start;
+       ehci_resources[0].end += RSET_EHCI_SIZE - 1;

Why not do it in a single statement? Besides you could initialize the field with that, and then do

   ehci_resources[0].end += ehci_resources[0].start;

WBR, Sergei



<Prev in Thread] Current Thread [Next in Thread>