PATCH: fix ppa for new scsi

From: Alan Cox (alan@lxorguk.ukuu.org.uk)
Date: Fri Feb 14 2003 - 16:05:09 EST


diff -u --new-file --recursive --exclude-from /usr/src/exclude linux-2.5.60-ref/drivers/scsi/ppa.c linux-2.5.60-ac1/drivers/scsi/ppa.c
--- linux-2.5.60-ref/drivers/scsi/ppa.c 2003-02-14 21:21:36.000000000 +0000
+++ linux-2.5.60-ac1/drivers/scsi/ppa.c 2003-02-14 20:36:01.000000000 +0000
@@ -148,7 +148,7 @@
                       "pardevice is owning the port for too longtime!\n",
                            i);
                     parport_unregister_device(ppa_hosts[i].dev);
- spin_lock_irq(ppa_hosts[i].cur_cmd->host->host_lock);
+ spin_lock_irq(ppa_hosts[i].cur_cmd->device->host->host_lock);
                     return 0;
                 }
             }
@@ -635,7 +635,7 @@
 
 static inline int ppa_send_command(Scsi_Cmnd * cmd)
 {
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
     int k;
 
     w_ctr(PPA_BASE(host_no), 0x0c);
@@ -661,7 +661,7 @@
      * 0 Told to schedule
      * 1 Finished data transfer
      */
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
     unsigned short ppb = PPA_BASE(host_no);
     unsigned long start_jiffies = jiffies;
 
@@ -752,7 +752,7 @@
 int ppa_command(Scsi_Cmnd * cmd)
 {
     static int first_pass = 1;
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
 
     if (first_pass) {
         printk("ppa: using non-queuing interface\n");
@@ -774,7 +774,7 @@
         schedule();
 
     if (cmd->SCp.phase) /* Only disconnect if we have connected */
- ppa_disconnect(cmd->host->unique_id);
+ ppa_disconnect(cmd->device->host->unique_id);
 
     ppa_pb_release(host_no);
     ppa_hosts[host_no].cur_cmd = 0;
@@ -807,7 +807,7 @@
     case DID_OK:
         break;
     case DID_NO_CONNECT:
- printk("ppa: no device at SCSI ID %i\n", cmd->target);
+ printk("ppa: no device at SCSI ID %i\n", cmd->device->target);
         break;
     case DID_BUS_BUSY:
         printk("ppa: BUS BUSY - EPP timeout detected\n");
@@ -836,21 +836,21 @@
 #endif
 
     if (cmd->SCp.phase > 1)
- ppa_disconnect(cmd->host->unique_id);
+ ppa_disconnect(cmd->device->host->unique_id);
     if (cmd->SCp.phase > 0)
- ppa_pb_release(cmd->host->unique_id);
+ ppa_pb_release(cmd->device->host->unique_id);
 
     tmp->cur_cmd = 0;
     
- spin_lock_irqsave(cmd->host->host_lock, flags);
+ spin_lock_irqsave(cmd->device->host->host_lock, flags);
     cmd->scsi_done(cmd);
- spin_unlock_irqrestore(cmd->host->host_lock, flags);
+ spin_unlock_irqrestore(cmd->device->host->host_lock, flags);
     return;
 }
 
 static int ppa_engine(ppa_struct * tmp, Scsi_Cmnd * cmd)
 {
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
     unsigned short ppb = PPA_BASE(host_no);
     unsigned char l = 0, h = 0;
     int retv;
@@ -900,7 +900,7 @@
         }
 
     case 2: /* Phase 2 - We are now talking to the scsi bus */
- if (!ppa_select(host_no, cmd->target)) {
+ if (!ppa_select(host_no, cmd->device->id)) {
             ppa_fail(host_no, DID_NO_CONNECT);
             return 0;
         }
@@ -966,7 +966,7 @@
 
 int ppa_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
 {
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
 
     if (ppa_hosts[host_no].cur_cmd) {
         printk("PPA: bug in ppa_queuecommand\n");
@@ -1011,7 +1011,7 @@
 
 int ppa_abort(Scsi_Cmnd * cmd)
 {
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
     /*
      * There is no method for aborting commands since Iomega
      * have tied the SCSI_MESSAGE line high in the interface
@@ -1039,7 +1039,7 @@
 
 int ppa_reset(Scsi_Cmnd * cmd)
 {
- int host_no = cmd->host->unique_id;
+ int host_no = cmd->device->host->unique_id;
 
     if (cmd->SCp.phase)
         ppa_disconnect(host_no);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Feb 15 2003 - 22:00:58 EST