Commit 7ce0f3b7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by James Bottomley

[PATCH] avoid obsolete APIs in atp870u

 + minor cleanups
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent fd21bcd7
/* $Id: atp870u.c,v 1.0 1997/05/07 15:22:00 root Exp root $ /*
* linux/kernel/atp870u.c
*
* Copyright (C) 1997 Wu Ching Chen * Copyright (C) 1997 Wu Ching Chen
* 2.1.x update (C) 1998 Krzysztof G. Baranowski * 2.1.x update (C) 1998 Krzysztof G. Baranowski
* 2.5.x update (C) 2002 Red Hat <alan@redhat.com> * 2.5.x update (C) 2002 Red Hat <alan@redhat.com>
...@@ -29,20 +27,19 @@ ...@@ -29,20 +27,19 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/stat.h>
#include <asm/system.h> #include <asm/system.h>
#include <asm/io.h> #include <asm/io.h>
#include "scsi.h" #include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_host.h> #include <scsi/scsi_host.h>
#include "atp870u.h" #include "atp870u.h"
/* static struct scsi_host_template atp870u_template;
* static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/atp870u.c,v 1.0 1997/05/07 15:22:00 root Exp root $"; static void send_s870(struct Scsi_Host *host);
*/
static unsigned short int sync_idu;
static irqreturn_t atp870u_intr_handle(int irq, void *dev_id, static irqreturn_t atp870u_intr_handle(int irq, void *dev_id,
struct pt_regs *regs) struct pt_regs *regs)
...@@ -51,7 +48,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id, ...@@ -51,7 +48,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id,
unsigned short int tmpcip, id; unsigned short int tmpcip, id;
unsigned char i, j, target_id, lun; unsigned char i, j, target_id, lun;
unsigned char *prd; unsigned char *prd;
Scsi_Cmnd *workrequ; struct scsi_cmnd *workrequ;
unsigned int workportu, tmport; unsigned int workportu, tmport;
unsigned long adrcntu, k; unsigned long adrcntu, k;
int errstus; int errstus;
...@@ -348,10 +345,18 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id, ...@@ -348,10 +345,18 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id,
* Complete the command * Complete the command
*/ */
if(workrequ->use_sg) if (workrequ->use_sg) {
pci_unmap_sg(dev->pdev, (struct scatterlist *)workrequ->buffer, workrequ->use_sg, scsi_to_pci_dma_dir(workrequ->sc_data_direction)); pci_unmap_sg(dev->pdev,
else if(workrequ->request_bufflen && workrequ->sc_data_direction != SCSI_DATA_NONE) (struct scatterlist *)workrequ->buffer,
pci_unmap_single(dev->pdev, workrequ->SCp.dma_handle, workrequ->request_bufflen, scsi_to_pci_dma_dir(workrequ->sc_data_direction)); workrequ->use_sg,
workrequ->sc_data_direction);
} else if (workrequ->request_bufflen &&
workrequ->sc_data_direction != DMA_NONE) {
pci_unmap_single(dev->pdev,
workrequ->SCp.dma_handle,
workrequ->request_bufflen,
workrequ->sc_data_direction);
}
spin_lock_irqsave(dev->host->host_lock, flags); spin_lock_irqsave(dev->host->host_lock, flags);
(*workrequ->scsi_done) (workrequ); (*workrequ->scsi_done) (workrequ);
...@@ -456,7 +461,8 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id, ...@@ -456,7 +461,8 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id,
* Queue a command to the ATP queue. Called with the host lock held. * Queue a command to the ATP queue. Called with the host lock held.
*/ */
static int atp870u_queuecommand(Scsi_Cmnd * req_p, void (*done) (Scsi_Cmnd *)) static int atp870u_queuecommand(struct scsi_cmnd *req_p,
void (*done) (struct scsi_cmnd *))
{ {
unsigned short int m; unsigned short int m;
unsigned int tmport; unsigned int tmport;
...@@ -533,7 +539,7 @@ static int atp870u_queuecommand(Scsi_Cmnd * req_p, void (*done) (Scsi_Cmnd *)) ...@@ -533,7 +539,7 @@ static int atp870u_queuecommand(Scsi_Cmnd * req_p, void (*done) (Scsi_Cmnd *))
static void send_s870(struct Scsi_Host *host) static void send_s870(struct Scsi_Host *host)
{ {
unsigned int tmport; unsigned int tmport;
Scsi_Cmnd *workrequ; struct scsi_cmnd *workrequ;
unsigned int i; unsigned int i;
unsigned char j, target_id; unsigned char j, target_id;
unsigned char *prd; unsigned char *prd;
...@@ -648,7 +654,8 @@ static void send_s870(struct Scsi_Host *host) ...@@ -648,7 +654,8 @@ static void send_s870(struct Scsi_Host *host)
if (workrequ->use_sg) { if (workrequ->use_sg) {
l = 0; l = 0;
sgpnt = (struct scatterlist *) workrequ->request_buffer; sgpnt = (struct scatterlist *) workrequ->request_buffer;
sg_count = pci_map_sg(dev->pdev, sgpnt, workrequ->use_sg, scsi_to_pci_dma_dir(workrequ->sc_data_direction)); sg_count = pci_map_sg(dev->pdev, sgpnt, workrequ->use_sg,
workrequ->sc_data_direction);
for (i = 0; i < workrequ->use_sg; i++) { for (i = 0; i < workrequ->use_sg; i++) {
if (sgpnt[i].length == 0 || workrequ->use_sg > ATP870U_SCATTER) { if (sgpnt[i].length == 0 || workrequ->use_sg > ATP870U_SCATTER) {
panic("Foooooooood fight!"); panic("Foooooooood fight!");
...@@ -656,7 +663,10 @@ static void send_s870(struct Scsi_Host *host) ...@@ -656,7 +663,10 @@ static void send_s870(struct Scsi_Host *host)
l += sgpnt[i].length; l += sgpnt[i].length;
} }
} else if(workrequ->request_bufflen && workrequ->sc_data_direction != PCI_DMA_NONE) { } else if(workrequ->request_bufflen && workrequ->sc_data_direction != PCI_DMA_NONE) {
workrequ->SCp.dma_handle = pci_map_single(dev->pdev, workrequ->request_buffer, workrequ->request_bufflen, scsi_to_pci_dma_dir(workrequ->sc_data_direction)); workrequ->SCp.dma_handle = pci_map_single(dev->pdev,
workrequ->request_buffer,
workrequ->request_bufflen,
workrequ->sc_data_direction);
l = workrequ->request_bufflen; l = workrequ->request_bufflen;
} }
else l = 0; else l = 0;
...@@ -678,7 +688,7 @@ static void send_s870(struct Scsi_Host *host) ...@@ -678,7 +688,7 @@ static void send_s870(struct Scsi_Host *host)
/* /*
* Check transfer direction * Check transfer direction
*/ */
if (workrequ->sc_data_direction == SCSI_DATA_WRITE) { if (workrequ->sc_data_direction == DMA_TO_DEVICE) {
outb((unsigned char) (j | 0x20), tmport++); outb((unsigned char) (j | 0x20), tmport++);
} else { } else {
outb(j, tmport++); outb(j, tmport++);
...@@ -770,7 +780,7 @@ static void send_s870(struct Scsi_Host *host) ...@@ -770,7 +780,7 @@ static void send_s870(struct Scsi_Host *host)
} }
tmport = workportu + 0x1c; tmport = workportu + 0x1c;
if (workrequ->sc_data_direction == SCSI_DATA_WRITE) { if (workrequ->sc_data_direction == DMA_TO_DEVICE) {
dev->id[target_id].dirctu = 0x20; dev->id[target_id].dirctu = 0x20;
if (inb(tmport) == 0) { if (inb(tmport) == 0) {
tmport = workportu + 0x18; tmport = workportu + 0x18;
...@@ -1089,7 +1099,6 @@ void is870(struct Scsi_Host *host, unsigned int wkport) ...@@ -1089,7 +1099,6 @@ void is870(struct Scsi_Host *host, unsigned int wkport)
static unsigned char wide[6] = { 0x80, 1, 2, 3, 1, 0 }; static unsigned char wide[6] = { 0x80, 1, 2, 3, 1, 0 };
struct atp_unit *dev = (struct atp_unit *)&host->hostdata; struct atp_unit *dev = (struct atp_unit *)&host->hostdata;
sync_idu = 0;
tmport = wkport + 0x3a; tmport = wkport + 0x3a;
outb((unsigned char) (inb(tmport) | 0x10), tmport); outb((unsigned char) (inb(tmport) | 0x10), tmport);
...@@ -1583,7 +1592,6 @@ static void is880(struct Scsi_Host *host, unsigned int wkport) ...@@ -1583,7 +1592,6 @@ static void is880(struct Scsi_Host *host, unsigned int wkport)
static unsigned char u3[9] = { 0x80, 1, 6, 4, 0x09, 00, 0x0e, 0x01, 0x02 }; static unsigned char u3[9] = { 0x80, 1, 6, 4, 0x09, 00, 0x0e, 0x01, 0x02 };
struct atp_unit *dev = (struct atp_unit *)&host->hostdata; struct atp_unit *dev = (struct atp_unit *)&host->hostdata;
sync_idu = 0;
lvdmode = inb(wkport + 0x3f) & 0x40; lvdmode = inb(wkport + 0x3f) & 0x40;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
...@@ -2555,10 +2563,10 @@ static int atp870u_probe(struct pci_dev *dev, const struct pci_device_id *ent) ...@@ -2555,10 +2563,10 @@ static int atp870u_probe(struct pci_dev *dev, const struct pci_device_id *ent)
it is available to be used again. Until this gets worked out, we will it is available to be used again. Until this gets worked out, we will
leave it commented out. */ leave it commented out. */
int atp870u_abort(Scsi_Cmnd * SCpnt) static int atp870u_abort(struct scsi_cmnd * SCpnt)
{ {
unsigned char j, k; unsigned char j, k;
Scsi_Cmnd *workrequ; struct scsi_cmnd *workrequ;
unsigned int tmport; unsigned int tmport;
struct atp_unit *dev = (struct atp_unit *)&SCpnt->device->host->hostdata; struct atp_unit *dev = (struct atp_unit *)&SCpnt->device->host->hostdata;
...@@ -2594,7 +2602,7 @@ int atp870u_abort(Scsi_Cmnd * SCpnt) ...@@ -2594,7 +2602,7 @@ int atp870u_abort(Scsi_Cmnd * SCpnt)
return SUCCESS; return SUCCESS;
} }
const char *atp870u_info(struct Scsi_Host *notused) static const char *atp870u_info(struct Scsi_Host *notused)
{ {
static char buffer[128]; static char buffer[128];
...@@ -2603,13 +2611,9 @@ const char *atp870u_info(struct Scsi_Host *notused) ...@@ -2603,13 +2611,9 @@ const char *atp870u_info(struct Scsi_Host *notused)
return buffer; return buffer;
} }
int atp870u_set_info(char *buffer, int length, struct Scsi_Host *HBAptr)
{
return -ENOSYS; /* Currently this is a no-op */
}
#define BLS buffer + len + size #define BLS buffer + len + size
int atp870u_proc_info(struct Scsi_Host *HBAptr, char *buffer, char **start, off_t offset, int length, int inout) static int atp870u_proc_info(struct Scsi_Host *HBAptr, char *buffer,
char **start, off_t offset, int length, int inout)
{ {
static u8 buff[512]; static u8 buff[512];
int size = 0; int size = 0;
...@@ -2617,9 +2621,8 @@ int atp870u_proc_info(struct Scsi_Host *HBAptr, char *buffer, char **start, off_ ...@@ -2617,9 +2621,8 @@ int atp870u_proc_info(struct Scsi_Host *HBAptr, char *buffer, char **start, off_
off_t begin = 0; off_t begin = 0;
off_t pos = 0; off_t pos = 0;
if (inout == TRUE) { /* Has data been written to the file? */ if (inout)
return (atp870u_set_info(buffer, length, HBAptr)); return -ENOSYS;
}
if (offset == 0) { if (offset == 0) {
memset(buff, 0, sizeof(buff)); memset(buff, 0, sizeof(buff));
} }
...@@ -2679,7 +2682,7 @@ static void atp870u_remove(struct pci_dev *pdev) ...@@ -2679,7 +2682,7 @@ static void atp870u_remove(struct pci_dev *pdev)
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static Scsi_Host_Template atp870u_template = { static struct scsi_host_template atp870u_template = {
.module = THIS_MODULE, .module = THIS_MODULE,
.name = "atp870u", .name = "atp870u",
.proc_name = "atp870u", .proc_name = "atp870u",
...@@ -2718,8 +2721,7 @@ static struct pci_driver atp870u_driver = { ...@@ -2718,8 +2721,7 @@ static struct pci_driver atp870u_driver = {
static int __init atp870u_init(void) static int __init atp870u_init(void)
{ {
pci_register_driver(&atp870u_driver); return pci_module_init(&atp870u_driver);
return 0;
} }
static void __exit atp870u_exit(void) static void __exit atp870u_exit(void)
......
#ifndef _ATP870U_H #ifndef _ATP870U_H
#define _ATP870U_H #define _ATP870U_H
/* $Id: atp870u.h,v 1.0 1997/05/07 15:09:00 root Exp root $
* Header file for the ACARD 870U/W driver for Linux
*
* $Log: atp870u.h,v $
* Revision 1.0 1997/05/07 15:09:00 root
* Initial revision
*
*/
#include <linux/types.h> #include <linux/types.h>
/* I/O Port */ /* I/O Port */
...@@ -41,7 +31,7 @@ struct atp_unit { ...@@ -41,7 +31,7 @@ struct atp_unit {
unsigned short deviceid; unsigned short deviceid;
unsigned char ata_cdbu[16]; unsigned char ata_cdbu[16];
unsigned char sp[16]; unsigned char sp[16];
Scsi_Cmnd *querequ[qcnt]; struct scsi_cmnd *querequ[qcnt];
struct atp_id { struct atp_id {
unsigned char dirctu; unsigned char dirctu;
unsigned char devspu; unsigned char devspu;
...@@ -52,20 +42,11 @@ struct atp_unit { ...@@ -52,20 +42,11 @@ struct atp_unit {
unsigned char *prd_posu; unsigned char *prd_posu;
unsigned char *prd_tableu; unsigned char *prd_tableu;
dma_addr_t prd_phys; dma_addr_t prd_phys;
Scsi_Cmnd *curr_req; struct scsi_cmnd *curr_req;
} id[16]; } id[16];
struct Scsi_Host *host; struct Scsi_Host *host;
struct pci_dev *pdev; struct pci_dev *pdev;
unsigned int unit; unsigned int unit;
}; };
static int atp870u_queuecommand(Scsi_Cmnd *, void (*done) (Scsi_Cmnd *));
static int atp870u_abort(Scsi_Cmnd *);
static int atp870u_biosparam(struct scsi_device *, struct block_device *,
sector_t, int *);
static void send_s870(struct Scsi_Host *);
extern const char *atp870u_info(struct Scsi_Host *);
static Scsi_Host_Template atp870u_template;
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment