linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [2.6 patch] m68knommu: let PCI depend on BROKEN
@ 2008-08-19 13:47 Adrian Bunk
  2008-08-19 14:13 ` Geert Uytterhoeven
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-08-19 13:47 UTC (permalink / raw)
  To: gerg, jbarnes; +Cc: linux-kernel, linux-pci

There exists blackfin hardware with PCI support, but the support
currently in the kernel fails to build starting with:

<--  snip  -->

...
  CC      init/main.o
In file included from dma-mapping.h:5,
                 from dma-mapping.h:52,
                 from dmaengine.h:29,
                 from skbuff.h:29,
                 from netlink.h:155,
                 from genetlink.h:4,
                 from genetlink.h:4,
                 from taskstats_kern.h:12,
                 from main.c:46:
dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: 
error: implicit declaration of function 'pci_dma_supported'
...
make[2]: *** [init/main.o] Error 1


<--  snip  -->

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---
3bdc07c86b6fd5fc18b7676a75c3ff907e00e807 
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 2e7515e..77a5bdf 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -702,6 +702,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
 
 config PCI
 	bool "PCI support"
+	depends on BROKEN
 	help
 	  Support for PCI bus.
 


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68knommu: let PCI depend on BROKEN
  2008-08-19 13:47 [2.6 patch] m68knommu: let PCI depend on BROKEN Adrian Bunk
@ 2008-08-19 14:13 ` Geert Uytterhoeven
  2008-08-19 14:32   ` Adrian Bunk
  2008-08-19 15:05 ` Matthew Wilcox
  2008-08-25  6:16 ` Greg Ungerer
  2 siblings, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2008-08-19 14:13 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: gerg, jbarnes, linux-kernel, linux-pci

On Tue, 19 Aug 2008, Adrian Bunk wrote:
> There exists blackfin hardware with PCI support, but the support
> currently in the kernel fails to build starting with:
> 
> <--  snip  -->
> 
> ...
>   CC      init/main.o
> In file included from dma-mapping.h:5,
>                  from dma-mapping.h:52,
>                  from dmaengine.h:29,
>                  from skbuff.h:29,
>                  from netlink.h:155,
>                  from genetlink.h:4,
>                  from genetlink.h:4,
>                  from taskstats_kern.h:12,
>                  from main.c:46:
> dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: 
> error: implicit declaration of function 'pci_dma_supported'
> ...
> make[2]: *** [init/main.o] Error 1
> 
> 
> <--  snip  -->
> 
> Signed-off-by: Adrian Bunk <bunk@kernel.org>
> 
> ---
> 3bdc07c86b6fd5fc18b7676a75c3ff907e00e807 
> diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
> index 2e7515e..77a5bdf 100644
> --- a/arch/m68knommu/Kconfig
> +++ b/arch/m68knommu/Kconfig
> @@ -702,6 +702,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
>  
>  config PCI
>  	bool "PCI support"
> +	depends on BROKEN
>  	help
>  	  Support for PCI bus.

blackfin != m68knommu

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68knommu: let PCI depend on BROKEN
  2008-08-19 14:13 ` Geert Uytterhoeven
@ 2008-08-19 14:32   ` Adrian Bunk
  0 siblings, 0 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-08-19 14:32 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: gerg, jbarnes, linux-kernel, linux-pci

On Tue, Aug 19, 2008 at 04:13:33PM +0200, Geert Uytterhoeven wrote:
> On Tue, 19 Aug 2008, Adrian Bunk wrote:
> > There exists blackfin hardware with PCI support, but the support
> > currently in the kernel fails to build starting with:
> > 
> > <--  snip  -->
> > 
> > ...
> >   CC      init/main.o
> > In file included from dma-mapping.h:5,
> >                  from dma-mapping.h:52,
> >                  from dmaengine.h:29,
> >                  from skbuff.h:29,
> >                  from netlink.h:155,
> >                  from genetlink.h:4,
> >                  from genetlink.h:4,
> >                  from taskstats_kern.h:12,
> >                  from main.c:46:
> > dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: 
> > error: implicit declaration of function 'pci_dma_supported'
> > ...
> > make[2]: *** [init/main.o] Error 1
> > 
> > 
> > <--  snip  -->
> > 
> > Signed-off-by: Adrian Bunk <bunk@kernel.org>
> > 
> > ---
> > 3bdc07c86b6fd5fc18b7676a75c3ff907e00e807 
> > diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
> > index 2e7515e..77a5bdf 100644
> > --- a/arch/m68knommu/Kconfig
> > +++ b/arch/m68knommu/Kconfig
> > @@ -702,6 +702,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
> >  
> >  config PCI
> >  	bool "PCI support"
> > +	depends on BROKEN
> >  	help
> >  	  Support for PCI bus.
> 
> blackfin != m68knommu

s/blackfin/m68knommu/ in the patch description (relict from copying it 
from the other similar patch, see http://lkml.org/lkml/2008/8/19/196).

The error message and the patch are for m68knommu.

> Gr{oetje,eeting}s,
> 
> 						Geert

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68knommu: let PCI depend on BROKEN
  2008-08-19 13:47 [2.6 patch] m68knommu: let PCI depend on BROKEN Adrian Bunk
  2008-08-19 14:13 ` Geert Uytterhoeven
@ 2008-08-19 15:05 ` Matthew Wilcox
  2008-08-22  3:44   ` Bryan Wu
  2008-08-25  6:16 ` Greg Ungerer
  2 siblings, 1 reply; 19+ messages in thread
From: Matthew Wilcox @ 2008-08-19 15:05 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: gerg, jbarnes, linux-kernel, linux-pci

On Tue, Aug 19, 2008 at 04:47:18PM +0300, Adrian Bunk wrote:
> There exists blackfin hardware with PCI support, but the support
               ^^^^^^^^
m68knommu
> currently in the kernel fails to build starting with:

Hopefully someone fixes it instead of just acking this patch.

-- 
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68knommu: let PCI depend on BROKEN
  2008-08-19 15:05 ` Matthew Wilcox
@ 2008-08-22  3:44   ` Bryan Wu
  0 siblings, 0 replies; 19+ messages in thread
From: Bryan Wu @ 2008-08-22  3:44 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: Adrian Bunk, gerg, jbarnes, linux-kernel, linux-pci

On Tue, Aug 19, 2008 at 11:05 PM, Matthew Wilcox <matthew@wil.cx> wrote:
> On Tue, Aug 19, 2008 at 04:47:18PM +0300, Adrian Bunk wrote:
>> There exists blackfin hardware with PCI support, but the support
>               ^^^^^^^^
> m68knommu

I will take care of Blackfin parts.

>> currently in the kernel fails to build starting with:
>
> Hopefully someone fixes it instead of just acking this patch.
>

Sorry for the delay, I was out on my vacation this week.

Thanks all
-Bryan

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68knommu: let PCI depend on BROKEN
  2008-08-19 13:47 [2.6 patch] m68knommu: let PCI depend on BROKEN Adrian Bunk
  2008-08-19 14:13 ` Geert Uytterhoeven
  2008-08-19 15:05 ` Matthew Wilcox
@ 2008-08-25  6:16 ` Greg Ungerer
  2008-08-25 20:43   ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Adrian Bunk
  2 siblings, 1 reply; 19+ messages in thread
From: Greg Ungerer @ 2008-08-25  6:16 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: gerg, jbarnes, linux-kernel, linux-pci


Hi Adrian,

Adrian Bunk wrote:
> There exists blackfin hardware with PCI support, but the support
> currently in the kernel fails to build starting with:
> 
> <--  snip  -->
> 
> ...
>   CC      init/main.o
> In file included from dma-mapping.h:5,
>                  from dma-mapping.h:52,
>                  from dmaengine.h:29,
>                  from skbuff.h:29,
>                  from netlink.h:155,
>                  from genetlink.h:4,
>                  from genetlink.h:4,
>                  from taskstats_kern.h:12,
>                  from main.c:46:
> dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: 
> error: implicit declaration of function 'pci_dma_supported'
> ...
> make[2]: *** [init/main.o] Error 1

I think we should just remove the underlying comempci access
code which is the only user of this (arch/m68knommu/kernel/comempci.c).
Nobody has used it in a very long time. And the hardware itself is
old, and completely brain-damaged by design.

Regards
Greg



> <--  snip  -->
> 
> Signed-off-by: Adrian Bunk <bunk@kernel.org>
> 
> ---
> 3bdc07c86b6fd5fc18b7676a75c3ff907e00e807 
> diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
> index 2e7515e..77a5bdf 100644
> --- a/arch/m68knommu/Kconfig
> +++ b/arch/m68knommu/Kconfig
> @@ -702,6 +702,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
>  
>  config PCI
>  	bool "PCI support"
> +	depends on BROKEN
>  	help
>  	  Support for PCI bus.
>  
> 
> 


-- 
------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     gerg@snapgear.com
SnapGear -- a Secure Computing Company      PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code
  2008-08-25  6:16 ` Greg Ungerer
@ 2008-08-25 20:43   ` Adrian Bunk
  2008-08-29  4:13     ` Greg Ungerer
  0 siblings, 1 reply; 19+ messages in thread
From: Adrian Bunk @ 2008-08-25 20:43 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: gerg, jbarnes, linux-kernel, linux-pci

On Mon, Aug 25, 2008 at 04:16:12PM +1000, Greg Ungerer wrote:
>
> Hi Adrian,
>
> Adrian Bunk wrote:
>> There exists blackfin hardware with PCI support, but the support
>> currently in the kernel fails to build starting with:
>>
>> <--  snip  -->
>>
>> ...
>>   CC      init/main.o
>> In file included from dma-mapping.h:5,
>>                  from dma-mapping.h:52,
>>                  from dmaengine.h:29,
>>                  from skbuff.h:29,
>>                  from netlink.h:155,
>>                  from genetlink.h:4,
>>                  from genetlink.h:4,
>>                  from taskstats_kern.h:12,
>>                  from main.c:46:
>> dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: error: 
>> implicit declaration of function 'pci_dma_supported'
>> ...
>> make[2]: *** [init/main.o] Error 1
>
> I think we should just remove the underlying comempci access
> code which is the only user of this (arch/m68knommu/kernel/comempci.c).
> Nobody has used it in a very long time. And the hardware itself is
> old, and completely brain-damaged by design.

A patch for removing the comempci code is below.

It's a bit suspicious that asm/elia.h is now removed since comempci.c 
was the only user. What's the sttus of the eLIA platform?

But COMEMPCI fails with a different error - this init/main.o build error 
is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency of PCI 
on BROKEN is still required (unless it gets fixed).

> Regards
> Greg

cu
Adrian


<--  snip  -->


The COMEMPCI code didn't even compile.

Greg Ungerer said:
I think we should just remove the underlying comempci access
code which is the only user of this (arch/m68knommu/kernel/comempci.c).
Nobody has used it in a very long time. And the hardware itself is
old, and completely brain-damaged by design.

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---

 arch/m68knommu/Kconfig              |    4 
 arch/m68knommu/include/asm/anchor.h |  112 ---
 arch/m68knommu/include/asm/elia.h   |   41 -
 arch/m68knommu/include/asm/mcfpci.h |  119 ---
 arch/m68knommu/include/asm/pci.h    |   23 
 arch/m68knommu/kernel/Makefile      |    1 
 arch/m68knommu/kernel/comempci.c    |  980 ----------------------------
 7 files changed, 1280 deletions(-)

6c2fed7cd1aad31f7c1518cfcb0d7d8f438ba8a4 
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 77a5bdf..15ffd55 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -706,10 +706,6 @@ config PCI
 	help
 	  Support for PCI bus.
 
-config COMEMPCI
-	bool "CO-MEM lite PCI controller support"
-	depends on (M5307 || M5407)
-
 source "drivers/pci/Kconfig"
 
 source "drivers/pcmcia/Kconfig"
diff --git a/arch/m68knommu/include/asm/anchor.h b/arch/m68knommu/include/asm/anchor.h
deleted file mode 100644
index 871c0d5..0000000
--- a/arch/m68knommu/include/asm/anchor.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************/
-
-/*
- *	anchor.h -- Anchor CO-MEM Lite PCI host bridge part.
- *
- *	(C) Copyright 2000, Moreton Bay (www.moreton.com.au)
- */
-
-/****************************************************************************/
-#ifndef	anchor_h
-#define	anchor_h
-/****************************************************************************/
-
-/*
- *	Define basic addressing info.
- */
-#if defined(CONFIG_M5407C3)
-#define	COMEM_BASE	0xFFFF0000	/* Base of CO-MEM address space */
-#define	COMEM_IRQ	25		/* IRQ of anchor part */
-#else
-#define	COMEM_BASE	0x80000000	/* Base of CO-MEM address space */
-#define	COMEM_IRQ	25		/* IRQ of anchor part */
-#endif
-
-/****************************************************************************/
-
-/*
- *	4-byte registers of CO-MEM, so adjust register addresses for
- *	easy access. Handy macro for word access too.
- */
-#define	LREG(a)		((a) >> 2)
-#define	WREG(a)		((a) >> 1)
-
-
-/*
- *	Define base addresses within CO-MEM Lite register address space.
- */
-#define	COMEM_I2O	0x0000		/* I2O registers */
-#define	COMEM_OPREGS	0x0400		/* Operation registers */
-#define	COMEM_PCIBUS	0x2000		/* Direct access to PCI bus */
-#define	COMEM_SHMEM	0x4000		/* Shared memory region */
-
-#define	COMEM_SHMEMSIZE	0x4000		/* Size of shared memory */
-
-
-/*
- *	Define CO-MEM Registers.
- */
-#define	COMEM_I2OHISR	0x0030		/* I2O host interrupt status */
-#define	COMEM_I2OHIMR	0x0034		/* I2O host interrupt mask */
-#define	COMEM_I2OLISR	0x0038		/* I2O local interrupt status */
-#define	COMEM_I2OLIMR	0x003c		/* I2O local interrupt mask */
-#define	COMEM_IBFPFIFO	0x0040		/* I2O inbound free/post FIFO */
-#define	COMEM_OBPFFIFO	0x0044		/* I2O outbound post/free FIFO */
-#define	COMEM_IBPFFIFO	0x0048		/* I2O inbound post/free FIFO */
-#define	COMEM_OBFPFIFO	0x004c		/* I2O outbound free/post FIFO */
-
-#define	COMEM_DAHBASE	0x0460		/* Direct access base address */
-
-#define	COMEM_NVCMD	0x04a0		/* I2C serial command */
-#define	COMEM_NVREAD	0x04a4		/* I2C serial read */
-#define	COMEM_NVSTAT	0x04a8		/* I2C status */
-
-#define	COMEM_DMALBASE	0x04b0		/* DMA local base address */
-#define	COMEM_DMAHBASE	0x04b4		/* DMA host base address */
-#define	COMEM_DMASIZE	0x04b8		/* DMA size */
-#define	COMEM_DMACTL	0x04bc		/* DMA control */
-
-#define	COMEM_HCTL	0x04e0		/* Host control */
-#define	COMEM_HINT	0x04e4		/* Host interrupt control/status */
-#define	COMEM_HLDATA	0x04e8		/* Host to local data mailbox */
-#define	COMEM_LINT	0x04f4		/* Local interrupt contole status */
-#define	COMEM_LHDATA	0x04f8		/* Local to host data mailbox */
-
-#define	COMEM_LBUSCFG	0x04fc		/* Local bus configuration */
-
-
-/*
- *	Commands and flags for use with Direct Access Register.
- */
-#define	COMEM_DA_IACK	0x00000000	/* Interrupt acknowledge (read) */
-#define	COMEM_DA_SPCL	0x00000010	/* Special cycle (write) */
-#define	COMEM_DA_MEMRD	0x00000004	/* Memory read cycle */
-#define	COMEM_DA_MEMWR	0x00000004	/* Memory write cycle */
-#define	COMEM_DA_IORD	0x00000002	/* I/O read cycle */
-#define	COMEM_DA_IOWR	0x00000002	/* I/O write cycle */
-#define	COMEM_DA_CFGRD	0x00000006	/* Configuration read cycle */
-#define	COMEM_DA_CFGWR	0x00000006	/* Configuration write cycle */
-
-#define	COMEM_DA_ADDR(a)	((a) & 0xffffe000)
-
-#define	COMEM_DA_OFFSET(a)	((a) & 0x00001fff)
-
-
-/*
- *	The PCI bus will be limited in what slots will actually be used.
- *	Define valid device numbers for different boards.
- */
-#if defined(CONFIG_M5407C3)
-#define	COMEM_MINDEV	14		/* Minimum valid DEVICE */
-#define	COMEM_MAXDEV	14		/* Maximum valid DEVICE */
-#define	COMEM_BRIDGEDEV	15		/* Slot bridge is in */
-#else
-#define	COMEM_MINDEV	0		/* Minimum valid DEVICE */
-#define	COMEM_MAXDEV	3		/* Maximum valid DEVICE */
-#endif
-
-#define	COMEM_MAXPCI	(COMEM_MAXDEV+1)	/* Maximum PCI devices */
-
-
-/****************************************************************************/
-#endif	/* anchor_h */
diff --git a/arch/m68knommu/include/asm/elia.h b/arch/m68knommu/include/asm/elia.h
deleted file mode 100644
index e037d4e..0000000
--- a/arch/m68knommu/include/asm/elia.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************/
-
-/*
- *	elia.h -- Lineo (formerly Moreton Bay) eLIA platform support.
- *
- *	(C) Copyright 1999-2000, Moreton Bay (www.moreton.com.au)
- *	(C) Copyright 1999-2000, Lineo (www.lineo.com)
- */
-
-/****************************************************************************/
-#ifndef	elia_h
-#define	elia_h
-/****************************************************************************/
-
-#include <asm/coldfire.h>
-
-#ifdef CONFIG_eLIA
-
-/*
- *	The serial port DTR and DCD lines are also on the Parallel I/O
- *	as well, so define those too.
- */
-
-#define	eLIA_DCD1		0x0001
-#define	eLIA_DCD0		0x0002
-#define	eLIA_DTR1		0x0004
-#define	eLIA_DTR0		0x0008
-
-#define	eLIA_PCIRESET		0x0020
-
-/*
- *	Kernel macros to set and unset the LEDs.
- */
-#ifndef __ASSEMBLY__
-extern unsigned short	ppdata;
-#endif /* __ASSEMBLY__ */
-
-#endif	/* CONFIG_eLIA */
-
-/****************************************************************************/
-#endif	/* elia_h */
diff --git a/arch/m68knommu/include/asm/mcfpci.h b/arch/m68knommu/include/asm/mcfpci.h
deleted file mode 100644
index f1507dd..0000000
--- a/arch/m68knommu/include/asm/mcfpci.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************/
-
-/*
- *	mcfpci.h -- PCI bridge on ColdFire eval boards.
- *
- *	(C) Copyright 2000, Greg Ungerer (gerg@snapgear.com)
- *	(C) Copyright 2000, Lineo Inc. (www.lineo.com)
- */
-
-/****************************************************************************/
-#ifndef	mcfpci_h
-#define	mcfpci_h
-/****************************************************************************/
-
-
-#ifdef CONFIG_PCI
-
-/*
- *	Address regions in the PCI address space are not mapped into the
- *	normal memory space of the ColdFire. They must be accessed via
- *	handler routines. This is easy for I/O space (inb/outb/etc) but
- *	needs some code changes to support ordinary memory. Interrupts
- *	also need to be vectored through the PCI handler first, then it
- *	will call the actual driver sub-handlers.
- */
-
-/*
- *	Un-define all the standard I/O access routines.
- */
-#undef	inb
-#undef	inw
-#undef	inl
-#undef	inb_p
-#undef	inw_p
-#undef	insb
-#undef	insw
-#undef	insl
-#undef	outb
-#undef	outw
-#undef	outl
-#undef	outb_p
-#undef	outw_p
-#undef	outsb
-#undef	outsw
-#undef	outsl
-
-#undef	request_irq
-#undef	free_irq
-
-#undef	bus_to_virt
-#undef	virt_to_bus
-
-
-/*
- *	Re-direct all I/O memory accesses functions to PCI specific ones.
- */
-#define	inb	pci_inb
-#define	inw	pci_inw
-#define	inl	pci_inl
-#define	inb_p	pci_inb
-#define	inw_p	pci_inw
-#define	insb	pci_insb
-#define	insw	pci_insw
-#define	insl	pci_insl
-
-#define	outb	pci_outb
-#define	outw	pci_outw
-#define	outl	pci_outl
-#define	outb_p	pci_outb
-#define	outw_p	pci_outw
-#define	outsb	pci_outsb
-#define	outsw	pci_outsw
-#define	outsl	pci_outsl
-
-#define	request_irq	pci_request_irq
-#define	free_irq	pci_free_irq
-
-#define	virt_to_bus	pci_virt_to_bus
-#define	bus_to_virt	pci_bus_to_virt
-
-#define	CONFIG_COMEMPCI	1
-
-
-/*
- *	Prototypes of the real PCI functions (defined in bios32.c).
- */
-unsigned char	pci_inb(unsigned int addr);
-unsigned short	pci_inw(unsigned int addr);
-unsigned int	pci_inl(unsigned int addr);
-void		pci_insb(void *addr, void *buf, int len);
-void		pci_insw(void *addr, void *buf, int len);
-void		pci_insl(void *addr, void *buf, int len);
-
-void		pci_outb(unsigned char val, unsigned int addr);
-void		pci_outw(unsigned short val, unsigned int addr);
-void		pci_outl(unsigned int val, unsigned int addr);
-void		pci_outsb(void *addr, void *buf, int len);
-void		pci_outsw(void *addr, void *buf, int len);
-void		pci_outsl(void *addr, void *buf, int len);
-
-int		pci_request_irq(unsigned int irq,
-			void (*handler)(int, void *, struct pt_regs *),
-			unsigned long flags,
-			const char *device,
-			void *dev_id);
-void		pci_free_irq(unsigned int irq, void *dev_id);
-
-void		*pci_bmalloc(int size);
-void		pci_bmfree(void *bmp, int len);
-void		pci_copytoshmem(unsigned long bmp, void *src, int size);
-void		pci_copyfromshmem(void *dst, unsigned long bmp, int size);
-unsigned long	pci_virt_to_bus(volatile void *address);
-void		*pci_bus_to_virt(unsigned long address);
-void		pci_bmcpyto(void *dst, void *src, int len);
-void		pci_bmcpyfrom(void *dst, void *src, int len);
-
-#endif /* CONFIG_PCI */
-/****************************************************************************/
-#endif	/* mcfpci_h */
diff --git a/arch/m68knommu/include/asm/pci.h b/arch/m68knommu/include/asm/pci.h
index a13f3cc..8031d1d 100644
--- a/arch/m68knommu/include/asm/pci.h
+++ b/arch/m68knommu/include/asm/pci.h
@@ -3,27 +3,4 @@
 
 #include <asm-m68k/pci.h>
 
-#ifdef CONFIG_COMEMPCI
-/*
- *	These are pretty much arbitary with the CoMEM implementation.
- *	We have the whole address space to ourselves.
- */
-#define PCIBIOS_MIN_IO		0x100
-#define PCIBIOS_MIN_MEM		0x00010000
-
-#define pcibios_scan_all_fns(a, b)	0
-
-/*
- * Return whether the given PCI device DMA address mask can
- * be supported properly.  For example, if your device can
- * only drive the low 24-bits during PCI bus mastering, then
- * you would pass 0x00ffffff as the mask to this function.
- */
-static inline int pci_dma_supported(struct pci_dev *hwdev, u64 mask)
-{
-	return 1;
-}
-
-#endif /* CONFIG_COMEMPCI */
-
 #endif /* M68KNOMMU_PCI_H */
diff --git a/arch/m68knommu/kernel/Makefile b/arch/m68knommu/kernel/Makefile
index f0eab3d..37c3fc0 100644
--- a/arch/m68knommu/kernel/Makefile
+++ b/arch/m68knommu/kernel/Makefile
@@ -8,4 +8,3 @@ obj-y += dma.o entry.o init_task.o irq.o m68k_ksyms.o process.o ptrace.o \
 	 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
 
 obj-$(CONFIG_MODULES)	+= module.o
-obj-$(CONFIG_COMEMPCI)	+= comempci.o
diff --git a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c
deleted file mode 100644
index 0a68b5a..0000000
--- a/arch/m68knommu/kernel/comempci.c
+++ /dev/null
@@ -1,980 +0,0 @@
-/*****************************************************************************/
-
-/*
- *	comemlite.c -- PCI access code for embedded CO-MEM Lite PCI controller.
- *
- *	(C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com).
- *	(C) Copyright 2000, Lineo (www.lineo.com)
- */
-
-/*****************************************************************************/
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <linux/ptrace.h>
-#include <linux/spinlock.h>
-#include <linux/interrupt.h>
-#include <linux/sched.h>
-#include <asm/coldfire.h>
-#include <asm/mcfsim.h>
-#include <asm/irq.h>
-#include <asm/anchor.h>
-
-#ifdef CONFIG_eLIA
-#include <asm/elia.h>
-#endif
-
-/*****************************************************************************/
-
-/*
- *	Debug configuration defines. DEBUGRES sets debugging output for
- *	the resource allocation phase. DEBUGPCI traces on pcibios_ function
- *	calls, and DEBUGIO traces all accesses to devices on the PCI bus.
- */
-/*#define	DEBUGRES	1*/
-/*#define	DEBUGPCI	1*/
-/*#define	DEBUGIO		1*/
-
-/*****************************************************************************/
-
-/*
- *	PCI markers for bus present and active slots.
- */
-int		pci_bus_is_present = 0;
-unsigned long	pci_slotmask = 0;
-
-/*
- *	We may or may not need to swap the bytes of PCI bus tranfers.
- *	The endianess is re-roder automatically by the CO-MEM, but it
- *	will get the wrong byte order for a pure data stream.
- */
-#define	pci_byteswap	0
-
-
-/*
- *	Resource tracking. The CO-MEM part creates a virtual address
- *	space that all the PCI devices live in - it is not in any way
- *	directly mapped into the ColdFire address space. So we can
- *	really assign any resources we like to devices, as long as
- *	they do not clash with other PCI devices.
- */
-unsigned int	pci_iobase = PCIBIOS_MIN_IO;	/* Arbitrary start address */
-unsigned int	pci_membase = PCIBIOS_MIN_MEM;	/* Arbitrary start address */
-
-#define	PCI_MINIO	0x100			/* 256 byte minimum I/O */
-#define	PCI_MINMEM	0x00010000		/* 64k minimum chunk */
-
-/*
- *	The CO-MEM's shared memory segment is visible inside the PCI
- *	memory address space. We need to keep track of the address that
- *	this is mapped at, to setup the bus masters pointers.
- */
-unsigned int	pci_shmemaddr;
-
-/*****************************************************************************/
-
-void	pci_interrupt(int irq, void *id, struct pt_regs *fp);
-
-/*****************************************************************************/
-
-/*
- *	Some platforms have custom ways of reseting the PCI bus.
- */
-
-void pci_resetbus(void)
-{
-#ifdef CONFIG_eLIA
-	int	i;
-
-#ifdef DEBUGPCI
-	printk(KERN_DEBUG "pci_resetbus()\n");
-#endif
-
-	*((volatile unsigned short *) (MCF_MBAR+MCFSIM_PADDR)) |= eLIA_PCIRESET;
-	for (i = 0; (i < 1000); i++) {
-		*((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = 
-			(ppdata | eLIA_PCIRESET);
-	}
-
-
-	*((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = ppdata;
-#endif
-}
-
-/*****************************************************************************/
-
-int pcibios_assign_resource_slot(int slot)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned char	*ip;
-	unsigned int		idsel, addr, val, align, i;
-	int			bar;
-
-#ifdef DEBUGPCI
-	printk(KERN_INFO "pcibios_assign_resource_slot(slot=%x)\n", slot);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
-
-	/* Try to assign resource to each BAR */
-	for (bar = 0; (bar < 6); bar++) {
-		addr = COMEM_PCIBUS + PCI_BASE_ADDRESS_0 + (bar * 4);
-		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
-		val = rp[LREG(addr)];
-#ifdef DEBUGRES
-		printk(KERN_DEBUG "-----------------------------------"
-			"-------------------------------------\n");
-		printk(KERN_DEBUG "BAR[%d]: read=%08x ", bar, val);
-#endif
-
-		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
-		rp[LREG(addr)] = 0xffffffff;
-
-		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
-		val = rp[LREG(addr)];
-#ifdef DEBUGRES
-		printk(KERN_DEBUG "write=%08x ", val);
-#endif
-		if (val == 0) {
-#ifdef DEBUGRES
-			printk(KERN_DEBUG "\n");
-#endif
-			continue;
-		}
-
-		/* Determine space required by BAR */
-		/* FIXME: this should go backwords from 0x80000000... */
-		for (i = 0; (i < 32); i++) {
-			if ((0x1 << i) & (val & 0xfffffffc))
-				break;
-		}
-
-#ifdef DEBUGRES
-		printk(KERN_DEBUG "size=%08x(%d)\n", (0x1 << i), i);
-#endif
-		i = 0x1 << i;
-
-		/* Assign a resource */
-		if (val & PCI_BASE_ADDRESS_SPACE_IO) {
-			if (i < PCI_MINIO)
-				i = PCI_MINIO;
-#ifdef DEBUGRES
-			printk(KERN_DEBUG "BAR[%d]: IO size=%08x iobase=%08x\n",
-				bar, i, pci_iobase);
-#endif
-			if (i > 0xffff) {
-				/* Invalid size?? */
-				val = 0 | PCI_BASE_ADDRESS_SPACE_IO;
-#ifdef DEBUGRES
-				printk(KERN_DEBUG "BAR[%d]: too big for IO??\n", bar);
-#endif
-			} else {
-				/* Check for un-alignment */
-				if ((align = pci_iobase % i))
-					pci_iobase += (i - align);
-				val = pci_iobase | PCI_BASE_ADDRESS_SPACE_IO;
-				pci_iobase += i;
-			}
-		} else {
-			if (i < PCI_MINMEM)
-				i = PCI_MINMEM;
-#ifdef DEBUGRES
-			printk(KERN_DEBUG "BAR[%d]: MEMORY size=%08x membase=%08x\n",
-				bar, i, pci_membase);
-#endif
-			/* Check for un-alignment */
-			if ((align = pci_membase % i))
-				pci_membase += (i - align);
-			val = pci_membase | PCI_BASE_ADDRESS_SPACE_MEMORY;
-			pci_membase += i;
-		}
-
-		/* Write resource back into BAR register */
-		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
-		rp[LREG(addr)] = val;
-#ifdef DEBUGRES
-		printk(KERN_DEBUG "BAR[%d]: assigned bar=%08x\n", bar, val);
-#endif
-	}
-
-#ifdef DEBUGRES
-	printk(KERN_DEBUG "-----------------------------------"
-			"-------------------------------------\n");
-#endif
-
-	/* Assign IRQ if one is wanted... */
-	ip = (volatile unsigned char *) (COMEM_BASE + COMEM_PCIBUS);
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
-
-	addr = (PCI_INTERRUPT_PIN & 0xfc) + (~PCI_INTERRUPT_PIN & 0x03);
-	if (ip[addr]) {
-		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
-		addr = (PCI_INTERRUPT_LINE & 0xfc)+(~PCI_INTERRUPT_LINE & 0x03);
-		ip[addr] = 25;
-#ifdef DEBUGRES
-		printk(KERN_DEBUG "IRQ LINE=25\n");
-#endif
-	}
-
-	return(0);
-}
-
-/*****************************************************************************/
-
-int pcibios_enable_slot(int slot)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned short	*wp;
-	unsigned int		idsel, addr;
-	unsigned short		cmd;
-
-#ifdef DEBUGPCI
-	printk(KERN_DEBUG "pcibios_enbale_slot(slot=%x)\n", slot);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	wp = (volatile unsigned short *) COMEM_BASE;
-	idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
-
-	/* Get current command settings */
-	addr = COMEM_PCIBUS + PCI_COMMAND;
-	addr = (addr & ~0x3) + (~addr & 0x02);
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
-	cmd = wp[WREG(addr)];
-	/*val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);*/
-
-	/* Enable I/O and memory accesses to this device */
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
-	cmd |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER;
-	wp[WREG(addr)] = cmd;
-
-	return(0);
-}
-
-/*****************************************************************************/
-
-void pcibios_assign_resources(void)
-{
-	volatile unsigned long	*rp;
-	unsigned long		sel, id;
-	int			slot;
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-
-	/*
-	 *	Do a quick scan of the PCI bus and see what is here.
-	 */
-	for (slot = COMEM_MINDEV; (slot <= COMEM_MAXDEV); slot++) {
-		sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
-		rp[LREG(COMEM_DAHBASE)] = sel;
-		rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
-		id = rp[LREG(COMEM_PCIBUS)];
-		if ((id != 0) && ((id & 0xffff0000) != (sel & 0xffff0000))) {
-			printk(KERN_INFO "PCI: slot=%d id=%08x\n", slot, (int) id);
-			pci_slotmask |= 0x1 << slot;
-			pcibios_assign_resource_slot(slot);
-			pcibios_enable_slot(slot);
-		}
-	}
-}
-
-/*****************************************************************************/
-
-int pcibios_init(void)
-{
-	volatile unsigned long	*rp;
-	unsigned long		sel, id;
-	int			slot;
-
-#ifdef DEBUGPCI
-	printk(KERN_DEBUG "pcibios_init()\n");
-#endif
-
-	pci_resetbus();
-
-	/*
-	 *	Do some sort of basic check to see if the CO-MEM part
-	 *	is present... This works ok, but I think we really need
-	 *	something better...
-	 */
-	rp = (volatile unsigned long *) COMEM_BASE;
-	if ((rp[LREG(COMEM_LBUSCFG)] & 0xff) != 0x50) {
-		printk(KERN_INFO "PCI: no PCI bus present\n");
-		return(0);
-	}
-
-#ifdef COMEM_BRIDGEDEV
-	/*
-	 *	Setup the PCI bridge device first. It needs resources too,
-	 *	so that bus masters can get to its shared memory.
-	 */
-	slot = COMEM_BRIDGEDEV;
-	sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
-	rp[LREG(COMEM_DAHBASE)] = sel;
-	rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
-	id = rp[LREG(COMEM_PCIBUS)];
-	if ((id == 0) || ((id & 0xffff0000) == (sel & 0xffff0000))) {
-		printk(KERN_INFO "PCI: no PCI bus bridge present\n");
-		return(0);
-	}
-
-	printk(KERN_INFO "PCI: bridge device at slot=%d id=%08x\n", slot, (int) id);
-	pci_slotmask |= 0x1 << slot;
-	pci_shmemaddr = pci_membase;
-	pcibios_assign_resource_slot(slot);
-	pcibios_enable_slot(slot);
-#endif
-
-	pci_bus_is_present = 1;
-
-	/* Get PCI irq for local vectoring */
-	if (request_irq(COMEM_IRQ, pci_interrupt, 0, "PCI bridge", NULL)) {
-		printk(KERN_WARNING "PCI: failed to acquire interrupt %d\n", COMEM_IRQ);
-	} else {
-		mcf_autovector(COMEM_IRQ);
-	}
-
-	pcibios_assign_resources();
-
-	return(0);
-}
-
-/*****************************************************************************/
-
-char *pcibios_setup(char *option)
-{
-	/* Nothing for us to handle. */
-	return(option);
-}
-/*****************************************************************************/
-
-void pcibios_fixup_bus(struct pci_bus *b)
-{
-}
-
-/*****************************************************************************/
-
-void pcibios_align_resource(void *data, struct resource *res,
-				resource_size_t size, resource_size_t align)
-{
-}
-
-/*****************************************************************************/
-
-int pcibios_enable_device(struct pci_dev *dev, int mask)
-{
-	int slot;
-
-	slot = PCI_SLOT(dev->devfn);
-	if ((dev->bus == 0) && (pci_slotmask & (1 << slot)))
-		pcibios_enable_slot(slot);
-	return(0);
-}
-
-/*****************************************************************************/
-
-/*
- *	Local routines to interrcept the standard I/O and vector handling
- *	code. Don't include this 'till now - initialization code above needs
- *	access to the real code too.
- */
-#include <asm/mcfpci.h>
-
-/*****************************************************************************/
-
-void pci_outb(unsigned char val, unsigned int addr)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned char	*bp;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_outb(val=%02x,addr=%x)\n", val, addr);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	bp = (volatile unsigned char *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
-	addr = (addr & ~0x3) + (~addr & 0x03);
-	bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
-}
-
-/*****************************************************************************/
-
-void pci_outw(unsigned short val, unsigned int addr)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned short	*sp;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_outw(val=%04x,addr=%x)\n", val, addr);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	sp = (volatile unsigned short *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
-	addr = (addr & ~0x3) + (~addr & 0x02);
-	if (pci_byteswap)
-		val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
-	sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
-}
-
-/*****************************************************************************/
-
-void pci_outl(unsigned int val, unsigned int addr)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned int	*lp;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_outl(val=%08x,addr=%x)\n", val, addr);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	lp = (volatile unsigned int *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
-
-	if (pci_byteswap)
-		val = (val << 24) | ((val & 0x0000ff00) << 8) |
-			((val & 0x00ff0000) >> 8) | (val >> 24);
-
-	lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
-}
-
-/*****************************************************************************/
-
-unsigned long	pci_blmask[] = {
-	0x000000e0,
-	0x000000d0,
-	0x000000b0,
-	0x00000070
-};
-
-unsigned char pci_inb(unsigned int addr)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned char	*bp;
-	unsigned long		r;
-	unsigned char		val;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_inb(addr=%x)\n", addr);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	bp = (volatile unsigned char *) COMEM_BASE;
-
-	r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_blmask[(addr & 0x3)];
-	rp[LREG(COMEM_DAHBASE)] = r;
-
-	addr = (addr & ~0x3) + (~addr & 0x3);
-	val = bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
-	return(val);
-}
-
-/*****************************************************************************/
-
-unsigned long	pci_bwmask[] = {
-	0x000000c0,
-	0x000000c0,
-	0x00000030,
-	0x00000030
-};
-
-unsigned short pci_inw(unsigned int addr)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned short	*sp;
-	unsigned long		r;
-	unsigned short		val;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_inw(addr=%x)", addr);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_bwmask[(addr & 0x3)];
-	rp[LREG(COMEM_DAHBASE)] = r;
-
-	sp = (volatile unsigned short *) COMEM_BASE;
-	addr = (addr & ~0x3) + (~addr & 0x02);
-	val = sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
-	if (pci_byteswap)
-		val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "=%04x\n", val);
-#endif
-	return(val);
-}
-
-/*****************************************************************************/
-
-unsigned int pci_inl(unsigned int addr)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned int	*lp;
-	unsigned int		val;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_inl(addr=%x)", addr);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	lp = (volatile unsigned int *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(addr);
-	val = lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
-
-	if (pci_byteswap)
-		val = (val << 24) | ((val & 0x0000ff00) << 8) |
-			((val & 0x00ff0000) >> 8) | (val >> 24);
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "=%08x\n", val);
-#endif
-	return(val);
-}
-
-/*****************************************************************************/
-
-void pci_outsb(void *addr, void *buf, int len)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned char	*bp;
-	unsigned char		*dp = (unsigned char *) buf;
-	unsigned int		a = (unsigned int) addr;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
-
-	a = (a & ~0x3) + (~a & 0x03);
-	bp = (volatile unsigned char *)
-		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
-
-	while (len--)
-		*bp = *dp++;
-}
-
-/*****************************************************************************/
-
-void pci_outsw(void *addr, void *buf, int len)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned short	*wp;
-	unsigned short		w, *dp = (unsigned short *) buf;
-	unsigned int		a = (unsigned int) addr;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
-
-	a = (a & ~0x3) + (~a & 0x2);
-	wp = (volatile unsigned short *)
-		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
-
-	while (len--) {
-		w = *dp++;
-		if (pci_byteswap)
-			w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
-		*wp = w;
-	}
-}
-
-/*****************************************************************************/
-
-void pci_outsl(void *addr, void *buf, int len)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned long	*lp;
-	unsigned long		l, *dp = (unsigned long *) buf;
-	unsigned int		a = (unsigned int) addr;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
-
-	lp = (volatile unsigned long *)
-		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
-
-	while (len--) {
-		l = *dp++;
-		if (pci_byteswap)
-			l = (l << 24) | ((l & 0x0000ff00) << 8) |
-				((l & 0x00ff0000) >> 8) | (l >> 24);
-		*lp = l;
-	}
-}
-
-/*****************************************************************************/
-
-void pci_insb(void *addr, void *buf, int len)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned char	*bp;
-	unsigned char		*dp = (unsigned char *) buf;
-	unsigned int		a = (unsigned int) addr;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
-
-	a = (a & ~0x3) + (~a & 0x03);
-	bp = (volatile unsigned char *)
-		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
-
-	while (len--)
-		*dp++ = *bp;
-}
-
-/*****************************************************************************/
-
-void pci_insw(void *addr, void *buf, int len)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned short	*wp;
-	unsigned short		w, *dp = (unsigned short *) buf;
-	unsigned int		a = (unsigned int) addr;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
-
-	a = (a & ~0x3) + (~a & 0x2);
-	wp = (volatile unsigned short *)
-		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
-
-	while (len--) {
-		w = *wp;
-		if (pci_byteswap)
-			w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
-		*dp++ = w;
-	}
-}
-
-/*****************************************************************************/
-
-void pci_insl(void *addr, void *buf, int len)
-{
-	volatile unsigned long	*rp;
-	volatile unsigned long	*lp;
-	unsigned long		l, *dp = (unsigned long *) buf;
-	unsigned int		a = (unsigned int) addr;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
-#endif
-
-	rp = (volatile unsigned long *) COMEM_BASE;
-	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
-
-	lp = (volatile unsigned long *)
-		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
-
-	while (len--) {
-		l = *lp;
-		if (pci_byteswap)
-			l = (l << 24) | ((l & 0x0000ff00) << 8) |
-				((l & 0x00ff0000) >> 8) | (l >> 24);
-		*dp++ = l;
-	}
-}
-
-/*****************************************************************************/
-
-struct pci_localirqlist {
-	void		(*handler)(int, void *, struct pt_regs *);
-	const char	*device;
-	void		*dev_id;
-};
-
-struct pci_localirqlist	pci_irqlist[COMEM_MAXPCI];
-
-/*****************************************************************************/
-
-int pci_request_irq(unsigned int irq,
-	void (*handler)(int, void *, struct pt_regs *),
-	unsigned long flags, const char *device, void *dev_id)
-{
-	int	i;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s,"
-		"dev_id=%x)\n", irq, (int) handler, (int) flags, device,
-		(int) dev_id);
-#endif
-
-	/* Check if this interrupt handler is already lodged */
-	for (i = 0; (i < COMEM_MAXPCI); i++) {
-		if (pci_irqlist[i].handler == handler)
-			return(0);
-	}
-
-	/* Find a free spot to put this handler */
-	for (i = 0; (i < COMEM_MAXPCI); i++) {
-		if (pci_irqlist[i].handler == 0) {
-			pci_irqlist[i].handler = handler;
-			pci_irqlist[i].device = device;
-			pci_irqlist[i].dev_id = dev_id;
-			return(0);
-		}
-	}
-
-	/* Couldn't fit?? */
-	return(1);
-}
-
-/*****************************************************************************/
-
-void pci_free_irq(unsigned int irq, void *dev_id)
-{
-	int	i;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id);
-#endif
-
-	if (dev_id == (void *) NULL)
-		return;
-
-	/* Check if this interrupt handler is lodged */
-	for (i = 0; (i < COMEM_MAXPCI); i++) {
-		if (pci_irqlist[i].dev_id == dev_id) {
-			pci_irqlist[i].handler = NULL;
-			pci_irqlist[i].device = NULL;
-			pci_irqlist[i].dev_id = NULL;
-			break;
-		}
-	}
-}
-
-/*****************************************************************************/
-
-void pci_interrupt(int irq, void *id, struct pt_regs *fp)
-{
-	int	i;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp);
-#endif
-
-	for (i = 0; (i < COMEM_MAXPCI); i++) {
-		if (pci_irqlist[i].handler)
-			(*pci_irqlist[i].handler)(irq,pci_irqlist[i].dev_id,fp);
-	}
-}
-
-/*****************************************************************************/
-
-/*
- *	The shared memory region is broken up into contiguous 512 byte
- *	regions for easy allocation... This is not an optimal solution
- *	but it makes allocation and freeing regions really easy.
- */
-
-#define	PCI_MEMSLOTSIZE		512
-#define	PCI_MEMSLOTS		(COMEM_SHMEMSIZE / PCI_MEMSLOTSIZE)
-
-char	pci_shmemmap[PCI_MEMSLOTS];
-
-
-void *pci_bmalloc(int size)
-{
-	int	i, j, nrslots;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_bmalloc(size=%d)\n", size);
-#endif
-
-	if (size <= 0)
-		return((void *) NULL);
-
-	nrslots = (size - 1) / PCI_MEMSLOTSIZE;
-
-	for (i = 0; (i < (PCI_MEMSLOTS-nrslots)); i++) {
-		if (pci_shmemmap[i] == 0) {
-			for (j = i+1; (j < (i+nrslots)); j++) {
-				if (pci_shmemmap[j])
-					goto restart;
-			}
-
-			for (j = i; (j <= i+nrslots); j++)
-				pci_shmemmap[j] = 1;
-			break;
-		}
-restart:
-	}
-
-	return((void *) (COMEM_BASE + COMEM_SHMEM + (i * PCI_MEMSLOTSIZE)));
-}
-
-/*****************************************************************************/
-
-void pci_bmfree(void *mp, int size)
-{
-	int	i, j, nrslots;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_bmfree(mp=%x,size=%d)\n", (int) mp, size);
-#endif
-
-	nrslots = size / PCI_MEMSLOTSIZE;
-	i = (((unsigned long) mp) - (COMEM_BASE + COMEM_SHMEM)) /
-		PCI_MEMSLOTSIZE;
-
-	for (j = i; (j < (i+nrslots)); j++)
-		pci_shmemmap[j] = 0;
-}
-
-/*****************************************************************************/
-
-unsigned long pci_virt_to_bus(volatile void *address)
-{
-	unsigned long	l;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_virt_to_bus(address=%x)", (int) address);
-#endif
-
-	l = ((unsigned long) address) - COMEM_BASE;
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "=%x\n", (int) (l+pci_shmemaddr));
-#endif
-	return(l + pci_shmemaddr);
-}
-
-/*****************************************************************************/
-
-void *pci_bus_to_virt(unsigned long address)
-{
-	unsigned long	l;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_bus_to_virt(address=%x)", (int) address);
-#endif
-
-	l = address - pci_shmemaddr;
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "=%x\n", (int) (address + COMEM_BASE));
-#endif
-	return((void *) (address + COMEM_BASE));
-}
-
-/*****************************************************************************/
-
-void pci_bmcpyto(void *dst, void *src, int len)
-{
-	unsigned long	*dp, *sp, val;
-	unsigned char	*dcp, *scp;
-	int		i, j;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len);
-#endif
-
-	dp = (unsigned long *) dst;
-	sp = (unsigned long *) src;
-	i = len >> 2;
-
-#if 0
-	printk(KERN_INFO "DATA:");
-	scp = (unsigned char *) sp;
-	for (i = 0; (i < len); i++) {
-		if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
-		printk(KERN_INFO "%02x ", *scp++);
-	}
-	printk(KERN_INFO "\n");
-#endif
-
-	for (j = 0; (i >= 0); i--, j++) {
-		val = *sp++;
-		val = (val << 24) | ((val & 0x0000ff00) << 8) |
-			((val & 0x00ff0000) >> 8) | (val >> 24);
-		*dp++ = val;
-	}
-
-	if (len & 0x3) {
-		dcp = (unsigned char *) dp;
-		scp = ((unsigned char *) sp) + 3;
-		for (i = 0; (i < (len & 0x3)); i++)
-			*dcp++ = *scp--;
-	}
-}
-
-/*****************************************************************************/
-
-void pci_bmcpyfrom(void *dst, void *src, int len)
-{
-	unsigned long	*dp, *sp, val;
-	unsigned char	*dcp, *scp;
-	int		i;
-
-#ifdef DEBUGIO
-	printk(KERN_DEBUG "pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len);
-#endif
-
-	dp = (unsigned long *) dst;
-	sp = (unsigned long *) src;
-	i = len >> 2;
-
-	for (; (i >= 0); i--) {
-		val = *sp++;
-		val = (val << 24) | ((val & 0x0000ff00) << 8) |
-			((val & 0x00ff0000) >> 8) | (val >> 24);
-		*dp++ = val;
-	}
-
-	if (len & 0x3) {
-		dcp = ((unsigned char *) dp) + 3;
-		scp = (unsigned char *) sp;
-		for (i = 0; (i < (len & 0x3)); i++)
-			*dcp++ = *scp--;
-	}
-
-#if 0
-	printk(KERN_INFO "DATA:");
-	dcp = (unsigned char *) dst;
-	for (i = 0; (i < len); i++) {
-		if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
-		printk(KERN_INFO "%02x ", *dcp++);
-	}
-	printk(KERN_INFO "\n");
-#endif
-}
-
-/*****************************************************************************/
-
-void *pci_alloc_consistent(struct pci_dev *dev, size_t size, dma_addr_t *dma_addr)
-{
-	void *mp;
-	if ((mp = pci_bmalloc(size)) != NULL) {
-		dma_addr = mp - (COMEM_BASE + COMEM_SHMEM);
-		return(mp);
-	}
-	*dma_addr = (dma_addr_t) NULL;
-	return(NULL);
-}
-
-/*****************************************************************************/
-
-void pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr, dma_addr_t dma_addr)
-{
-	pci_bmfree(cpu_addr, size);
-}
-
-/*****************************************************************************/


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code
  2008-08-25 20:43   ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Adrian Bunk
@ 2008-08-29  4:13     ` Greg Ungerer
  2008-08-29  7:01       ` Adrian Bunk
  2008-08-31 16:10       ` [2.6 patch] m68knommu: remove the unused PCI option Adrian Bunk
  0 siblings, 2 replies; 19+ messages in thread
From: Greg Ungerer @ 2008-08-29  4:13 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: gerg, jbarnes, linux-kernel, linux-pci

Hi Adrian,

Adrian Bunk wrote:
> On Mon, Aug 25, 2008 at 04:16:12PM +1000, Greg Ungerer wrote:
>> Hi Adrian,
>>
>> Adrian Bunk wrote:
>>> There exists blackfin hardware with PCI support, but the support
>>> currently in the kernel fails to build starting with:
>>>
>>> <--  snip  -->
>>>
>>> ...
>>>   CC      init/main.o
>>> In file included from dma-mapping.h:5,
>>>                  from dma-mapping.h:52,
>>>                  from dmaengine.h:29,
>>>                  from skbuff.h:29,
>>>                  from netlink.h:155,
>>>                  from genetlink.h:4,
>>>                  from genetlink.h:4,
>>>                  from taskstats_kern.h:12,
>>>                  from main.c:46:
>>> dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: error: 
>>> implicit declaration of function 'pci_dma_supported'
>>> ...
>>> make[2]: *** [init/main.o] Error 1
>> I think we should just remove the underlying comempci access
>> code which is the only user of this (arch/m68knommu/kernel/comempci.c).
>> Nobody has used it in a very long time. And the hardware itself is
>> old, and completely brain-damaged by design.
> 
> A patch for removing the comempci code is below.
> 
> It's a bit suspicious that asm/elia.h is now removed since comempci.c 
> was the only user. What's the sttus of the eLIA platform?

Only ever a handful where made, and that was in 1999.
I doubt anyone could ever use the PCI interface on it
in any useful way.


> But COMEMPCI fails with a different error - this init/main.o build error 
> is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency of PCI 
> on BROKEN is still required (unless it gets fixed).

Unless I am mistaken there is now no need for the CONFIG_PCI option
if selecting m68knommu. The only m68knommu platforms that had PCI
as far as I know where those that use the comempci part.

The patch looks ok to me too (acked below).

Regards
Greg



> cu
> Adrian
> 
> 
> <--  snip  -->
> 
> 
> The COMEMPCI code didn't even compile.
> 
> Greg Ungerer said:
> I think we should just remove the underlying comempci access
> code which is the only user of this (arch/m68knommu/kernel/comempci.c).
> Nobody has used it in a very long time. And the hardware itself is
> old, and completely brain-damaged by design.
> 
> Signed-off-by: Adrian Bunk <bunk@kernel.org>

Acked-by: Greg Ungerer <gerg@uclinux.org>


> ---
> 
>  arch/m68knommu/Kconfig              |    4 
>  arch/m68knommu/include/asm/anchor.h |  112 ---
>  arch/m68knommu/include/asm/elia.h   |   41 -
>  arch/m68knommu/include/asm/mcfpci.h |  119 ---
>  arch/m68knommu/include/asm/pci.h    |   23 
>  arch/m68knommu/kernel/Makefile      |    1 
>  arch/m68knommu/kernel/comempci.c    |  980 ----------------------------
>  7 files changed, 1280 deletions(-)
> 
> 6c2fed7cd1aad31f7c1518cfcb0d7d8f438ba8a4 
> diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
> index 77a5bdf..15ffd55 100644
> --- a/arch/m68knommu/Kconfig
> +++ b/arch/m68knommu/Kconfig
> @@ -706,10 +706,6 @@ config PCI
>  	help
>  	  Support for PCI bus.
>  
> -config COMEMPCI
> -	bool "CO-MEM lite PCI controller support"
> -	depends on (M5307 || M5407)
> -
>  source "drivers/pci/Kconfig"
>  
>  source "drivers/pcmcia/Kconfig"
> diff --git a/arch/m68knommu/include/asm/anchor.h b/arch/m68knommu/include/asm/anchor.h
> deleted file mode 100644
> index 871c0d5..0000000
> --- a/arch/m68knommu/include/asm/anchor.h
> +++ /dev/null
> @@ -1,112 +0,0 @@
> -/****************************************************************************/
> -
> -/*
> - *	anchor.h -- Anchor CO-MEM Lite PCI host bridge part.
> - *
> - *	(C) Copyright 2000, Moreton Bay (www.moreton.com.au)
> - */
> -
> -/****************************************************************************/
> -#ifndef	anchor_h
> -#define	anchor_h
> -/****************************************************************************/
> -
> -/*
> - *	Define basic addressing info.
> - */
> -#if defined(CONFIG_M5407C3)
> -#define	COMEM_BASE	0xFFFF0000	/* Base of CO-MEM address space */
> -#define	COMEM_IRQ	25		/* IRQ of anchor part */
> -#else
> -#define	COMEM_BASE	0x80000000	/* Base of CO-MEM address space */
> -#define	COMEM_IRQ	25		/* IRQ of anchor part */
> -#endif
> -
> -/****************************************************************************/
> -
> -/*
> - *	4-byte registers of CO-MEM, so adjust register addresses for
> - *	easy access. Handy macro for word access too.
> - */
> -#define	LREG(a)		((a) >> 2)
> -#define	WREG(a)		((a) >> 1)
> -
> -
> -/*
> - *	Define base addresses within CO-MEM Lite register address space.
> - */
> -#define	COMEM_I2O	0x0000		/* I2O registers */
> -#define	COMEM_OPREGS	0x0400		/* Operation registers */
> -#define	COMEM_PCIBUS	0x2000		/* Direct access to PCI bus */
> -#define	COMEM_SHMEM	0x4000		/* Shared memory region */
> -
> -#define	COMEM_SHMEMSIZE	0x4000		/* Size of shared memory */
> -
> -
> -/*
> - *	Define CO-MEM Registers.
> - */
> -#define	COMEM_I2OHISR	0x0030		/* I2O host interrupt status */
> -#define	COMEM_I2OHIMR	0x0034		/* I2O host interrupt mask */
> -#define	COMEM_I2OLISR	0x0038		/* I2O local interrupt status */
> -#define	COMEM_I2OLIMR	0x003c		/* I2O local interrupt mask */
> -#define	COMEM_IBFPFIFO	0x0040		/* I2O inbound free/post FIFO */
> -#define	COMEM_OBPFFIFO	0x0044		/* I2O outbound post/free FIFO */
> -#define	COMEM_IBPFFIFO	0x0048		/* I2O inbound post/free FIFO */
> -#define	COMEM_OBFPFIFO	0x004c		/* I2O outbound free/post FIFO */
> -
> -#define	COMEM_DAHBASE	0x0460		/* Direct access base address */
> -
> -#define	COMEM_NVCMD	0x04a0		/* I2C serial command */
> -#define	COMEM_NVREAD	0x04a4		/* I2C serial read */
> -#define	COMEM_NVSTAT	0x04a8		/* I2C status */
> -
> -#define	COMEM_DMALBASE	0x04b0		/* DMA local base address */
> -#define	COMEM_DMAHBASE	0x04b4		/* DMA host base address */
> -#define	COMEM_DMASIZE	0x04b8		/* DMA size */
> -#define	COMEM_DMACTL	0x04bc		/* DMA control */
> -
> -#define	COMEM_HCTL	0x04e0		/* Host control */
> -#define	COMEM_HINT	0x04e4		/* Host interrupt control/status */
> -#define	COMEM_HLDATA	0x04e8		/* Host to local data mailbox */
> -#define	COMEM_LINT	0x04f4		/* Local interrupt contole status */
> -#define	COMEM_LHDATA	0x04f8		/* Local to host data mailbox */
> -
> -#define	COMEM_LBUSCFG	0x04fc		/* Local bus configuration */
> -
> -
> -/*
> - *	Commands and flags for use with Direct Access Register.
> - */
> -#define	COMEM_DA_IACK	0x00000000	/* Interrupt acknowledge (read) */
> -#define	COMEM_DA_SPCL	0x00000010	/* Special cycle (write) */
> -#define	COMEM_DA_MEMRD	0x00000004	/* Memory read cycle */
> -#define	COMEM_DA_MEMWR	0x00000004	/* Memory write cycle */
> -#define	COMEM_DA_IORD	0x00000002	/* I/O read cycle */
> -#define	COMEM_DA_IOWR	0x00000002	/* I/O write cycle */
> -#define	COMEM_DA_CFGRD	0x00000006	/* Configuration read cycle */
> -#define	COMEM_DA_CFGWR	0x00000006	/* Configuration write cycle */
> -
> -#define	COMEM_DA_ADDR(a)	((a) & 0xffffe000)
> -
> -#define	COMEM_DA_OFFSET(a)	((a) & 0x00001fff)
> -
> -
> -/*
> - *	The PCI bus will be limited in what slots will actually be used.
> - *	Define valid device numbers for different boards.
> - */
> -#if defined(CONFIG_M5407C3)
> -#define	COMEM_MINDEV	14		/* Minimum valid DEVICE */
> -#define	COMEM_MAXDEV	14		/* Maximum valid DEVICE */
> -#define	COMEM_BRIDGEDEV	15		/* Slot bridge is in */
> -#else
> -#define	COMEM_MINDEV	0		/* Minimum valid DEVICE */
> -#define	COMEM_MAXDEV	3		/* Maximum valid DEVICE */
> -#endif
> -
> -#define	COMEM_MAXPCI	(COMEM_MAXDEV+1)	/* Maximum PCI devices */
> -
> -
> -/****************************************************************************/
> -#endif	/* anchor_h */
> diff --git a/arch/m68knommu/include/asm/elia.h b/arch/m68knommu/include/asm/elia.h
> deleted file mode 100644
> index e037d4e..0000000
> --- a/arch/m68knommu/include/asm/elia.h
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -/****************************************************************************/
> -
> -/*
> - *	elia.h -- Lineo (formerly Moreton Bay) eLIA platform support.
> - *
> - *	(C) Copyright 1999-2000, Moreton Bay (www.moreton.com.au)
> - *	(C) Copyright 1999-2000, Lineo (www.lineo.com)
> - */
> -
> -/****************************************************************************/
> -#ifndef	elia_h
> -#define	elia_h
> -/****************************************************************************/
> -
> -#include <asm/coldfire.h>
> -
> -#ifdef CONFIG_eLIA
> -
> -/*
> - *	The serial port DTR and DCD lines are also on the Parallel I/O
> - *	as well, so define those too.
> - */
> -
> -#define	eLIA_DCD1		0x0001
> -#define	eLIA_DCD0		0x0002
> -#define	eLIA_DTR1		0x0004
> -#define	eLIA_DTR0		0x0008
> -
> -#define	eLIA_PCIRESET		0x0020
> -
> -/*
> - *	Kernel macros to set and unset the LEDs.
> - */
> -#ifndef __ASSEMBLY__
> -extern unsigned short	ppdata;
> -#endif /* __ASSEMBLY__ */
> -
> -#endif	/* CONFIG_eLIA */
> -
> -/****************************************************************************/
> -#endif	/* elia_h */
> diff --git a/arch/m68knommu/include/asm/mcfpci.h b/arch/m68knommu/include/asm/mcfpci.h
> deleted file mode 100644
> index f1507dd..0000000
> --- a/arch/m68knommu/include/asm/mcfpci.h
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -/****************************************************************************/
> -
> -/*
> - *	mcfpci.h -- PCI bridge on ColdFire eval boards.
> - *
> - *	(C) Copyright 2000, Greg Ungerer (gerg@snapgear.com)
> - *	(C) Copyright 2000, Lineo Inc. (www.lineo.com)
> - */
> -
> -/****************************************************************************/
> -#ifndef	mcfpci_h
> -#define	mcfpci_h
> -/****************************************************************************/
> -
> -
> -#ifdef CONFIG_PCI
> -
> -/*
> - *	Address regions in the PCI address space are not mapped into the
> - *	normal memory space of the ColdFire. They must be accessed via
> - *	handler routines. This is easy for I/O space (inb/outb/etc) but
> - *	needs some code changes to support ordinary memory. Interrupts
> - *	also need to be vectored through the PCI handler first, then it
> - *	will call the actual driver sub-handlers.
> - */
> -
> -/*
> - *	Un-define all the standard I/O access routines.
> - */
> -#undef	inb
> -#undef	inw
> -#undef	inl
> -#undef	inb_p
> -#undef	inw_p
> -#undef	insb
> -#undef	insw
> -#undef	insl
> -#undef	outb
> -#undef	outw
> -#undef	outl
> -#undef	outb_p
> -#undef	outw_p
> -#undef	outsb
> -#undef	outsw
> -#undef	outsl
> -
> -#undef	request_irq
> -#undef	free_irq
> -
> -#undef	bus_to_virt
> -#undef	virt_to_bus
> -
> -
> -/*
> - *	Re-direct all I/O memory accesses functions to PCI specific ones.
> - */
> -#define	inb	pci_inb
> -#define	inw	pci_inw
> -#define	inl	pci_inl
> -#define	inb_p	pci_inb
> -#define	inw_p	pci_inw
> -#define	insb	pci_insb
> -#define	insw	pci_insw
> -#define	insl	pci_insl
> -
> -#define	outb	pci_outb
> -#define	outw	pci_outw
> -#define	outl	pci_outl
> -#define	outb_p	pci_outb
> -#define	outw_p	pci_outw
> -#define	outsb	pci_outsb
> -#define	outsw	pci_outsw
> -#define	outsl	pci_outsl
> -
> -#define	request_irq	pci_request_irq
> -#define	free_irq	pci_free_irq
> -
> -#define	virt_to_bus	pci_virt_to_bus
> -#define	bus_to_virt	pci_bus_to_virt
> -
> -#define	CONFIG_COMEMPCI	1
> -
> -
> -/*
> - *	Prototypes of the real PCI functions (defined in bios32.c).
> - */
> -unsigned char	pci_inb(unsigned int addr);
> -unsigned short	pci_inw(unsigned int addr);
> -unsigned int	pci_inl(unsigned int addr);
> -void		pci_insb(void *addr, void *buf, int len);
> -void		pci_insw(void *addr, void *buf, int len);
> -void		pci_insl(void *addr, void *buf, int len);
> -
> -void		pci_outb(unsigned char val, unsigned int addr);
> -void		pci_outw(unsigned short val, unsigned int addr);
> -void		pci_outl(unsigned int val, unsigned int addr);
> -void		pci_outsb(void *addr, void *buf, int len);
> -void		pci_outsw(void *addr, void *buf, int len);
> -void		pci_outsl(void *addr, void *buf, int len);
> -
> -int		pci_request_irq(unsigned int irq,
> -			void (*handler)(int, void *, struct pt_regs *),
> -			unsigned long flags,
> -			const char *device,
> -			void *dev_id);
> -void		pci_free_irq(unsigned int irq, void *dev_id);
> -
> -void		*pci_bmalloc(int size);
> -void		pci_bmfree(void *bmp, int len);
> -void		pci_copytoshmem(unsigned long bmp, void *src, int size);
> -void		pci_copyfromshmem(void *dst, unsigned long bmp, int size);
> -unsigned long	pci_virt_to_bus(volatile void *address);
> -void		*pci_bus_to_virt(unsigned long address);
> -void		pci_bmcpyto(void *dst, void *src, int len);
> -void		pci_bmcpyfrom(void *dst, void *src, int len);
> -
> -#endif /* CONFIG_PCI */
> -/****************************************************************************/
> -#endif	/* mcfpci_h */
> diff --git a/arch/m68knommu/include/asm/pci.h b/arch/m68knommu/include/asm/pci.h
> index a13f3cc..8031d1d 100644
> --- a/arch/m68knommu/include/asm/pci.h
> +++ b/arch/m68knommu/include/asm/pci.h
> @@ -3,27 +3,4 @@
>  
>  #include <asm-m68k/pci.h>
>  
> -#ifdef CONFIG_COMEMPCI
> -/*
> - *	These are pretty much arbitary with the CoMEM implementation.
> - *	We have the whole address space to ourselves.
> - */
> -#define PCIBIOS_MIN_IO		0x100
> -#define PCIBIOS_MIN_MEM		0x00010000
> -
> -#define pcibios_scan_all_fns(a, b)	0
> -
> -/*
> - * Return whether the given PCI device DMA address mask can
> - * be supported properly.  For example, if your device can
> - * only drive the low 24-bits during PCI bus mastering, then
> - * you would pass 0x00ffffff as the mask to this function.
> - */
> -static inline int pci_dma_supported(struct pci_dev *hwdev, u64 mask)
> -{
> -	return 1;
> -}
> -
> -#endif /* CONFIG_COMEMPCI */
> -
>  #endif /* M68KNOMMU_PCI_H */
> diff --git a/arch/m68knommu/kernel/Makefile b/arch/m68knommu/kernel/Makefile
> index f0eab3d..37c3fc0 100644
> --- a/arch/m68knommu/kernel/Makefile
> +++ b/arch/m68knommu/kernel/Makefile
> @@ -8,4 +8,3 @@ obj-y += dma.o entry.o init_task.o irq.o m68k_ksyms.o process.o ptrace.o \
>  	 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
>  
>  obj-$(CONFIG_MODULES)	+= module.o
> -obj-$(CONFIG_COMEMPCI)	+= comempci.o
> diff --git a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c
> deleted file mode 100644
> index 0a68b5a..0000000
> --- a/arch/m68knommu/kernel/comempci.c
> +++ /dev/null
> @@ -1,980 +0,0 @@
> -/*****************************************************************************/
> -
> -/*
> - *	comemlite.c -- PCI access code for embedded CO-MEM Lite PCI controller.
> - *
> - *	(C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com).
> - *	(C) Copyright 2000, Lineo (www.lineo.com)
> - */
> -
> -/*****************************************************************************/
> -
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/pci.h>
> -#include <linux/ptrace.h>
> -#include <linux/spinlock.h>
> -#include <linux/interrupt.h>
> -#include <linux/sched.h>
> -#include <asm/coldfire.h>
> -#include <asm/mcfsim.h>
> -#include <asm/irq.h>
> -#include <asm/anchor.h>
> -
> -#ifdef CONFIG_eLIA
> -#include <asm/elia.h>
> -#endif
> -
> -/*****************************************************************************/
> -
> -/*
> - *	Debug configuration defines. DEBUGRES sets debugging output for
> - *	the resource allocation phase. DEBUGPCI traces on pcibios_ function
> - *	calls, and DEBUGIO traces all accesses to devices on the PCI bus.
> - */
> -/*#define	DEBUGRES	1*/
> -/*#define	DEBUGPCI	1*/
> -/*#define	DEBUGIO		1*/
> -
> -/*****************************************************************************/
> -
> -/*
> - *	PCI markers for bus present and active slots.
> - */
> -int		pci_bus_is_present = 0;
> -unsigned long	pci_slotmask = 0;
> -
> -/*
> - *	We may or may not need to swap the bytes of PCI bus tranfers.
> - *	The endianess is re-roder automatically by the CO-MEM, but it
> - *	will get the wrong byte order for a pure data stream.
> - */
> -#define	pci_byteswap	0
> -
> -
> -/*
> - *	Resource tracking. The CO-MEM part creates a virtual address
> - *	space that all the PCI devices live in - it is not in any way
> - *	directly mapped into the ColdFire address space. So we can
> - *	really assign any resources we like to devices, as long as
> - *	they do not clash with other PCI devices.
> - */
> -unsigned int	pci_iobase = PCIBIOS_MIN_IO;	/* Arbitrary start address */
> -unsigned int	pci_membase = PCIBIOS_MIN_MEM;	/* Arbitrary start address */
> -
> -#define	PCI_MINIO	0x100			/* 256 byte minimum I/O */
> -#define	PCI_MINMEM	0x00010000		/* 64k minimum chunk */
> -
> -/*
> - *	The CO-MEM's shared memory segment is visible inside the PCI
> - *	memory address space. We need to keep track of the address that
> - *	this is mapped at, to setup the bus masters pointers.
> - */
> -unsigned int	pci_shmemaddr;
> -
> -/*****************************************************************************/
> -
> -void	pci_interrupt(int irq, void *id, struct pt_regs *fp);
> -
> -/*****************************************************************************/
> -
> -/*
> - *	Some platforms have custom ways of reseting the PCI bus.
> - */
> -
> -void pci_resetbus(void)
> -{
> -#ifdef CONFIG_eLIA
> -	int	i;
> -
> -#ifdef DEBUGPCI
> -	printk(KERN_DEBUG "pci_resetbus()\n");
> -#endif
> -
> -	*((volatile unsigned short *) (MCF_MBAR+MCFSIM_PADDR)) |= eLIA_PCIRESET;
> -	for (i = 0; (i < 1000); i++) {
> -		*((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = 
> -			(ppdata | eLIA_PCIRESET);
> -	}
> -
> -
> -	*((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = ppdata;
> -#endif
> -}
> -
> -/*****************************************************************************/
> -
> -int pcibios_assign_resource_slot(int slot)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned char	*ip;
> -	unsigned int		idsel, addr, val, align, i;
> -	int			bar;
> -
> -#ifdef DEBUGPCI
> -	printk(KERN_INFO "pcibios_assign_resource_slot(slot=%x)\n", slot);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
> -
> -	/* Try to assign resource to each BAR */
> -	for (bar = 0; (bar < 6); bar++) {
> -		addr = COMEM_PCIBUS + PCI_BASE_ADDRESS_0 + (bar * 4);
> -		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
> -		val = rp[LREG(addr)];
> -#ifdef DEBUGRES
> -		printk(KERN_DEBUG "-----------------------------------"
> -			"-------------------------------------\n");
> -		printk(KERN_DEBUG "BAR[%d]: read=%08x ", bar, val);
> -#endif
> -
> -		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
> -		rp[LREG(addr)] = 0xffffffff;
> -
> -		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
> -		val = rp[LREG(addr)];
> -#ifdef DEBUGRES
> -		printk(KERN_DEBUG "write=%08x ", val);
> -#endif
> -		if (val == 0) {
> -#ifdef DEBUGRES
> -			printk(KERN_DEBUG "\n");
> -#endif
> -			continue;
> -		}
> -
> -		/* Determine space required by BAR */
> -		/* FIXME: this should go backwords from 0x80000000... */
> -		for (i = 0; (i < 32); i++) {
> -			if ((0x1 << i) & (val & 0xfffffffc))
> -				break;
> -		}
> -
> -#ifdef DEBUGRES
> -		printk(KERN_DEBUG "size=%08x(%d)\n", (0x1 << i), i);
> -#endif
> -		i = 0x1 << i;
> -
> -		/* Assign a resource */
> -		if (val & PCI_BASE_ADDRESS_SPACE_IO) {
> -			if (i < PCI_MINIO)
> -				i = PCI_MINIO;
> -#ifdef DEBUGRES
> -			printk(KERN_DEBUG "BAR[%d]: IO size=%08x iobase=%08x\n",
> -				bar, i, pci_iobase);
> -#endif
> -			if (i > 0xffff) {
> -				/* Invalid size?? */
> -				val = 0 | PCI_BASE_ADDRESS_SPACE_IO;
> -#ifdef DEBUGRES
> -				printk(KERN_DEBUG "BAR[%d]: too big for IO??\n", bar);
> -#endif
> -			} else {
> -				/* Check for un-alignment */
> -				if ((align = pci_iobase % i))
> -					pci_iobase += (i - align);
> -				val = pci_iobase | PCI_BASE_ADDRESS_SPACE_IO;
> -				pci_iobase += i;
> -			}
> -		} else {
> -			if (i < PCI_MINMEM)
> -				i = PCI_MINMEM;
> -#ifdef DEBUGRES
> -			printk(KERN_DEBUG "BAR[%d]: MEMORY size=%08x membase=%08x\n",
> -				bar, i, pci_membase);
> -#endif
> -			/* Check for un-alignment */
> -			if ((align = pci_membase % i))
> -				pci_membase += (i - align);
> -			val = pci_membase | PCI_BASE_ADDRESS_SPACE_MEMORY;
> -			pci_membase += i;
> -		}
> -
> -		/* Write resource back into BAR register */
> -		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
> -		rp[LREG(addr)] = val;
> -#ifdef DEBUGRES
> -		printk(KERN_DEBUG "BAR[%d]: assigned bar=%08x\n", bar, val);
> -#endif
> -	}
> -
> -#ifdef DEBUGRES
> -	printk(KERN_DEBUG "-----------------------------------"
> -			"-------------------------------------\n");
> -#endif
> -
> -	/* Assign IRQ if one is wanted... */
> -	ip = (volatile unsigned char *) (COMEM_BASE + COMEM_PCIBUS);
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
> -
> -	addr = (PCI_INTERRUPT_PIN & 0xfc) + (~PCI_INTERRUPT_PIN & 0x03);
> -	if (ip[addr]) {
> -		rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
> -		addr = (PCI_INTERRUPT_LINE & 0xfc)+(~PCI_INTERRUPT_LINE & 0x03);
> -		ip[addr] = 25;
> -#ifdef DEBUGRES
> -		printk(KERN_DEBUG "IRQ LINE=25\n");
> -#endif
> -	}
> -
> -	return(0);
> -}
> -
> -/*****************************************************************************/
> -
> -int pcibios_enable_slot(int slot)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned short	*wp;
> -	unsigned int		idsel, addr;
> -	unsigned short		cmd;
> -
> -#ifdef DEBUGPCI
> -	printk(KERN_DEBUG "pcibios_enbale_slot(slot=%x)\n", slot);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	wp = (volatile unsigned short *) COMEM_BASE;
> -	idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
> -
> -	/* Get current command settings */
> -	addr = COMEM_PCIBUS + PCI_COMMAND;
> -	addr = (addr & ~0x3) + (~addr & 0x02);
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
> -	cmd = wp[WREG(addr)];
> -	/*val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);*/
> -
> -	/* Enable I/O and memory accesses to this device */
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
> -	cmd |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER;
> -	wp[WREG(addr)] = cmd;
> -
> -	return(0);
> -}
> -
> -/*****************************************************************************/
> -
> -void pcibios_assign_resources(void)
> -{
> -	volatile unsigned long	*rp;
> -	unsigned long		sel, id;
> -	int			slot;
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -
> -	/*
> -	 *	Do a quick scan of the PCI bus and see what is here.
> -	 */
> -	for (slot = COMEM_MINDEV; (slot <= COMEM_MAXDEV); slot++) {
> -		sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
> -		rp[LREG(COMEM_DAHBASE)] = sel;
> -		rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
> -		id = rp[LREG(COMEM_PCIBUS)];
> -		if ((id != 0) && ((id & 0xffff0000) != (sel & 0xffff0000))) {
> -			printk(KERN_INFO "PCI: slot=%d id=%08x\n", slot, (int) id);
> -			pci_slotmask |= 0x1 << slot;
> -			pcibios_assign_resource_slot(slot);
> -			pcibios_enable_slot(slot);
> -		}
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -int pcibios_init(void)
> -{
> -	volatile unsigned long	*rp;
> -	unsigned long		sel, id;
> -	int			slot;
> -
> -#ifdef DEBUGPCI
> -	printk(KERN_DEBUG "pcibios_init()\n");
> -#endif
> -
> -	pci_resetbus();
> -
> -	/*
> -	 *	Do some sort of basic check to see if the CO-MEM part
> -	 *	is present... This works ok, but I think we really need
> -	 *	something better...
> -	 */
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	if ((rp[LREG(COMEM_LBUSCFG)] & 0xff) != 0x50) {
> -		printk(KERN_INFO "PCI: no PCI bus present\n");
> -		return(0);
> -	}
> -
> -#ifdef COMEM_BRIDGEDEV
> -	/*
> -	 *	Setup the PCI bridge device first. It needs resources too,
> -	 *	so that bus masters can get to its shared memory.
> -	 */
> -	slot = COMEM_BRIDGEDEV;
> -	sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
> -	rp[LREG(COMEM_DAHBASE)] = sel;
> -	rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
> -	id = rp[LREG(COMEM_PCIBUS)];
> -	if ((id == 0) || ((id & 0xffff0000) == (sel & 0xffff0000))) {
> -		printk(KERN_INFO "PCI: no PCI bus bridge present\n");
> -		return(0);
> -	}
> -
> -	printk(KERN_INFO "PCI: bridge device at slot=%d id=%08x\n", slot, (int) id);
> -	pci_slotmask |= 0x1 << slot;
> -	pci_shmemaddr = pci_membase;
> -	pcibios_assign_resource_slot(slot);
> -	pcibios_enable_slot(slot);
> -#endif
> -
> -	pci_bus_is_present = 1;
> -
> -	/* Get PCI irq for local vectoring */
> -	if (request_irq(COMEM_IRQ, pci_interrupt, 0, "PCI bridge", NULL)) {
> -		printk(KERN_WARNING "PCI: failed to acquire interrupt %d\n", COMEM_IRQ);
> -	} else {
> -		mcf_autovector(COMEM_IRQ);
> -	}
> -
> -	pcibios_assign_resources();
> -
> -	return(0);
> -}
> -
> -/*****************************************************************************/
> -
> -char *pcibios_setup(char *option)
> -{
> -	/* Nothing for us to handle. */
> -	return(option);
> -}
> -/*****************************************************************************/
> -
> -void pcibios_fixup_bus(struct pci_bus *b)
> -{
> -}
> -
> -/*****************************************************************************/
> -
> -void pcibios_align_resource(void *data, struct resource *res,
> -				resource_size_t size, resource_size_t align)
> -{
> -}
> -
> -/*****************************************************************************/
> -
> -int pcibios_enable_device(struct pci_dev *dev, int mask)
> -{
> -	int slot;
> -
> -	slot = PCI_SLOT(dev->devfn);
> -	if ((dev->bus == 0) && (pci_slotmask & (1 << slot)))
> -		pcibios_enable_slot(slot);
> -	return(0);
> -}
> -
> -/*****************************************************************************/
> -
> -/*
> - *	Local routines to interrcept the standard I/O and vector handling
> - *	code. Don't include this 'till now - initialization code above needs
> - *	access to the real code too.
> - */
> -#include <asm/mcfpci.h>
> -
> -/*****************************************************************************/
> -
> -void pci_outb(unsigned char val, unsigned int addr)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned char	*bp;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_outb(val=%02x,addr=%x)\n", val, addr);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	bp = (volatile unsigned char *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
> -	addr = (addr & ~0x3) + (~addr & 0x03);
> -	bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_outw(unsigned short val, unsigned int addr)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned short	*sp;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_outw(val=%04x,addr=%x)\n", val, addr);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	sp = (volatile unsigned short *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
> -	addr = (addr & ~0x3) + (~addr & 0x02);
> -	if (pci_byteswap)
> -		val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
> -	sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_outl(unsigned int val, unsigned int addr)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned int	*lp;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_outl(val=%08x,addr=%x)\n", val, addr);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	lp = (volatile unsigned int *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
> -
> -	if (pci_byteswap)
> -		val = (val << 24) | ((val & 0x0000ff00) << 8) |
> -			((val & 0x00ff0000) >> 8) | (val >> 24);
> -
> -	lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
> -}
> -
> -/*****************************************************************************/
> -
> -unsigned long	pci_blmask[] = {
> -	0x000000e0,
> -	0x000000d0,
> -	0x000000b0,
> -	0x00000070
> -};
> -
> -unsigned char pci_inb(unsigned int addr)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned char	*bp;
> -	unsigned long		r;
> -	unsigned char		val;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_inb(addr=%x)\n", addr);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	bp = (volatile unsigned char *) COMEM_BASE;
> -
> -	r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_blmask[(addr & 0x3)];
> -	rp[LREG(COMEM_DAHBASE)] = r;
> -
> -	addr = (addr & ~0x3) + (~addr & 0x3);
> -	val = bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
> -	return(val);
> -}
> -
> -/*****************************************************************************/
> -
> -unsigned long	pci_bwmask[] = {
> -	0x000000c0,
> -	0x000000c0,
> -	0x00000030,
> -	0x00000030
> -};
> -
> -unsigned short pci_inw(unsigned int addr)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned short	*sp;
> -	unsigned long		r;
> -	unsigned short		val;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_inw(addr=%x)", addr);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_bwmask[(addr & 0x3)];
> -	rp[LREG(COMEM_DAHBASE)] = r;
> -
> -	sp = (volatile unsigned short *) COMEM_BASE;
> -	addr = (addr & ~0x3) + (~addr & 0x02);
> -	val = sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
> -	if (pci_byteswap)
> -		val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "=%04x\n", val);
> -#endif
> -	return(val);
> -}
> -
> -/*****************************************************************************/
> -
> -unsigned int pci_inl(unsigned int addr)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned int	*lp;
> -	unsigned int		val;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_inl(addr=%x)", addr);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	lp = (volatile unsigned int *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(addr);
> -	val = lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
> -
> -	if (pci_byteswap)
> -		val = (val << 24) | ((val & 0x0000ff00) << 8) |
> -			((val & 0x00ff0000) >> 8) | (val >> 24);
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "=%08x\n", val);
> -#endif
> -	return(val);
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_outsb(void *addr, void *buf, int len)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned char	*bp;
> -	unsigned char		*dp = (unsigned char *) buf;
> -	unsigned int		a = (unsigned int) addr;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
> -
> -	a = (a & ~0x3) + (~a & 0x03);
> -	bp = (volatile unsigned char *)
> -		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
> -
> -	while (len--)
> -		*bp = *dp++;
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_outsw(void *addr, void *buf, int len)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned short	*wp;
> -	unsigned short		w, *dp = (unsigned short *) buf;
> -	unsigned int		a = (unsigned int) addr;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
> -
> -	a = (a & ~0x3) + (~a & 0x2);
> -	wp = (volatile unsigned short *)
> -		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
> -
> -	while (len--) {
> -		w = *dp++;
> -		if (pci_byteswap)
> -			w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
> -		*wp = w;
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_outsl(void *addr, void *buf, int len)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned long	*lp;
> -	unsigned long		l, *dp = (unsigned long *) buf;
> -	unsigned int		a = (unsigned int) addr;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
> -
> -	lp = (volatile unsigned long *)
> -		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
> -
> -	while (len--) {
> -		l = *dp++;
> -		if (pci_byteswap)
> -			l = (l << 24) | ((l & 0x0000ff00) << 8) |
> -				((l & 0x00ff0000) >> 8) | (l >> 24);
> -		*lp = l;
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_insb(void *addr, void *buf, int len)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned char	*bp;
> -	unsigned char		*dp = (unsigned char *) buf;
> -	unsigned int		a = (unsigned int) addr;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
> -
> -	a = (a & ~0x3) + (~a & 0x03);
> -	bp = (volatile unsigned char *)
> -		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
> -
> -	while (len--)
> -		*dp++ = *bp;
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_insw(void *addr, void *buf, int len)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned short	*wp;
> -	unsigned short		w, *dp = (unsigned short *) buf;
> -	unsigned int		a = (unsigned int) addr;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
> -
> -	a = (a & ~0x3) + (~a & 0x2);
> -	wp = (volatile unsigned short *)
> -		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
> -
> -	while (len--) {
> -		w = *wp;
> -		if (pci_byteswap)
> -			w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
> -		*dp++ = w;
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_insl(void *addr, void *buf, int len)
> -{
> -	volatile unsigned long	*rp;
> -	volatile unsigned long	*lp;
> -	unsigned long		l, *dp = (unsigned long *) buf;
> -	unsigned int		a = (unsigned int) addr;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
> -#endif
> -
> -	rp = (volatile unsigned long *) COMEM_BASE;
> -	rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
> -
> -	lp = (volatile unsigned long *)
> -		(COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
> -
> -	while (len--) {
> -		l = *lp;
> -		if (pci_byteswap)
> -			l = (l << 24) | ((l & 0x0000ff00) << 8) |
> -				((l & 0x00ff0000) >> 8) | (l >> 24);
> -		*dp++ = l;
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -struct pci_localirqlist {
> -	void		(*handler)(int, void *, struct pt_regs *);
> -	const char	*device;
> -	void		*dev_id;
> -};
> -
> -struct pci_localirqlist	pci_irqlist[COMEM_MAXPCI];
> -
> -/*****************************************************************************/
> -
> -int pci_request_irq(unsigned int irq,
> -	void (*handler)(int, void *, struct pt_regs *),
> -	unsigned long flags, const char *device, void *dev_id)
> -{
> -	int	i;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s,"
> -		"dev_id=%x)\n", irq, (int) handler, (int) flags, device,
> -		(int) dev_id);
> -#endif
> -
> -	/* Check if this interrupt handler is already lodged */
> -	for (i = 0; (i < COMEM_MAXPCI); i++) {
> -		if (pci_irqlist[i].handler == handler)
> -			return(0);
> -	}
> -
> -	/* Find a free spot to put this handler */
> -	for (i = 0; (i < COMEM_MAXPCI); i++) {
> -		if (pci_irqlist[i].handler == 0) {
> -			pci_irqlist[i].handler = handler;
> -			pci_irqlist[i].device = device;
> -			pci_irqlist[i].dev_id = dev_id;
> -			return(0);
> -		}
> -	}
> -
> -	/* Couldn't fit?? */
> -	return(1);
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_free_irq(unsigned int irq, void *dev_id)
> -{
> -	int	i;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id);
> -#endif
> -
> -	if (dev_id == (void *) NULL)
> -		return;
> -
> -	/* Check if this interrupt handler is lodged */
> -	for (i = 0; (i < COMEM_MAXPCI); i++) {
> -		if (pci_irqlist[i].dev_id == dev_id) {
> -			pci_irqlist[i].handler = NULL;
> -			pci_irqlist[i].device = NULL;
> -			pci_irqlist[i].dev_id = NULL;
> -			break;
> -		}
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_interrupt(int irq, void *id, struct pt_regs *fp)
> -{
> -	int	i;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp);
> -#endif
> -
> -	for (i = 0; (i < COMEM_MAXPCI); i++) {
> -		if (pci_irqlist[i].handler)
> -			(*pci_irqlist[i].handler)(irq,pci_irqlist[i].dev_id,fp);
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -/*
> - *	The shared memory region is broken up into contiguous 512 byte
> - *	regions for easy allocation... This is not an optimal solution
> - *	but it makes allocation and freeing regions really easy.
> - */
> -
> -#define	PCI_MEMSLOTSIZE		512
> -#define	PCI_MEMSLOTS		(COMEM_SHMEMSIZE / PCI_MEMSLOTSIZE)
> -
> -char	pci_shmemmap[PCI_MEMSLOTS];
> -
> -
> -void *pci_bmalloc(int size)
> -{
> -	int	i, j, nrslots;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_bmalloc(size=%d)\n", size);
> -#endif
> -
> -	if (size <= 0)
> -		return((void *) NULL);
> -
> -	nrslots = (size - 1) / PCI_MEMSLOTSIZE;
> -
> -	for (i = 0; (i < (PCI_MEMSLOTS-nrslots)); i++) {
> -		if (pci_shmemmap[i] == 0) {
> -			for (j = i+1; (j < (i+nrslots)); j++) {
> -				if (pci_shmemmap[j])
> -					goto restart;
> -			}
> -
> -			for (j = i; (j <= i+nrslots); j++)
> -				pci_shmemmap[j] = 1;
> -			break;
> -		}
> -restart:
> -	}
> -
> -	return((void *) (COMEM_BASE + COMEM_SHMEM + (i * PCI_MEMSLOTSIZE)));
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_bmfree(void *mp, int size)
> -{
> -	int	i, j, nrslots;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_bmfree(mp=%x,size=%d)\n", (int) mp, size);
> -#endif
> -
> -	nrslots = size / PCI_MEMSLOTSIZE;
> -	i = (((unsigned long) mp) - (COMEM_BASE + COMEM_SHMEM)) /
> -		PCI_MEMSLOTSIZE;
> -
> -	for (j = i; (j < (i+nrslots)); j++)
> -		pci_shmemmap[j] = 0;
> -}
> -
> -/*****************************************************************************/
> -
> -unsigned long pci_virt_to_bus(volatile void *address)
> -{
> -	unsigned long	l;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_virt_to_bus(address=%x)", (int) address);
> -#endif
> -
> -	l = ((unsigned long) address) - COMEM_BASE;
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "=%x\n", (int) (l+pci_shmemaddr));
> -#endif
> -	return(l + pci_shmemaddr);
> -}
> -
> -/*****************************************************************************/
> -
> -void *pci_bus_to_virt(unsigned long address)
> -{
> -	unsigned long	l;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_bus_to_virt(address=%x)", (int) address);
> -#endif
> -
> -	l = address - pci_shmemaddr;
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "=%x\n", (int) (address + COMEM_BASE));
> -#endif
> -	return((void *) (address + COMEM_BASE));
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_bmcpyto(void *dst, void *src, int len)
> -{
> -	unsigned long	*dp, *sp, val;
> -	unsigned char	*dcp, *scp;
> -	int		i, j;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len);
> -#endif
> -
> -	dp = (unsigned long *) dst;
> -	sp = (unsigned long *) src;
> -	i = len >> 2;
> -
> -#if 0
> -	printk(KERN_INFO "DATA:");
> -	scp = (unsigned char *) sp;
> -	for (i = 0; (i < len); i++) {
> -		if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
> -		printk(KERN_INFO "%02x ", *scp++);
> -	}
> -	printk(KERN_INFO "\n");
> -#endif
> -
> -	for (j = 0; (i >= 0); i--, j++) {
> -		val = *sp++;
> -		val = (val << 24) | ((val & 0x0000ff00) << 8) |
> -			((val & 0x00ff0000) >> 8) | (val >> 24);
> -		*dp++ = val;
> -	}
> -
> -	if (len & 0x3) {
> -		dcp = (unsigned char *) dp;
> -		scp = ((unsigned char *) sp) + 3;
> -		for (i = 0; (i < (len & 0x3)); i++)
> -			*dcp++ = *scp--;
> -	}
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_bmcpyfrom(void *dst, void *src, int len)
> -{
> -	unsigned long	*dp, *sp, val;
> -	unsigned char	*dcp, *scp;
> -	int		i;
> -
> -#ifdef DEBUGIO
> -	printk(KERN_DEBUG "pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len);
> -#endif
> -
> -	dp = (unsigned long *) dst;
> -	sp = (unsigned long *) src;
> -	i = len >> 2;
> -
> -	for (; (i >= 0); i--) {
> -		val = *sp++;
> -		val = (val << 24) | ((val & 0x0000ff00) << 8) |
> -			((val & 0x00ff0000) >> 8) | (val >> 24);
> -		*dp++ = val;
> -	}
> -
> -	if (len & 0x3) {
> -		dcp = ((unsigned char *) dp) + 3;
> -		scp = (unsigned char *) sp;
> -		for (i = 0; (i < (len & 0x3)); i++)
> -			*dcp++ = *scp--;
> -	}
> -
> -#if 0
> -	printk(KERN_INFO "DATA:");
> -	dcp = (unsigned char *) dst;
> -	for (i = 0; (i < len); i++) {
> -		if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
> -		printk(KERN_INFO "%02x ", *dcp++);
> -	}
> -	printk(KERN_INFO "\n");
> -#endif
> -}
> -
> -/*****************************************************************************/
> -
> -void *pci_alloc_consistent(struct pci_dev *dev, size_t size, dma_addr_t *dma_addr)
> -{
> -	void *mp;
> -	if ((mp = pci_bmalloc(size)) != NULL) {
> -		dma_addr = mp - (COMEM_BASE + COMEM_SHMEM);
> -		return(mp);
> -	}
> -	*dma_addr = (dma_addr_t) NULL;
> -	return(NULL);
> -}
> -
> -/*****************************************************************************/
> -
> -void pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr, dma_addr_t dma_addr)
> -{
> -	pci_bmfree(cpu_addr, size);
> -}
> -
> -/*****************************************************************************/
> 
> 

-- 
------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     gerg@snapgear.com
Secure Computing Corporation                PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code
  2008-08-29  4:13     ` Greg Ungerer
@ 2008-08-29  7:01       ` Adrian Bunk
  2008-08-29  7:31         ` Geert Uytterhoeven
  2008-08-29 11:07         ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Greg Ungerer
  2008-08-31 16:10       ` [2.6 patch] m68knommu: remove the unused PCI option Adrian Bunk
  1 sibling, 2 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-08-29  7:01 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: jbarnes, linux-kernel, linux-pci, geert

On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
> Hi Adrian,
>
> Adrian Bunk wrote:
>> On Mon, Aug 25, 2008 at 04:16:12PM +1000, Greg Ungerer wrote:
>>> Hi Adrian,
>>>
>>> Adrian Bunk wrote:
>>>> There exists blackfin hardware with PCI support, but the support
>>>> currently in the kernel fails to build starting with:
>>>>
>>>> <--  snip  -->
>>>>
>>>> ...
>>>>   CC      init/main.o
>>>> In file included from dma-mapping.h:5,
>>>>                  from dma-mapping.h:52,
>>>>                  from dmaengine.h:29,
>>>>                  from skbuff.h:29,
>>>>                  from netlink.h:155,
>>>>                  from genetlink.h:4,
>>>>                  from genetlink.h:4,
>>>>                  from taskstats_kern.h:12,
>>>>                  from main.c:46:
>>>> dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: error: 
>>>> implicit declaration of function 'pci_dma_supported'
>>>> ...
>>>> make[2]: *** [init/main.o] Error 1
>>> I think we should just remove the underlying comempci access
>>> code which is the only user of this (arch/m68knommu/kernel/comempci.c).
>>> Nobody has used it in a very long time. And the hardware itself is
>>> old, and completely brain-damaged by design.
>>
>> A patch for removing the comempci code is below.
>>
>> It's a bit suspicious that asm/elia.h is now removed since comempci.c  
>> was the only user. What's the sttus of the eLIA platform?
>
> Only ever a handful where made, and that was in 1999.
> I doubt anyone could ever use the PCI interface on it
> in any useful way.

So I can send a patch to remove the platform?

>> But COMEMPCI fails with a different error - this init/main.o build 
>> error is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency 
>> of PCI on BROKEN is still required (unless it gets fixed).
>
> Unless I am mistaken there is now no need for the CONFIG_PCI option
> if selecting m68knommu. The only m68knommu platforms that had PCI
> as far as I know where those that use the comempci part.

That implies I can also kill the m68k PCI code since m68knommu will 
never use it?

> The patch looks ok to me too (acked below).

Thanks.

> Regards
> Greg
>...

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code
  2008-08-29  7:01       ` Adrian Bunk
@ 2008-08-29  7:31         ` Geert Uytterhoeven
  2008-08-31 16:10           ` [2.6 patch] m68k: remove the dead PCI code Adrian Bunk
  2008-08-29 11:07         ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Greg Ungerer
  1 sibling, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2008-08-29  7:31 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Greg Ungerer, jbarnes, Linux Kernel Development, linux-pci, Linux/m68k

On Fri, 29 Aug 2008, Adrian Bunk wrote:
> On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
> > Adrian Bunk wrote:
> >> A patch for removing the comempci code is below.
> >>
> >> It's a bit suspicious that asm/elia.h is now removed since comempci.c  
> >> was the only user. What's the sttus of the eLIA platform?
> >
> > Only ever a handful where made, and that was in 1999.
> > I doubt anyone could ever use the PCI interface on it
> > in any useful way.
> 
> So I can send a patch to remove the platform?
> 
> >> But COMEMPCI fails with a different error - this init/main.o build 
> >> error is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency 
> >> of PCI on BROKEN is still required (unless it gets fixed).
> >
> > Unless I am mistaken there is now no need for the CONFIG_PCI option
> > if selecting m68knommu. The only m68knommu platforms that had PCI
> > as far as I know where those that use the comempci part.
> 
> That implies I can also kill the m68k PCI code since m68knommu will 
> never use it?

Sure. If the FreeScale guys ever forward-port their ColdFire/MMU code to
current mainline, we can readd it.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code
  2008-08-29  7:01       ` Adrian Bunk
  2008-08-29  7:31         ` Geert Uytterhoeven
@ 2008-08-29 11:07         ` Greg Ungerer
  2008-08-31 16:10           ` [2.6 patch] m68knommu: remove the eLIA support Adrian Bunk
  1 sibling, 1 reply; 19+ messages in thread
From: Greg Ungerer @ 2008-08-29 11:07 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: jbarnes, linux-kernel, linux-pci, geert


Hi Adrian,

Adrian Bunk wrote:
> On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
>> Hi Adrian,
>>
>> Adrian Bunk wrote:
>>> On Mon, Aug 25, 2008 at 04:16:12PM +1000, Greg Ungerer wrote:
>>>> Hi Adrian,
>>>>
>>>> Adrian Bunk wrote:
>>>>> There exists blackfin hardware with PCI support, but the support
>>>>> currently in the kernel fails to build starting with:
>>>>>
>>>>> <--  snip  -->
>>>>>
>>>>> ...
>>>>>   CC      init/main.o
>>>>> In file included from dma-mapping.h:5,
>>>>>                  from dma-mapping.h:52,
>>>>>                  from dmaengine.h:29,
>>>>>                  from skbuff.h:29,
>>>>>                  from netlink.h:155,
>>>>>                  from genetlink.h:4,
>>>>>                  from genetlink.h:4,
>>>>>                  from taskstats_kern.h:12,
>>>>>                  from main.c:46:
>>>>> dma-mapping.h: In function 'dma_supported': ma-mapping.h:24: error: 
>>>>> implicit declaration of function 'pci_dma_supported'
>>>>> ...
>>>>> make[2]: *** [init/main.o] Error 1
>>>> I think we should just remove the underlying comempci access
>>>> code which is the only user of this (arch/m68knommu/kernel/comempci.c).
>>>> Nobody has used it in a very long time. And the hardware itself is
>>>> old, and completely brain-damaged by design.
>>> A patch for removing the comempci code is below.
>>>
>>> It's a bit suspicious that asm/elia.h is now removed since comempci.c  
>>> was the only user. What's the sttus of the eLIA platform?
>> Only ever a handful where made, and that was in 1999.
>> I doubt anyone could ever use the PCI interface on it
>> in any useful way.
> 
> So I can send a patch to remove the platform?

Yeah, I guess we can add in back in of anyone complains.
I don't know of any users of it anymore.


>>> But COMEMPCI fails with a different error - this init/main.o build 
>>> error is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency 
>>> of PCI on BROKEN is still required (unless it gets fixed).
>> Unless I am mistaken there is now no need for the CONFIG_PCI option
>> if selecting m68knommu. The only m68knommu platforms that had PCI
>> as far as I know where those that use the comempci part.
> 
> That implies I can also kill the m68k PCI code since m68knommu will 
> never use it?

Yep.

Regards
Greg


>> The patch looks ok to me too (acked below).
> 
> Thanks.
> 
>> Regards
>> Greg
>> ...
> 
> cu
> Adrian
> 


-- 
------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     gerg@snapgear.com
SnapGear -- a Secure Computing Company      PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [2.6 patch] m68k: remove the dead PCI code
  2008-08-29  7:31         ` Geert Uytterhoeven
@ 2008-08-31 16:10           ` Adrian Bunk
  2008-09-03  7:22             ` Geert Uytterhoeven
  2008-09-06 12:23             ` Geert Uytterhoeven
  0 siblings, 2 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-08-31 16:10 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Ungerer, jbarnes, Linux Kernel Development, linux-pci, Linux/m68k

On Fri, Aug 29, 2008 at 09:31:43AM +0200, Geert Uytterhoeven wrote:
> On Fri, 29 Aug 2008, Adrian Bunk wrote:
> > On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
> > > Adrian Bunk wrote:
> > >> A patch for removing the comempci code is below.
> > >>
> > >> It's a bit suspicious that asm/elia.h is now removed since comempci.c  
> > >> was the only user. What's the sttus of the eLIA platform?
> > >
> > > Only ever a handful where made, and that was in 1999.
> > > I doubt anyone could ever use the PCI interface on it
> > > in any useful way.
> > 
> > So I can send a patch to remove the platform?
> > 
> > >> But COMEMPCI fails with a different error - this init/main.o build 
> > >> error is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency 
> > >> of PCI on BROKEN is still required (unless it gets fixed).
> > >
> > > Unless I am mistaken there is now no need for the CONFIG_PCI option
> > > if selecting m68knommu. The only m68knommu platforms that had PCI
> > > as far as I know where those that use the comempci part.
> > 
> > That implies I can also kill the m68k PCI code since m68knommu will 
> > never use it?
> 
> Sure. If the FreeScale guys ever forward-port their ColdFire/MMU code to
> current mainline, we can readd it.

Patch (on top of my Hades removal patch) is below.

> Gr{oetje,eeting}s,
> 
> 						Geert

cu
Adrian


<--  snip    -->


This patch removes the no longer used m68k PCI code.

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---

 arch/m68k/Kconfig         |    4 
 arch/m68k/kernel/Makefile |    1 
 arch/m68k/kernel/bios32.c |  516 --------------------------------------
 include/asm-m68k/dma.h    |    4 
 include/asm-m68k/io.h     |   66 ----
 include/asm-m68k/pci.h    |   51 ---
 6 files changed, 7 insertions(+), 635 deletions(-)


diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 7bacc1c..4b046fa 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -136,10 +136,6 @@ config ATARI
 	  this kernel on an Atari, say Y here and browse the material
 	  available in <file:Documentation/m68k>; otherwise say N.
 
-config PCI
-	bool
-	help
-
 config MAC
 	bool "Macintosh support"
 	depends on !MMU_SUN3
diff --git a/arch/m68k/kernel/Makefile b/arch/m68k/kernel/Makefile
index 3a7f622..55d5d6b 100644
--- a/arch/m68k/kernel/Makefile
+++ b/arch/m68k/kernel/Makefile
@@ -14,5 +14,4 @@ obj-y	:= entry.o process.o traps.o ints.o signal.o ptrace.o module.o \
 
 devres-y = ../../../kernel/irq/devres.o
 
-obj-$(CONFIG_PCI)	+= bios32.o
 obj-y$(CONFIG_MMU_SUN3) += dma.o	# no, it's not a typo
diff --git a/arch/m68k/kernel/bios32.c b/arch/m68k/kernel/bios32.c
deleted file mode 100644
index 1c3b752..0000000
--- a/arch/m68k/kernel/bios32.c
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * bios32.c - PCI BIOS functions for m68k systems.
- *
- * Written by Wout Klaren.
- *
- * Based on the DEC Alpha bios32.c by Dave Rusling and David Mosberger.
- */
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-
-#if 0
-# define DBG_DEVS(args)		printk args
-#else
-# define DBG_DEVS(args)
-#endif
-
-#ifdef CONFIG_PCI
-
-/*
- * PCI support for Linux/m68k. Currently only the Hades is supported.
- *
- * The support for PCI bridges in the DEC Alpha version has
- * been removed in this version.
- */
-
-#include <linux/pci.h>
-#include <linux/slab.h>
-#include <linux/mm.h>
-
-#include <asm/io.h>
-#include <asm/pci.h>
-#include <asm/uaccess.h>
-
-#define KB		1024
-#define MB		(1024*KB)
-#define GB		(1024*MB)
-
-#define MAJOR_REV	0
-#define MINOR_REV	5
-
-/*
- * Align VAL to ALIGN, which must be a power of two.
- */
-
-#define ALIGN(val,align)	(((val) + ((align) - 1)) & ~((align) - 1))
-
-/*
- * Offsets relative to the I/O and memory base addresses from where resources
- * are allocated.
- */
-
-#define IO_ALLOC_OFFSET		0x00004000
-#define MEM_ALLOC_OFFSET	0x04000000
-
-/*
- * Declarations of hardware specific initialisation functions.
- */
-
-extern struct pci_bus_info *init_hades_pci(void);
-
-/*
- * Bus info structure of the PCI bus. A pointer to this structure is
- * put in the sysdata member of the pci_bus structure.
- */
-
-static struct pci_bus_info *bus_info;
-
-static int pci_modify = 1;		/* If set, layout the PCI bus ourself. */
-static int skip_vga;			/* If set do not modify base addresses
-					   of vga cards.*/
-static int disable_pci_burst;		/* If set do not allow PCI bursts. */
-
-static unsigned int io_base;
-static unsigned int mem_base;
-
-/*
- * static void disable_dev(struct pci_dev *dev)
- *
- * Disable PCI device DEV so that it does not respond to I/O or memory
- * accesses.
- *
- * Parameters:
- *
- * dev	- device to disable.
- */
-
-static void __init disable_dev(struct pci_dev *dev)
-{
-	unsigned short cmd;
-
-	if (((dev->class >> 8 == PCI_CLASS_NOT_DEFINED_VGA) ||
-	     (dev->class >> 8 == PCI_CLASS_DISPLAY_VGA) ||
-	     (dev->class >> 8 == PCI_CLASS_DISPLAY_XGA)) && skip_vga)
-		return;
-
-	pci_read_config_word(dev, PCI_COMMAND, &cmd);
-
-	cmd &= (~PCI_COMMAND_IO & ~PCI_COMMAND_MEMORY & ~PCI_COMMAND_MASTER);
-	pci_write_config_word(dev, PCI_COMMAND, cmd);
-}
-
-/*
- * static void layout_dev(struct pci_dev *dev)
- *
- * Layout memory and I/O for a device.
- *
- * Parameters:
- *
- * device	- device to layout memory and I/O for.
- */
-
-static void __init layout_dev(struct pci_dev *dev)
-{
-	unsigned short cmd;
-	unsigned int base, mask, size, reg;
-	unsigned int alignto;
-	int i;
-
-	/*
-	 * Skip video cards if requested.
-	 */
-
-	if (((dev->class >> 8 == PCI_CLASS_NOT_DEFINED_VGA) ||
-	     (dev->class >> 8 == PCI_CLASS_DISPLAY_VGA) ||
-	     (dev->class >> 8 == PCI_CLASS_DISPLAY_XGA)) && skip_vga)
-		return;
-
-	pci_read_config_word(dev, PCI_COMMAND, &cmd);
-
-	for (reg = PCI_BASE_ADDRESS_0, i = 0; reg <= PCI_BASE_ADDRESS_5; reg += 4, i++)
-	{
-		/*
-		 * Figure out how much space and of what type this
-		 * device wants.
-		 */
-
-		pci_write_config_dword(dev, reg, 0xffffffff);
-		pci_read_config_dword(dev, reg, &base);
-
-		if (!base)
-		{
-			/* this base-address register is unused */
-			dev->resource[i].start = 0;
-			dev->resource[i].end = 0;
-			dev->resource[i].flags = 0;
-			continue;
-		}
-
-		/*
-		 * We've read the base address register back after
-		 * writing all ones and so now we must decode it.
-		 */
-
-		if (base & PCI_BASE_ADDRESS_SPACE_IO)
-		{
-			/*
-			 * I/O space base address register.
-			 */
-
-			cmd |= PCI_COMMAND_IO;
-
-			base &= PCI_BASE_ADDRESS_IO_MASK;
-			mask = (~base << 1) | 0x1;
-			size = (mask & base) & 0xffffffff;
-
-			/*
-			 * Align to multiple of size of minimum base.
-			 */
-
-			alignto = max_t(unsigned int, 0x040, size);
-			base = ALIGN(io_base, alignto);
-			io_base = base + size;
-			pci_write_config_dword(dev, reg, base | PCI_BASE_ADDRESS_SPACE_IO);
-
-			dev->resource[i].start = base;
-			dev->resource[i].end = dev->resource[i].start + size - 1;
-			dev->resource[i].flags = IORESOURCE_IO | PCI_BASE_ADDRESS_SPACE_IO;
-
-			DBG_DEVS(("layout_dev: IO address: %lX\n", base));
-		}
-		else
-		{
-			unsigned int type;
-
-			/*
-			 * Memory space base address register.
-			 */
-
-			cmd |= PCI_COMMAND_MEMORY;
-			type = base & PCI_BASE_ADDRESS_MEM_TYPE_MASK;
-			base &= PCI_BASE_ADDRESS_MEM_MASK;
-			mask = (~base << 1) | 0x1;
-			size = (mask & base) & 0xffffffff;
-			switch (type)
-			{
-			case PCI_BASE_ADDRESS_MEM_TYPE_32:
-			case PCI_BASE_ADDRESS_MEM_TYPE_64:
-				break;
-
-			case PCI_BASE_ADDRESS_MEM_TYPE_1M:
-				printk("bios32 WARNING: slot %d, function %d "
-				       "requests memory below 1MB---don't "
-				       "know how to do that.\n",
-				       PCI_SLOT(dev->devfn),
-				       PCI_FUNC(dev->devfn));
-				continue;
-			}
-
-			/*
-			 * Align to multiple of size of minimum base.
-			 */
-
-			alignto = max_t(unsigned int, 0x1000, size);
-			base = ALIGN(mem_base, alignto);
-			mem_base = base + size;
-			pci_write_config_dword(dev, reg, base);
-
-			dev->resource[i].start = base;
-			dev->resource[i].end = dev->resource[i].start + size - 1;
-			dev->resource[i].flags = IORESOURCE_MEM;
-
-			if (type == PCI_BASE_ADDRESS_MEM_TYPE_64)
-			{
-				/*
-				 * 64-bit address, set the highest 32 bits
-				 * to zero.
-				 */
-
-				reg += 4;
-				pci_write_config_dword(dev, reg, 0);
-
-				i++;
-				dev->resource[i].start = 0;
-				dev->resource[i].end = 0;
-				dev->resource[i].flags = 0;
-			}
-		}
-	}
-
-	/*
-	 * Enable device:
-	 */
-
-	if (dev->class >> 8 == PCI_CLASS_NOT_DEFINED ||
-	    dev->class >> 8 == PCI_CLASS_NOT_DEFINED_VGA ||
-	    dev->class >> 8 == PCI_CLASS_DISPLAY_VGA ||
-	    dev->class >> 8 == PCI_CLASS_DISPLAY_XGA)
-	{
-		/*
-		 * All of these (may) have I/O scattered all around
-		 * and may not use i/o-base address registers at all.
-		 * So we just have to always enable I/O to these
-		 * devices.
-		 */
-		cmd |= PCI_COMMAND_IO;
-	}
-
-	pci_write_config_word(dev, PCI_COMMAND, cmd | PCI_COMMAND_MASTER);
-
-	pci_write_config_byte(dev, PCI_LATENCY_TIMER, (disable_pci_burst) ? 0 : 32);
-
-	if (bus_info != NULL)
-		bus_info->conf_device(dev);	/* Machine dependent configuration. */
-
-	DBG_DEVS(("layout_dev: bus %d  slot 0x%x  VID 0x%x  DID 0x%x  class 0x%x\n",
-		  dev->bus->number, PCI_SLOT(dev->devfn), dev->vendor, dev->device, dev->class));
-}
-
-/*
- * static void layout_bus(struct pci_bus *bus)
- *
- * Layout memory and I/O for all devices on the given bus.
- *
- * Parameters:
- *
- * bus	- bus.
- */
-
-static void __init layout_bus(struct pci_bus *bus)
-{
-	unsigned int bio, bmem;
-	struct pci_dev *dev;
-
-	DBG_DEVS(("layout_bus: starting bus %d\n", bus->number));
-
-	if (!bus->devices && !bus->children)
-		return;
-
-	/*
-	 * Align the current bases on appropriate boundaries (4K for
-	 * IO and 1MB for memory).
-	 */
-
-	bio = io_base = ALIGN(io_base, 4*KB);
-	bmem = mem_base = ALIGN(mem_base, 1*MB);
-
-	/*
-	 * PCI devices might have been setup by a PCI BIOS emulation
-	 * running under TOS. In these cases there is a
-	 * window during which two devices may have an overlapping
-	 * address range. To avoid this causing trouble, we first
-	 * turn off the I/O and memory address decoders for all PCI
-	 * devices.  They'll be re-enabled only once all address
-	 * decoders are programmed consistently.
-	 */
-
-	DBG_DEVS(("layout_bus: disable_dev for bus %d\n", bus->number));
-
-	for (dev = bus->devices; dev; dev = dev->sibling)
-	{
-		if ((dev->class >> 16 != PCI_BASE_CLASS_BRIDGE) ||
-		    (dev->class >> 8 == PCI_CLASS_BRIDGE_PCMCIA))
-			disable_dev(dev);
-	}
-
-	/*
-	 * Allocate space to each device:
-	 */
-
-	DBG_DEVS(("layout_bus: starting bus %d devices\n", bus->number));
-
-	for (dev = bus->devices; dev; dev = dev->sibling)
-	{
-		if ((dev->class >> 16 != PCI_BASE_CLASS_BRIDGE) ||
-		    (dev->class >> 8 == PCI_CLASS_BRIDGE_PCMCIA))
-			layout_dev(dev);
-	}
-
-	DBG_DEVS(("layout_bus: bus %d finished\n", bus->number));
-}
-
-/*
- * static void pcibios_fixup(void)
- *
- * Layout memory and I/O of all devices on the PCI bus if 'pci_modify' is
- * true. This might be necessary because not every m68k machine with a PCI
- * bus has a PCI BIOS. This function should be called right after
- * pci_scan_bus() in pcibios_init().
- */
-
-static void __init pcibios_fixup(void)
-{
-	if (pci_modify)
-	{
-		/*
-		 * Set base addresses for allocation of I/O and memory space.
-		 */
-
-		io_base = bus_info->io_space.start + IO_ALLOC_OFFSET;
-		mem_base = bus_info->mem_space.start + MEM_ALLOC_OFFSET;
-
-		/*
-		 * Scan the tree, allocating PCI memory and I/O space.
-		 */
-
-		layout_bus(pci_bus_b(pci_root.next));
-	}
-
-	/*
-	 * Fix interrupt assignments, etc.
-	 */
-
-	bus_info->fixup(pci_modify);
-}
-
-/*
- * static void pcibios_claim_resources(struct pci_bus *bus)
- *
- * Claim all resources that are assigned to devices on the given bus.
- *
- * Parameters:
- *
- * bus	- bus.
- */
-
-static void __init pcibios_claim_resources(struct pci_bus *bus)
-{
-	struct pci_dev *dev;
-	int i;
-
-	while (bus)
-	{
-		for (dev = bus->devices; (dev != NULL); dev = dev->sibling)
-		{
-			for (i = 0; i < PCI_NUM_RESOURCES; i++)
-			{
-				struct resource *r = &dev->resource[i];
-				struct resource *pr;
-				struct pci_bus_info *bus_info = (struct pci_bus_info *) dev->sysdata;
-
-				if ((r->start == 0) || (r->parent != NULL))
-					continue;
-#if 1
-				if (r->flags & IORESOURCE_IO)
-					pr = &bus_info->io_space;
-				else
-					pr = &bus_info->mem_space;
-#else
-				if (r->flags & IORESOURCE_IO)
-					pr = &ioport_resource;
-				else
-					pr = &iomem_resource;
-#endif
-				if (request_resource(pr, r) < 0)
-				{
-					printk(KERN_ERR "PCI: Address space collision on region %d of device %s\n", i, dev->name);
-				}
-			}
-		}
-
-		if (bus->children)
-			pcibios_claim_resources(bus->children);
-
-		bus = bus->next;
-	}
-}
-
-/*
- * int pcibios_assign_resource(struct pci_dev *dev, int i)
- *
- * Assign a new address to a PCI resource.
- *
- * Parameters:
- *
- * dev	- device.
- * i	- resource.
- *
- * Result: 0 if successful.
- */
-
-int __init pcibios_assign_resource(struct pci_dev *dev, int i)
-{
-	struct resource *r = &dev->resource[i];
-	struct resource *pr = pci_find_parent_resource(dev, r);
-	unsigned long size = r->end + 1;
-
-	if (!pr)
-		return -EINVAL;
-
-	if (r->flags & IORESOURCE_IO)
-	{
-		if (size > 0x100)
-			return -EFBIG;
-
-		if (allocate_resource(pr, r, size, bus_info->io_space.start +
-				      IO_ALLOC_OFFSET,  bus_info->io_space.end, 1024))
-			return -EBUSY;
-	}
-	else
-	{
-		if (allocate_resource(pr, r, size, bus_info->mem_space.start +
-				      MEM_ALLOC_OFFSET, bus_info->mem_space.end, size))
-			return -EBUSY;
-	}
-
-	if (i < 6)
-		pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + 4 * i, r->start);
-
-	return 0;
-}
-
-void __init pcibios_fixup_bus(struct pci_bus *bus)
-{
-	struct pci_dev *dev;
-	void *sysdata;
-
-	sysdata = (bus->parent) ? bus->parent->sysdata : bus->sysdata;
-
-	for (dev = bus->devices; (dev != NULL); dev = dev->sibling)
-		dev->sysdata = sysdata;
-}
-
-void __init pcibios_init(void)
-{
-	printk("Linux/m68k PCI BIOS32 revision %x.%02x\n", MAJOR_REV, MINOR_REV);
-
-	bus_info = NULL;
-
-/* Hades code was:
-	if (MACH_IS_HADES)
-		bus_info = init_hades_pci();
-*/
-
-	if (bus_info != NULL)
-	{
-		printk("PCI: Probing PCI hardware\n");
-		pci_scan_bus(0, bus_info->m68k_pci_ops, bus_info);
-		pcibios_fixup();
-		pcibios_claim_resources(pci_root);
-	}
-	else
-		printk("PCI: No PCI bus detected\n");
-}
-
-char * __init pcibios_setup(char *str)
-{
-	if (!strcmp(str, "nomodify"))
-	{
-		pci_modify = 0;
-		return NULL;
-	}
-	else if (!strcmp(str, "skipvga"))
-	{
-		skip_vga = 1;
-		return NULL;
-	}
-	else if (!strcmp(str, "noburst"))
-	{
-		disable_pci_burst = 1;
-		return NULL;
-	}
-
-	return str;
-}
-#endif /* CONFIG_PCI */
diff --git a/include/asm-m68k/dma.h b/include/asm-m68k/dma.h
index d0c9e61..4240fbc 100644
--- a/include/asm-m68k/dma.h
+++ b/include/asm-m68k/dma.h
@@ -11,10 +11,6 @@
 extern int request_dma(unsigned int dmanr, const char * device_id);	/* reserve a DMA channel */
 extern void free_dma(unsigned int dmanr);	/* release it again */
 
-#ifdef CONFIG_PCI
-extern int isa_dma_bridge_buggy;
-#else
 #define isa_dma_bridge_buggy    (0)
-#endif
 
 #endif /* _M68K_DMA_H */
diff --git a/include/asm-m68k/io.h b/include/asm-m68k/io.h
index 657187f..9e673e3 100644
--- a/include/asm-m68k/io.h
+++ b/include/asm-m68k/io.h
@@ -7,15 +7,12 @@
  *            - added skeleton for GG-II and Amiga PCMCIA
  * 2/3/01 RZ: - moved a few more defs into raw_io.h
  *
- * inX/outX/readX/writeX should not be used by any driver unless it does
- * ISA or PCI access. Other drivers should use function defined in raw_io.h
+ * inX/outX should not be used by any driver unless it does
+ * ISA access. Other drivers should use function defined in raw_io.h
  * or define its own macros on top of these.
  *
- *    inX(),outX()              are for PCI and ISA I/O
- *    readX(),writeX()          are for PCI memory
+ *    inX(),outX()              are for ISA I/O
  *    isa_readX(),isa_writeX()  are for ISA memory
- *
- * moved mem{cpy,set}_*io inside CONFIG_PCI
  */
 
 #ifndef _IO_H
@@ -256,10 +253,7 @@ static inline void isa_delay(void)
        (ISA_SEX ? raw_outsl(isa_itl(port), (u32 *)(buf), (nr)) :  \
                   raw_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
 
-#endif  /* CONFIG_ISA */
-
 
-#if defined(CONFIG_ISA) && !defined(CONFIG_PCI)
 #define inb     isa_inb
 #define inb_p   isa_inb_p
 #define outb    isa_outb
@@ -282,55 +276,9 @@ static inline void isa_delay(void)
 #define readw   isa_readw
 #define writeb  isa_writeb
 #define writew  isa_writew
-#endif /* CONFIG_ISA */
-
-#if defined(CONFIG_PCI)
-
-#define readl(addr)      in_le32(addr)
-#define writel(val,addr) out_le32((addr),(val))
-
-/* those can be defined for both ISA and PCI - it won't work though */
-#define readb(addr)       in_8(addr)
-#define readw(addr)       in_le16(addr)
-#define writeb(val,addr)  out_8((addr),(val))
-#define writew(val,addr)  out_le16((addr),(val))
 
-#define readb_relaxed(addr) readb(addr)
-#define readw_relaxed(addr) readw(addr)
-#define readl_relaxed(addr) readl(addr)
+#else  /* CONFIG_ISA */
 
-#ifndef CONFIG_ISA
-#define inb(port)      in_8(port)
-#define outb(val,port) out_8((port),(val))
-#define inw(port)      in_le16(port)
-#define outw(val,port) out_le16((port),(val))
-#define inl(port)      in_le32(port)
-#define outl(val,port) out_le32((port),(val))
-
-#else
-/*
- * kernel with both ISA and PCI compiled in, those have
- * conflicting defs for in/out. Simply consider port < 1024
- * ISA and everything else PCI. read,write not defined
- * in this case
- */
-#define inb(port) ((port)<1024 ? isa_inb(port) : in_8(port))
-#define inb_p(port) ((port)<1024 ? isa_inb_p(port) : in_8(port))
-#define inw(port) ((port)<1024 ? isa_inw(port) : in_le16(port))
-#define inw_p(port) ((port)<1024 ? isa_inw_p(port) : in_le16(port))
-#define inl(port) ((port)<1024 ? isa_inl(port) : in_le32(port))
-#define inl_p(port) ((port)<1024 ? isa_inl_p(port) : in_le32(port))
-
-#define outb(val,port) ((port)<1024 ? isa_outb((val),(port)) : out_8((port),(val)))
-#define outb_p(val,port) ((port)<1024 ? isa_outb_p((val),(port)) : out_8((port),(val)))
-#define outw(val,port) ((port)<1024 ? isa_outw((val),(port)) : out_le16((port),(val)))
-#define outw_p(val,port) ((port)<1024 ? isa_outw_p((val),(port)) : out_le16((port),(val)))
-#define outl(val,port) ((port)<1024 ? isa_outl((val),(port)) : out_le32((port),(val)))
-#define outl_p(val,port) ((port)<1024 ? isa_outl_p((val),(port)) : out_le32((port),(val)))
-#endif
-#endif /* CONFIG_PCI */
-
-#if !defined(CONFIG_ISA) && !defined(CONFIG_PCI)
 /*
  * We need to define dummy functions for GENERIC_IOMAP support.
  */
@@ -357,11 +305,11 @@ static inline void isa_delay(void)
 #define writeb(val,addr) out_8((addr),(val))
 #define readw(addr)      in_le16(addr)
 #define writew(val,addr) out_le16((addr),(val))
-#endif
-#if !defined(CONFIG_PCI)
+
+#endif /* CONFIG_ISA */
+
 #define readl(addr)      in_le32(addr)
 #define writel(val,addr) out_le32((addr),(val))
-#endif
 
 #define mmiowb()
 
diff --git a/include/asm-m68k/pci.h b/include/asm-m68k/pci.h
index 678cb0b..aa8eb33 100644
--- a/include/asm-m68k/pci.h
+++ b/include/asm-m68k/pci.h
@@ -1,57 +1,6 @@
 #ifndef _ASM_M68K_PCI_H
 #define _ASM_M68K_PCI_H
 
-/*
- * asm-m68k/pci_m68k.h - m68k specific PCI declarations.
- *
- * Written by Wout Klaren.
- */
-
-#include <asm/scatterlist.h>
-
-struct pci_ops;
-
-/*
- * Structure with hardware dependent information and functions of the
- * PCI bus.
- */
-
-struct pci_bus_info
-{
-	/*
-	 * Resources of the PCI bus.
-	 */
-
-	struct resource mem_space;
-	struct resource io_space;
-
-	/*
-	 * System dependent functions.
-	 */
-
-	struct pci_ops *m68k_pci_ops;
-
-	void (*fixup)(int pci_modify);
-	void (*conf_device)(struct pci_dev *dev);
-};
-
-#define pcibios_assign_all_busses()	0
-#define pcibios_scan_all_fns(a, b)	0
-
-static inline void pcibios_set_master(struct pci_dev *dev)
-{
-	/* No special bus mastering setup handling */
-}
-
-static inline void pcibios_penalize_isa_irq(int irq, int active)
-{
-	/* We don't do dynamic PCI IRQ allocation */
-}
-
-/* The PCI address space does equal the physical memory
- * address space.  The networking and block device layers use
- * this boolean for bounce buffer decisions.
- */
 #define PCI_DMA_BUS_IS_PHYS	(1)
 
 #endif /* _ASM_M68K_PCI_H */


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [2.6 patch] m68knommu: remove the eLIA support
  2008-08-29 11:07         ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Greg Ungerer
@ 2008-08-31 16:10           ` Adrian Bunk
  0 siblings, 0 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-08-31 16:10 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: jbarnes, linux-kernel, linux-pci, geert

On Fri, Aug 29, 2008 at 09:07:56PM +1000, Greg Ungerer wrote:
>
> Hi Adrian,

Hi Greg,

> Adrian Bunk wrote:
>> On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
>...
>>> Only ever a handful where made, and that was in 1999.
>>> I doubt anyone could ever use the PCI interface on it
>>> in any useful way.
>>
>> So I can send a patch to remove the platform?
>
> Yeah, I guess we can add in back in of anyone complains.
> I don't know of any users of it anymore.
>...

Patch below.

> Regards
> Greg

cu
Adrian


<--  snip  -->


Greg Ungerer said about this board:
Only ever a handful where made, and that was in 1999.

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---

 arch/m68knommu/Kconfig                |    6 ------
 arch/m68knommu/Makefile               |    1 -
 arch/m68knommu/include/asm/system.h   |    2 +-
 arch/m68knommu/platform/5307/config.c |    2 +-
 4 files changed, 2 insertions(+), 9 deletions(-)


diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 15ffd55..f43d50f 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -399,12 +399,6 @@ config M5307C3
 	help
 	  Support for the Motorola M5307C3 board.
 
-config eLIA
-	bool "Moreton Bay eLIA board support"
-	depends on M5307
-	help
-	  Support for the Moreton Bay eLIA board.
-
 config SECUREEDGEMP3
 	bool "SnapGear SecureEdge/MP3 platform support"
 	depends on M5307
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile
index b63bbcf..fd0fb30 100644
--- a/arch/m68knommu/Makefile
+++ b/arch/m68knommu/Makefile
@@ -41,7 +41,6 @@ board-$(CONFIG_M5271EVB)	:= M5271EVB
 board-$(CONFIG_M5275EVB)	:= M5275EVB
 board-$(CONFIG_M5282EVB)	:= M5282EVB
 board-$(CONFIG_ELITE)		:= eLITE
-board-$(CONFIG_eLIA)		:= eLIA
 board-$(CONFIG_NETtel)		:= NETtel
 board-$(CONFIG_SECUREEDGEMP3)	:= MP3
 board-$(CONFIG_CLEOPATRA)	:= CLEOPATRA
diff --git a/arch/m68knommu/include/asm/system.h b/arch/m68knommu/include/asm/system.h
index 40f49de..4496c0a 100644
--- a/arch/m68knommu/include/asm/system.h
+++ b/arch/m68knommu/include/asm/system.h
@@ -230,7 +230,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
         jmp 0xf0000400;			\
         ");				\
 })
-#elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \
+#elif defined(CONFIG_NETtel) || \
       defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA)
 #define HARD_RESET_NOW() ({		\
         asm("				\
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c
index 11cff66..724faf0 100644
--- a/arch/m68knommu/platform/5307/config.c
+++ b/arch/m68knommu/platform/5307/config.c
@@ -123,7 +123,7 @@ void __init config_BSP(char *commandp, int size)
 {
 	mcf_setimr(MCFSIM_IMR_MASKALL);
 
-#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \
+#if defined(CONFIG_NETtel) || \
     defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA)
 	/* Copy command line from FLASH to local buffer... */
 	memcpy(commandp, (char *) 0xf0004000, size);


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [2.6 patch] m68knommu: remove the unused PCI option
  2008-08-29  4:13     ` Greg Ungerer
  2008-08-29  7:01       ` Adrian Bunk
@ 2008-08-31 16:10       ` Adrian Bunk
  1 sibling, 0 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-08-31 16:10 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: gerg, jbarnes, linux-kernel, linux-pci

On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
> Hi Adrian,

Hi Greg,

> Adrian Bunk wrote:
>...
>> But COMEMPCI fails with a different error - this init/main.o build 
>> error is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency 
>> of PCI on BROKEN is still required (unless it gets fixed).
>
> Unless I am mistaken there is now no need for the CONFIG_PCI option
> if selecting m68knommu. The only m68knommu platforms that had PCI
> as far as I know where those that use the comempci part.
>...

Patch to remove the few PCI bits (on top of the comempci removal) is 
below.

> Regards
> Greg

cu
Adrian


<--  snip  -->


This patch removes the no longer used PCI option.

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---

 arch/m68knommu/Kconfig                   |   13 -------------
 arch/m68knommu/include/asm/dma-mapping.h |    4 ----
 2 files changed, 17 deletions(-)


diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index f43d50f..46b9c43 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -692,21 +692,8 @@ config ISA_DMA_API
 	depends on !M5272
 	default y
 
-menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
-
-config PCI
-	bool "PCI support"
-	help
-	  Support for PCI bus.
-
-source "drivers/pci/Kconfig"
-
 source "drivers/pcmcia/Kconfig"
 
-source "drivers/pci/hotplug/Kconfig"
-
-endmenu
-
 menu "Executable file formats"
 
 source "fs/Kconfig.binfmt"
diff --git a/arch/m68knommu/include/asm/dma-mapping.h b/arch/m68knommu/include/asm/dma-mapping.h
index 6aeab18..1748f2b 100644
--- a/arch/m68knommu/include/asm/dma-mapping.h
+++ b/arch/m68knommu/include/asm/dma-mapping.h
@@ -1,10 +1,6 @@
 #ifndef _M68KNOMMU_DMA_MAPPING_H
 #define _M68KNOMMU_DMA_MAPPING_H
 
-#ifdef CONFIG_PCI
-#include <asm-generic/dma-mapping.h>
-#else
 #include <asm-generic/dma-mapping-broken.h>
-#endif
 
 #endif  /* _M68KNOMMU_DMA_MAPPING_H */


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68k: remove the dead PCI code
  2008-08-31 16:10           ` [2.6 patch] m68k: remove the dead PCI code Adrian Bunk
@ 2008-09-03  7:22             ` Geert Uytterhoeven
  2008-09-06 12:23             ` Geert Uytterhoeven
  1 sibling, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2008-09-03  7:22 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Greg Ungerer, jbarnes, Linux Kernel Development, linux-pci, Linux/m68k

On Sun, 31 Aug 2008, Adrian Bunk wrote:
> On Fri, Aug 29, 2008 at 09:31:43AM +0200, Geert Uytterhoeven wrote:
> > On Fri, 29 Aug 2008, Adrian Bunk wrote:
> > > On Fri, Aug 29, 2008 at 02:13:24PM +1000, Greg Ungerer wrote:
> > > > Adrian Bunk wrote:
> > > >> A patch for removing the comempci code is below.
> > > >>
> > > >> It's a bit suspicious that asm/elia.h is now removed since comempci.c  
> > > >> was the only user. What's the sttus of the eLIA platform?
> > > >
> > > > Only ever a handful where made, and that was in 1999.
> > > > I doubt anyone could ever use the PCI interface on it
> > > > in any useful way.
> > > 
> > > So I can send a patch to remove the platform?
> > > 
> > > >> But COMEMPCI fails with a different error - this init/main.o build 
> > > >> error is present for CONFIG_PCI=y, CONFIG_COMEMPCI=n, so the dependency 
> > > >> of PCI on BROKEN is still required (unless it gets fixed).
> > > >
> > > > Unless I am mistaken there is now no need for the CONFIG_PCI option
> > > > if selecting m68knommu. The only m68knommu platforms that had PCI
> > > > as far as I know where those that use the comempci part.
> > > 
> > > That implies I can also kill the m68k PCI code since m68knommu will 
> > > never use it?
> > 
> > Sure. If the FreeScale guys ever forward-port their ColdFire/MMU code to
> > current mainline, we can readd it.
> 
> Patch (on top of my Hades removal patch) is below.
> 
> cu
> Adrian
> 
> 
> <--  snip    -->
> 
> 
> This patch removes the no longer used m68k PCI code.
> 
> Signed-off-by: Adrian Bunk <bunk@kernel.org>

Thanks! Will queue for 2.6.28, too.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68k: remove the dead PCI code
  2008-08-31 16:10           ` [2.6 patch] m68k: remove the dead PCI code Adrian Bunk
  2008-09-03  7:22             ` Geert Uytterhoeven
@ 2008-09-06 12:23             ` Geert Uytterhoeven
  2008-09-09  5:06               ` Jesse Barnes
  2008-09-25 13:31               ` Adrian Bunk
  1 sibling, 2 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2008-09-06 12:23 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Greg Ungerer, jbarnes, Linux Kernel Development, linux-pci, Linux/m68k

On Sun, 31 Aug 2008, Adrian Bunk wrote:
> This patch removes the no longer used m68k PCI code.
> 
> Signed-off-by: Adrian Bunk <bunk@kernel.org>
> 
> --- a/include/asm-m68k/pci.h
> +++ b/include/asm-m68k/pci.h

> -/* The PCI address space does equal the physical memory
> - * address space.  The networking and block device layers use
> - * this boolean for bounce buffer decisions.
> - */

I'd like to keep this comment, as the #define is still there.
Is that OK for you?

>  #define PCI_DMA_BUS_IS_PHYS	(1)

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68k: remove the dead PCI code
  2008-09-06 12:23             ` Geert Uytterhoeven
@ 2008-09-09  5:06               ` Jesse Barnes
  2008-09-09  7:11                 ` Geert Uytterhoeven
  2008-09-25 13:31               ` Adrian Bunk
  1 sibling, 1 reply; 19+ messages in thread
From: Jesse Barnes @ 2008-09-09  5:06 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Adrian Bunk, Greg Ungerer, Linux Kernel Development, linux-pci,
	Linux/m68k

On Saturday, September 06, 2008 5:23 am Geert Uytterhoeven wrote:
> On Sun, 31 Aug 2008, Adrian Bunk wrote:
> > This patch removes the no longer used m68k PCI code.
> >
> > Signed-off-by: Adrian Bunk <bunk@kernel.org>
> >
> > --- a/include/asm-m68k/pci.h
> > +++ b/include/asm-m68k/pci.h
> >
> > -/* The PCI address space does equal the physical memory
> > - * address space.  The networking and block device layers use
> > - * this boolean for bounce buffer decisions.
> > - */
>
> I'd like to keep this comment, as the #define is still there.
> Is that OK for you?
>
> >  #define PCI_DMA_BUS_IS_PHYS	(1)

Btw, I'm assuming you'll be queuing this up, Geert.  Let me know if you want 
to do otherwise...

Thanks,
Jesse

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68k: remove the dead PCI code
  2008-09-09  5:06               ` Jesse Barnes
@ 2008-09-09  7:11                 ` Geert Uytterhoeven
  0 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2008-09-09  7:11 UTC (permalink / raw)
  To: Jesse Barnes
  Cc: Adrian Bunk, Greg Ungerer, Linux Kernel Development, linux-pci,
	Linux/m68k

On Mon, 8 Sep 2008, Jesse Barnes wrote:
> On Saturday, September 06, 2008 5:23 am Geert Uytterhoeven wrote:
> > On Sun, 31 Aug 2008, Adrian Bunk wrote:
> > > This patch removes the no longer used m68k PCI code.
> > >
> > > Signed-off-by: Adrian Bunk <bunk@kernel.org>
> > >
> > > --- a/include/asm-m68k/pci.h
> > > +++ b/include/asm-m68k/pci.h
> > >
> > > -/* The PCI address space does equal the physical memory
> > > - * address space.  The networking and block device layers use
> > > - * this boolean for bounce buffer decisions.
> > > - */
> >
> > I'd like to keep this comment, as the #define is still there.
> > Is that OK for you?
> >
> > >  #define PCI_DMA_BUS_IS_PHYS	(1)
> 
> Btw, I'm assuming you'll be queuing this up, Geert.  Let me know if you want 
> to do otherwise...

Yes, I will.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [2.6 patch] m68k: remove the dead PCI code
  2008-09-06 12:23             ` Geert Uytterhoeven
  2008-09-09  5:06               ` Jesse Barnes
@ 2008-09-25 13:31               ` Adrian Bunk
  1 sibling, 0 replies; 19+ messages in thread
From: Adrian Bunk @ 2008-09-25 13:31 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Ungerer, jbarnes, Linux Kernel Development, linux-pci, Linux/m68k

On Sat, Sep 06, 2008 at 02:23:50PM +0200, Geert Uytterhoeven wrote:
> On Sun, 31 Aug 2008, Adrian Bunk wrote:
> > This patch removes the no longer used m68k PCI code.
> > 
> > Signed-off-by: Adrian Bunk <bunk@kernel.org>
> > 
> > --- a/include/asm-m68k/pci.h
> > +++ b/include/asm-m68k/pci.h
> 
> > -/* The PCI address space does equal the physical memory
> > - * address space.  The networking and block device layers use
> > - * this boolean for bounce buffer decisions.
> > - */
> 
> I'd like to keep this comment, as the #define is still there.
> Is that OK for you?

Sorry for the late answer.

That's fine for me.

> >  #define PCI_DMA_BUS_IS_PHYS	(1)
> 
> Gr{oetje,eeting}s,
> 
> 						Geert

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2008-09-25 13:33 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-19 13:47 [2.6 patch] m68knommu: let PCI depend on BROKEN Adrian Bunk
2008-08-19 14:13 ` Geert Uytterhoeven
2008-08-19 14:32   ` Adrian Bunk
2008-08-19 15:05 ` Matthew Wilcox
2008-08-22  3:44   ` Bryan Wu
2008-08-25  6:16 ` Greg Ungerer
2008-08-25 20:43   ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Adrian Bunk
2008-08-29  4:13     ` Greg Ungerer
2008-08-29  7:01       ` Adrian Bunk
2008-08-29  7:31         ` Geert Uytterhoeven
2008-08-31 16:10           ` [2.6 patch] m68k: remove the dead PCI code Adrian Bunk
2008-09-03  7:22             ` Geert Uytterhoeven
2008-09-06 12:23             ` Geert Uytterhoeven
2008-09-09  5:06               ` Jesse Barnes
2008-09-09  7:11                 ` Geert Uytterhoeven
2008-09-25 13:31               ` Adrian Bunk
2008-08-29 11:07         ` [RFC: 2.6 patch] m68knommu: remove the broken COMEMPCI code Greg Ungerer
2008-08-31 16:10           ` [2.6 patch] m68knommu: remove the eLIA support Adrian Bunk
2008-08-31 16:10       ` [2.6 patch] m68knommu: remove the unused PCI option Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).