[PATCH] powerpc: make ISA floppies work again
We used to assume that a DMA mapping request with a NULL dev was for ISA DMA. This assumption was broken at some point. Now we explicitly pass the detected ISA PCI device in the floppy setup. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
69ed332498
commit
b239cbe957
@ -78,6 +78,7 @@ int global_phb_number; /* Global phb counter */
|
||||
|
||||
/* Cached ISA bridge dev. */
|
||||
struct pci_dev *ppc64_isabridge_dev = NULL;
|
||||
EXPORT_SYMBOL_GPL(ppc64_isabridge_dev);
|
||||
|
||||
static void fixup_broken_pcnet32(struct pci_dev* dev)
|
||||
{
|
||||
|
@ -35,6 +35,7 @@
|
||||
#ifdef CONFIG_PCI
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <asm/ppc-pci.h> /* for ppc64_isabridge_dev */
|
||||
|
||||
#define fd_dma_setup(addr,size,mode,io) powerpc_fd_dma_setup(addr,size,mode,io)
|
||||
|
||||
@ -52,12 +53,12 @@ static __inline__ int powerpc_fd_dma_setup(char *addr, unsigned long size,
|
||||
if (bus_addr
|
||||
&& (addr != prev_addr || size != prev_size || dir != prev_dir)) {
|
||||
/* different from last time -- unmap prev */
|
||||
pci_unmap_single(NULL, bus_addr, prev_size, prev_dir);
|
||||
pci_unmap_single(ppc64_isabridge_dev, bus_addr, prev_size, prev_dir);
|
||||
bus_addr = 0;
|
||||
}
|
||||
|
||||
if (!bus_addr) /* need to map it */
|
||||
bus_addr = pci_map_single(NULL, addr, size, dir);
|
||||
bus_addr = pci_map_single(ppc64_isabridge_dev, addr, size, dir);
|
||||
|
||||
/* remember this one as prev */
|
||||
prev_addr = addr;
|
||||
|
Loading…
Reference in New Issue
Block a user