Ah, bummer. I wanted to keep the MVME drivers but I never managed to get them ported to the new SCSI layer. Anyone out there who could help me with that? Adrian > On Mar 14, 2018, at 12:48 PM, Christoph Hellwig <hch@xxxxxx> wrote: > > This driver hasn't seen any recent bug fixing and is one of the last > drivers using the scsi_module.c infrastruture that has been deprecated > 15 years ago. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > drivers/scsi/Kconfig | 8 --- > drivers/scsi/Makefile | 1 - > drivers/scsi/mvme147.c | 151 ------------------------------------------------- > drivers/scsi/mvme147.h | 25 -------- > drivers/scsi/wd33c93.c | 5 -- > 5 files changed, 190 deletions(-) > delete mode 100644 drivers/scsi/mvme147.c > delete mode 100644 drivers/scsi/mvme147.h > > diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig > index 11e89e56b865..a95084008fe0 100644 > --- a/drivers/scsi/Kconfig > +++ b/drivers/scsi/Kconfig > @@ -1390,14 +1390,6 @@ config SCSI_MAC_ESP > To compile this driver as a module, choose M here: the module > will be called mac_esp. > > -config MVME147_SCSI > - bool "WD33C93 SCSI driver for MVME147" > - depends on MVME147 && SCSI=y > - select SCSI_SPI_ATTRS > - help > - Support for the on-board SCSI controller on the Motorola MVME147 > - single-board computer. > - > config MVME16x_SCSI > tristate "NCR53C710 SCSI driver for MVME16x" > depends on MVME16x && SCSI > diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile > index d5135efbf9cd..9575f291acda 100644 > --- a/drivers/scsi/Makefile > +++ b/drivers/scsi/Makefile > @@ -51,7 +51,6 @@ obj-$(CONFIG_SCSI_ZORRO7XX) += 53c700.o zorro7xx.o > obj-$(CONFIG_A3000_SCSI) += a3000.o wd33c93.o > obj-$(CONFIG_A2091_SCSI) += a2091.o wd33c93.o > obj-$(CONFIG_GVP11_SCSI) += gvp11.o wd33c93.o > -obj-$(CONFIG_MVME147_SCSI) += mvme147.o wd33c93.o > obj-$(CONFIG_SGIWD93_SCSI) += sgiwd93.o wd33c93.o > obj-$(CONFIG_ATARI_SCSI) += atari_scsi.o > obj-$(CONFIG_MAC_SCSI) += mac_scsi.o > diff --git a/drivers/scsi/mvme147.c b/drivers/scsi/mvme147.c > deleted file mode 100644 > index e6b2b681fda3..000000000000 > --- a/drivers/scsi/mvme147.c > +++ /dev/null > @@ -1,151 +0,0 @@ > -// SPDX-License-Identifier: GPL-2.0 > -#include <linux/types.h> > -#include <linux/mm.h> > -#include <linux/blkdev.h> > -#include <linux/interrupt.h> > - > -#include <asm/page.h> > -#include <asm/pgtable.h> > -#include <asm/mvme147hw.h> > -#include <asm/irq.h> > - > -#include "scsi.h" > -#include <scsi/scsi_host.h> > -#include "wd33c93.h" > -#include "mvme147.h" > - > -#include <linux/stat.h> > - > - > -static irqreturn_t mvme147_intr(int irq, void *data) > -{ > - struct Scsi_Host *instance = data; > - > - if (irq == MVME147_IRQ_SCSI_PORT) > - wd33c93_intr(instance); > - else > - m147_pcc->dma_intr = 0x89; /* Ack and enable ints */ > - return IRQ_HANDLED; > -} > - > -static int dma_setup(struct scsi_cmnd *cmd, int dir_in) > -{ > - struct Scsi_Host *instance = cmd->device->host; > - struct WD33C93_hostdata *hdata = shost_priv(instance); > - unsigned char flags = 0x01; > - unsigned long addr = virt_to_bus(cmd->SCp.ptr); > - > - /* setup dma direction */ > - if (!dir_in) > - flags |= 0x04; > - > - /* remember direction */ > - hdata->dma_dir = dir_in; > - > - if (dir_in) { > - /* invalidate any cache */ > - cache_clear(addr, cmd->SCp.this_residual); > - } else { > - /* push any dirty cache */ > - cache_push(addr, cmd->SCp.this_residual); > - } > - > - /* start DMA */ > - m147_pcc->dma_bcr = cmd->SCp.this_residual | (1 << 24); > - m147_pcc->dma_dadr = addr; > - m147_pcc->dma_cntrl = flags; > - > - /* return success */ > - return 0; > -} > - > -static void dma_stop(struct Scsi_Host *instance, struct scsi_cmnd *SCpnt, > - int status) > -{ > - m147_pcc->dma_cntrl = 0; > -} > - > -int mvme147_detect(struct scsi_host_template *tpnt) > -{ > - static unsigned char called = 0; > - struct Scsi_Host *instance; > - wd33c93_regs regs; > - struct WD33C93_hostdata *hdata; > - > - if (!MACH_IS_MVME147 || called) > - return 0; > - called++; > - > - tpnt->proc_name = "MVME147"; > - tpnt->show_info = wd33c93_show_info, > - tpnt->write_info = wd33c93_write_info, > - > - instance = scsi_register(tpnt, sizeof(struct WD33C93_hostdata)); > - if (!instance) > - goto err_out; > - > - instance->base = 0xfffe4000; > - instance->irq = MVME147_IRQ_SCSI_PORT; > - regs.SASR = (volatile unsigned char *)0xfffe4000; > - regs.SCMD = (volatile unsigned char *)0xfffe4001; > - hdata = shost_priv(instance); > - hdata->no_sync = 0xff; > - hdata->fast = 0; > - hdata->dma_mode = CTRL_DMA; > - wd33c93_init(instance, regs, dma_setup, dma_stop, WD33C93_FS_8_10); > - > - if (request_irq(MVME147_IRQ_SCSI_PORT, mvme147_intr, 0, > - "MVME147 SCSI PORT", instance)) > - goto err_unregister; > - if (request_irq(MVME147_IRQ_SCSI_DMA, mvme147_intr, 0, > - "MVME147 SCSI DMA", instance)) > - goto err_free_irq; > -#if 0 /* Disabled; causes problems booting */ > - m147_pcc->scsi_interrupt = 0x10; /* Assert SCSI bus reset */ > - udelay(100); > - m147_pcc->scsi_interrupt = 0x00; /* Negate SCSI bus reset */ > - udelay(2000); > - m147_pcc->scsi_interrupt = 0x40; /* Clear bus reset interrupt */ > -#endif > - m147_pcc->scsi_interrupt = 0x09; /* Enable interrupt */ > - > - m147_pcc->dma_cntrl = 0x00; /* ensure DMA is stopped */ > - m147_pcc->dma_intr = 0x89; /* Ack and enable ints */ > - > - return 1; > - > -err_free_irq: > - free_irq(MVME147_IRQ_SCSI_PORT, mvme147_intr); > -err_unregister: > - scsi_unregister(instance); > -err_out: > - return 0; > -} > - > -static struct scsi_host_template driver_template = { > - .proc_name = "MVME147", > - .name = "MVME147 built-in SCSI", > - .detect = mvme147_detect, > - .release = mvme147_release, > - .queuecommand = wd33c93_queuecommand, > - .eh_abort_handler = wd33c93_abort, > - .eh_host_reset_handler = wd33c93_host_reset, > - .can_queue = CAN_QUEUE, > - .this_id = 7, > - .sg_tablesize = SG_ALL, > - .cmd_per_lun = CMD_PER_LUN, > - .use_clustering = ENABLE_CLUSTERING > -}; > - > - > -#include "scsi_module.c" > - > -int mvme147_release(struct Scsi_Host *instance) > -{ > -#ifdef MODULE > - /* XXX Make sure DMA is stopped! */ > - free_irq(MVME147_IRQ_SCSI_PORT, mvme147_intr); > - free_irq(MVME147_IRQ_SCSI_DMA, mvme147_intr); > -#endif > - return 1; > -} > diff --git a/drivers/scsi/mvme147.h b/drivers/scsi/mvme147.h > deleted file mode 100644 > index f75ff58ddcd0..000000000000 > --- a/drivers/scsi/mvme147.h > +++ /dev/null > @@ -1,25 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0 */ > -#ifndef MVME147_H > - > -/* $Id: mvme147.h,v 1.4 1997/01/19 23:07:10 davem Exp $ > - * > - * Header file for the MVME147 built-in SCSI controller for Linux > - * > - * Written and (C) 1993, Hamish Macdonald, see mvme147.c for more info > - * > - */ > - > -#include <linux/types.h> > - > -int mvme147_detect(struct scsi_host_template *); > -int mvme147_release(struct Scsi_Host *); > - > -#ifndef CMD_PER_LUN > -#define CMD_PER_LUN 2 > -#endif > - > -#ifndef CAN_QUEUE > -#define CAN_QUEUE 16 > -#endif > - > -#endif /* MVME147_H */ > diff --git a/drivers/scsi/wd33c93.c b/drivers/scsi/wd33c93.c > index 74be04f2357c..00a53cf138d1 100644 > --- a/drivers/scsi/wd33c93.c > +++ b/drivers/scsi/wd33c93.c > @@ -1540,11 +1540,6 @@ reset_wd33c93(struct Scsi_Host *instance) > DEFAULT_SX_OFF, 0, hostdata->sx_table)); > write_wd33c93(regs, WD_COMMAND, WD_CMD_RESET); > > - > -#ifdef CONFIG_MVME147_SCSI > - udelay(25); /* The old wd33c93 on MVME147 needs this, at least */ > -#endif > - > while (!(read_aux_stat(regs) & ASR_INT)) > ; > sr = read_wd33c93(regs, WD_SCSI_STATUS); > -- > 2.14.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-m68k" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html