Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
623 srb->cmnd[0] = REQUEST_SENSE;<br />
624 srb->cmnd[1] = old_cmnd[1] & 0xE0;<br />
625 srb->cmnd[4] = 18;<br />
626<br />
627 /* FIXME: we must do the protocol translation here */<br />
628 if (us->subclass == US_SC_RBC || us->subclass == US_SC_SCSI)<br />
629 srb->cmd_len = 6;<br />
630 else<br />
631 srb->cmd_len = 12;<br />
632<br />
633 /* set the transfer direction */<br />
634 old_sc_data_direction = srb->sc_data_direction;<br />
635 srb->sc_data_direction = DMA_FROM_DEVICE;<br />
636<br />
637 /* use the new buffer we have */<br />
638 old_request_buffer = srb->request_buffer;<br />
639 srb->request_buffer = srb->sense_buffer;<br />
640<br />
641 /* set the buffer length for transfer */<br />
642 old_request_bufflen = srb->request_bufflen;<br />
643 srb->request_bufflen = 18;<br />
644<br />
645 /* set up for no scatter-gather use */<br />
148<br />
646 old_sg = srb->use_sg;<br />
647 srb->use_sg = 0;<br />
648<br />
649 /* change the serial number -- toggle the high bit*/<br />
650 old_serial_number = srb->serial_number;<br />
651 srb->serial_number ^= 0x80000000;<br />
652<br />
653 /* issue the auto-sense command */<br />
654 old_resid = srb->resid;<br />
655 srb->resid = 0;<br />
656 temp_result = us->transport(us->srb, us);<br />
657<br />
658 /* let's clean up right away */<br />
659 srb->resid = old_resid;<br />
660 srb->request_buffer = old_request_buffer;<br />
661 srb->request_bufflen = old_request_bufflen;<br />
662 srb->use_sg = old_sg;<br />
663 srb->serial_number = old_serial_number;<br />
664 srb->sc_data_direction = old_sc_data_direction;<br />
665 srb->cmd_len = old_cmd_len;