From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Andreas_Bie=DFmann?= Date: Tue, 25 May 2010 10:15:04 +0200 Subject: [U-Boot] [PATCH] arm:io.h: define __io() macro if not defined erlier In-Reply-To: <20100521210704.68773CCF026@gemini.denx.de> References: <1274259427-29386-1-git-send-email-biessmann@corscience.de> <20100521210704.68773CCF026@gemini.denx.de> Message-ID: <4BFB8708.4010408@corscience.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Wolfgang, Am 21.05.2010 23:07, schrieb Wolfgang Denk: > Dear =?UTF-8?q?Andreas=20Bie=C3=9Fmann?=, > > In message <1274259427-29386-1-git-send-email-biessmann@corscience.de> you wrote: >> This patch adds __io() macro to enable {in|out}[bwl] macros in >> arch/arm/asm/io.h >> >> Commit a45dde2293c816138e53c26eca6fd0322583f9a6 uses {in|out}[bwl] >> macros in >> DM9000x and breaks compilation for arm devices. >> >> Signed-off-by: Andreas Bie?mann >> --- >> arch/arm/include/asm/io.h | 7 +++++++ >> 1 files changed, 7 insertions(+), 0 deletions(-) > > Hm... with this patch applied I see a lot of other warnings: [snip lot of redefine warnings] Warnings appeared due to too little testing on my side ... sorry for that. Is there an easy way to build all e.g. arm-related boards/configuration-sets in a test run? We should discuss where to fix this issue. It is a fact that commit a45dde2293c816138e53c26eca6fd0322583f9a6 breaks compilation of arm boards using dm9000x driver. Another fact is that mostly all arch/asm/io.h defines {in|out}[bxl] macros except for arm (and sparc, they name them __arch_{put|get}[bwl]). Arm defines them conditionally only if the macro __io(p) is defined. By some reason omap1510 defines his own {in|out}[bxl]. My first argument for removing this is that this boards definition is the only one defining his own {in|out}[bxl] -> '# grep -nr outb\( include/configs/' The second one is that kind of the definition is so common to put it in generic arch/asm/io.h. The other way around we could define the {in|out}[bxl] macros everywhere is needed in board specific configuration files. Namely there are at least: ---8<--- grep -nr CONFIG_DRIVER_DM9000 include/configs/ include/configs/pm9261.h:248:#define CONFIG_DRIVER_DM9000 1 include/configs/davinci_dm355evm.h:55:#define CONFIG_DRIVER_DM9000 1 include/configs/scb9328.h:259:#define CONFIG_DRIVER_DM9000 1 include/configs/trizepsiv.h:292:#define CONFIG_DRIVER_DM9000 1 include/configs/devkit8000.h:75:#define CONFIG_DRIVER_DM9000 1 include/configs/M5253DEMO.h:92:#define CONFIG_DRIVER_DM9000 include/configs/M5253DEMO.h:93:#ifdef CONFIG_DRIVER_DM9000 include/configs/davinci_dm355leopard.h:54:#define CONFIG_DRIVER_DM9000 1 include/configs/at91sam9261ek.h:146:#define CONFIG_DRIVER_DM9000 1 include/configs/ip04.h:75:#define CONFIG_DRIVER_DM9000 1 --->8--- (most of them are proven to be arm related) The only argument doing this is ... we need a working DM9000 driver ;) Any other comments? I'm willing to build another patch but like to have this discussed before. I think the easiest way to solve this is to create another patch including exactely the changes sent before plus removing {in|out}[bxl] macros in omap1510.h. regards Andreas Bie?mann