Module Name: src Committed By: matt Date: Sun Oct 21 10:29:23 UTC 2012
Modified Files: src/sys/arch/arm/broadcom: bcm53xx_board.c Log Message: Use static initializer for bus dma tag initialization To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/broadcom/bcm53xx_board.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_board.c diff -u src/sys/arch/arm/broadcom/bcm53xx_board.c:1.7 src/sys/arch/arm/broadcom/bcm53xx_board.c:1.8 --- src/sys/arch/arm/broadcom/bcm53xx_board.c:1.7 Thu Oct 18 02:36:37 2012 +++ src/sys/arch/arm/broadcom/bcm53xx_board.c Sun Oct 21 10:29:23 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm53xx_board.c,v 1.7 2012/10/18 02:36:37 matt Exp $ */ +/* $NetBSD: bcm53xx_board.c,v 1.8 2012/10/21 10:29:23 matt Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -34,7 +34,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_board.c,v 1.7 2012/10/18 02:36:37 matt Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_board.c,v 1.8 2012/10/21 10:29:23 matt Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -67,17 +67,40 @@ bus_space_handle_t bcm53xx_armcore_bsh; static struct cpu_softc cpu_softc; static struct bcm53xx_clock_info clk_info; -struct arm32_dma_range bcm53xx_dma_ranges[2]; +struct arm32_dma_range bcm53xx_dma_ranges[2] = { + [0] = { + .dr_sysbase = 0x80000000, + .dr_busbase = 0x80000000, + .dr_len = 0x10000000, + }, [1] = { + .dr_sysbase = 0x90000000, + .dr_busbase = 0x90000000, + }, +}; struct arm32_bus_dma_tag bcm53xx_dma_tag = { + ._ranges = bcm53xx_dma_ranges, + ._nranges = __arraycount(bcm53xx_dma_ranges), _BUS_DMAMAP_FUNCS, _BUS_DMAMEM_FUNCS, _BUS_DMATAG_FUNCS, }; -struct arm32_dma_range bcm53xx_coherent_dma_ranges[2]; +struct arm32_dma_range bcm53xx_coherent_dma_ranges[2] = { + [0] = { + .dr_sysbase = 0x80000000, + .dr_busbase = 0x80000000, + .dr_len = 0x10000000, + .dr_flags = _BUS_DMAMAP_COHERENT, + }, [1] = { + .dr_sysbase = 0x90000000, + .dr_busbase = 0x90000000, + }, +}; struct arm32_bus_dma_tag bcm53xx_coherent_dma_tag = { + ._ranges = bcm53xx_coherent_dma_ranges, + ._nranges = __arraycount(bcm53xx_coherent_dma_ranges), _BUS_DMAMAP_FUNCS, _BUS_DMAMEM_FUNCS, _BUS_DMATAG_FUNCS, @@ -504,26 +527,16 @@ bcm53xx_dma_bootstrap(psize_t memsize) * try to allocate from range 0 first resulting in allocations * below 256MB which for PCI and GMAC are coherent. */ - bcm53xx_dma_ranges[0].dr_sysbase = 0x80000000; - bcm53xx_dma_ranges[0].dr_busbase = 0x80000000; - bcm53xx_dma_ranges[0].dr_len = 0x10000000; - bcm53xx_dma_ranges[1].dr_sysbase = 0x90000000; - bcm53xx_dma_ranges[1].dr_busbase = 0x90000000; bcm53xx_dma_ranges[1].dr_len = memsize - 0x10000000; - bcm53xx_dma_tag._ranges = bcm53xx_dma_ranges; - bcm53xx_dma_tag._nranges = __arraycount(bcm53xx_dma_ranges); - bcm53xx_coherent_dma_ranges[0] = bcm53xx_dma_ranges[0]; - bcm53xx_coherent_dma_ranges[1] = bcm53xx_dma_ranges[1]; - bcm53xx_coherent_dma_tag._nranges = - __arraycount(bcm53xx_coherent_dma_ranges); + bcm53xx_coherent_dma_ranges[1].dr_len = memsize - 0x10000000; } else { - bcm53xx_coherent_dma_ranges[0].dr_sysbase = 0x80000000; - bcm53xx_coherent_dma_ranges[0].dr_busbase = 0x80000000; + bcm53xx_dma_ranges[0].dr_len = memsize; bcm53xx_coherent_dma_ranges[0].dr_len = memsize; + bcm53xx_dma_tag._nranges = 1; bcm53xx_coherent_dma_tag._nranges = 1; } - bcm53xx_coherent_dma_ranges[0].dr_flags = _BUS_DMAMAP_COHERENT; - bcm53xx_coherent_dma_tag._ranges = bcm53xx_coherent_dma_ranges; + KASSERT(bcm53xx_dma_tag._ranges[0].dr_flags == 0); + KASSERT(bcm53xx_coherent_dma_tag._ranges[0].dr_flags == _BUS_DMAMAP_COHERENT); } #ifdef MULTIPROCESSOR