Commit 1beb6fa8 authored by Harvey Harrison's avatar Harvey Harrison Committed by James Bottomley
Browse files
parent 5880f486
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -1034,7 +1034,7 @@ ahd_intr(struct ahd_softc *ahd)
}
}


/******************************** Private Inlines *****************************/
/******************************** Private Inlines *****************************/
static __inline void
static inline void
ahd_assert_atn(struct ahd_softc *ahd)
ahd_assert_atn(struct ahd_softc *ahd)
{
{
	ahd_outb(ahd, SCSISIGO, ATNO);
	ahd_outb(ahd, SCSISIGO, ATNO);
@@ -1069,7 +1069,7 @@ ahd_currently_packetized(struct ahd_softc *ahd)
	return (packetized);
	return (packetized);
}
}


static __inline int
static inline int
ahd_set_active_fifo(struct ahd_softc *ahd)
ahd_set_active_fifo(struct ahd_softc *ahd)
{
{
	u_int active_fifo;
	u_int active_fifo;
@@ -1086,7 +1086,7 @@ ahd_set_active_fifo(struct ahd_softc *ahd)
	}
	}
}
}


static __inline void
static inline void
ahd_unbusy_tcl(struct ahd_softc *ahd, u_int tcl)
ahd_unbusy_tcl(struct ahd_softc *ahd, u_int tcl)
{
{
	ahd_busy_tcl(ahd, tcl, SCB_LIST_NULL);
	ahd_busy_tcl(ahd, tcl, SCB_LIST_NULL);
@@ -1096,7 +1096,7 @@ ahd_unbusy_tcl(struct ahd_softc *ahd, u_int tcl)
 * Determine whether the sequencer reported a residual
 * Determine whether the sequencer reported a residual
 * for this SCB/transaction.
 * for this SCB/transaction.
 */
 */
static __inline void
static inline void
ahd_update_residual(struct ahd_softc *ahd, struct scb *scb)
ahd_update_residual(struct ahd_softc *ahd, struct scb *scb)
{
{
	uint32_t sgptr;
	uint32_t sgptr;
@@ -1106,7 +1106,7 @@ ahd_update_residual(struct ahd_softc *ahd, struct scb *scb)
		ahd_calc_residual(ahd, scb);
		ahd_calc_residual(ahd, scb);
}
}


static __inline void
static inline void
ahd_complete_scb(struct ahd_softc *ahd, struct scb *scb)
ahd_complete_scb(struct ahd_softc *ahd, struct scb *scb)
{
{
	uint32_t sgptr;
	uint32_t sgptr;
@@ -7987,7 +7987,7 @@ ahd_resume(struct ahd_softc *ahd)
 * scbid that should be restored once manipualtion
 * scbid that should be restored once manipualtion
 * of the TCL entry is complete.
 * of the TCL entry is complete.
 */
 */
static __inline u_int
static inline u_int
ahd_index_busy_tcl(struct ahd_softc *ahd, u_int *saved_scbid, u_int tcl)
ahd_index_busy_tcl(struct ahd_softc *ahd, u_int *saved_scbid, u_int tcl)
{
{
	/*
	/*
+14 −18
Original line number Original line Diff line number Diff line
@@ -46,21 +46,20 @@
#define _AIC79XX_INLINE_H_
#define _AIC79XX_INLINE_H_


/******************************** Debugging ***********************************/
/******************************** Debugging ***********************************/
static __inline char *ahd_name(struct ahd_softc *ahd);
static inline char *ahd_name(struct ahd_softc *ahd);


static __inline char *
static inline char *ahd_name(struct ahd_softc *ahd)
ahd_name(struct ahd_softc *ahd)
{
{
	return (ahd->name);
	return (ahd->name);
}
}


/************************ Sequencer Execution Control *************************/
/************************ Sequencer Execution Control *************************/
static __inline void ahd_known_modes(struct ahd_softc *ahd,
static inline void ahd_known_modes(struct ahd_softc *ahd,
				     ahd_mode src, ahd_mode dst);
				     ahd_mode src, ahd_mode dst);
static __inline ahd_mode_state ahd_build_mode_state(struct ahd_softc *ahd,
static inline ahd_mode_state ahd_build_mode_state(struct ahd_softc *ahd,
						    ahd_mode src,
						    ahd_mode src,
						    ahd_mode dst);
						    ahd_mode dst);
static __inline void ahd_extract_mode_state(struct ahd_softc *ahd,
static inline void ahd_extract_mode_state(struct ahd_softc *ahd,
					    ahd_mode_state state,
					    ahd_mode_state state,
					    ahd_mode *src, ahd_mode *dst);
					    ahd_mode *src, ahd_mode *dst);


@@ -73,7 +72,7 @@ int ahd_is_paused(struct ahd_softc *ahd);
void ahd_pause(struct ahd_softc *ahd);
void ahd_pause(struct ahd_softc *ahd);
void ahd_unpause(struct ahd_softc *ahd);
void ahd_unpause(struct ahd_softc *ahd);


static __inline void
static inline void
ahd_known_modes(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
ahd_known_modes(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
{
{
	ahd->src_mode = src;
	ahd->src_mode = src;
@@ -82,13 +81,13 @@ ahd_known_modes(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
	ahd->saved_dst_mode = dst;
	ahd->saved_dst_mode = dst;
}
}


static __inline ahd_mode_state
static inline ahd_mode_state
ahd_build_mode_state(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
ahd_build_mode_state(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
{
{
	return ((src << SRC_MODE_SHIFT) | (dst << DST_MODE_SHIFT));
	return ((src << SRC_MODE_SHIFT) | (dst << DST_MODE_SHIFT));
}
}


static __inline void
static inline void
ahd_extract_mode_state(struct ahd_softc *ahd, ahd_mode_state state,
ahd_extract_mode_state(struct ahd_softc *ahd, ahd_mode_state state,
		       ahd_mode *src, ahd_mode *dst)
		       ahd_mode *src, ahd_mode *dst)
{
{
@@ -102,13 +101,12 @@ void *ahd_sg_setup(struct ahd_softc *ahd, struct scb *scb,
		      bus_size_t len, int last);
		      bus_size_t len, int last);


/************************** Memory mapping routines ***************************/
/************************** Memory mapping routines ***************************/
static __inline size_t	ahd_sg_size(struct ahd_softc *ahd);
static inline size_t	ahd_sg_size(struct ahd_softc *ahd);


void	ahd_sync_sglist(struct ahd_softc *ahd,
void	ahd_sync_sglist(struct ahd_softc *ahd,
			struct scb *scb, int op);
			struct scb *scb, int op);


static __inline size_t
static inline size_t ahd_sg_size(struct ahd_softc *ahd)
ahd_sg_size(struct ahd_softc *ahd)
{
{
	if ((ahd->flags & AHD_64BIT_ADDRESSING) != 0)
	if ((ahd->flags & AHD_64BIT_ADDRESSING) != 0)
		return (sizeof(struct ahd_dma64_seg));
		return (sizeof(struct ahd_dma64_seg));
@@ -141,11 +139,9 @@ struct scb *
	ahd_lookup_scb(struct ahd_softc *ahd, u_int tag);
	ahd_lookup_scb(struct ahd_softc *ahd, u_int tag);
void	ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb);
void	ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb);


static __inline uint8_t *
static inline uint8_t *ahd_get_sense_buf(struct ahd_softc *ahd,
			ahd_get_sense_buf(struct ahd_softc *ahd,
					  struct scb *scb);
					  struct scb *scb);
static __inline uint32_t
static inline uint32_t ahd_get_sense_bufaddr(struct ahd_softc *ahd,
			ahd_get_sense_bufaddr(struct ahd_softc *ahd,
					      struct scb *scb);
					      struct scb *scb);


#if 0 /* unused */
#if 0 /* unused */
@@ -158,13 +154,13 @@ do { \


#endif
#endif


static __inline uint8_t *
static inline uint8_t *
ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb)
ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb)
{
{
	return (scb->sense_data);
	return (scb->sense_data);
}
}


static __inline uint32_t
static inline uint32_t
ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb)
ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb)
{
{
	return (scb->sense_busaddr);
	return (scb->sense_busaddr);
+51 −51
Original line number Original line Diff line number Diff line
@@ -395,19 +395,19 @@ struct info_str {
};
};


/******************************** Locking *************************************/
/******************************** Locking *************************************/
static __inline void
static inline void
ahd_lockinit(struct ahd_softc *ahd)
ahd_lockinit(struct ahd_softc *ahd)
{
{
	spin_lock_init(&ahd->platform_data->spin_lock);
	spin_lock_init(&ahd->platform_data->spin_lock);
}
}


static __inline void
static inline void
ahd_lock(struct ahd_softc *ahd, unsigned long *flags)
ahd_lock(struct ahd_softc *ahd, unsigned long *flags)
{
{
	spin_lock_irqsave(&ahd->platform_data->spin_lock, *flags);
	spin_lock_irqsave(&ahd->platform_data->spin_lock, *flags);
}
}


static __inline void
static inline void
ahd_unlock(struct ahd_softc *ahd, unsigned long *flags)
ahd_unlock(struct ahd_softc *ahd, unsigned long *flags)
{
{
	spin_unlock_irqrestore(&ahd->platform_data->spin_lock, *flags);
	spin_unlock_irqrestore(&ahd->platform_data->spin_lock, *flags);
@@ -490,29 +490,29 @@ void ahd_pci_write_config(ahd_dev_softc_t pci,
					  int reg, uint32_t value,
					  int reg, uint32_t value,
					  int width);
					  int width);


static __inline int ahd_get_pci_function(ahd_dev_softc_t);
static inline int ahd_get_pci_function(ahd_dev_softc_t);
static __inline int
static inline int
ahd_get_pci_function(ahd_dev_softc_t pci)
ahd_get_pci_function(ahd_dev_softc_t pci)
{
{
	return (PCI_FUNC(pci->devfn));
	return (PCI_FUNC(pci->devfn));
}
}


static __inline int ahd_get_pci_slot(ahd_dev_softc_t);
static inline int ahd_get_pci_slot(ahd_dev_softc_t);
static __inline int
static inline int
ahd_get_pci_slot(ahd_dev_softc_t pci)
ahd_get_pci_slot(ahd_dev_softc_t pci)
{
{
	return (PCI_SLOT(pci->devfn));
	return (PCI_SLOT(pci->devfn));
}
}


static __inline int ahd_get_pci_bus(ahd_dev_softc_t);
static inline int ahd_get_pci_bus(ahd_dev_softc_t);
static __inline int
static inline int
ahd_get_pci_bus(ahd_dev_softc_t pci)
ahd_get_pci_bus(ahd_dev_softc_t pci)
{
{
	return (pci->bus->number);
	return (pci->bus->number);
}
}


static __inline void ahd_flush_device_writes(struct ahd_softc *);
static inline void ahd_flush_device_writes(struct ahd_softc *);
static __inline void
static inline void
ahd_flush_device_writes(struct ahd_softc *ahd)
ahd_flush_device_writes(struct ahd_softc *ahd)
{
{
	/* XXX Is this sufficient for all architectures??? */
	/* XXX Is this sufficient for all architectures??? */
@@ -524,81 +524,81 @@ int ahd_linux_proc_info(struct Scsi_Host *, char *, char **,
			    off_t, int, int);
			    off_t, int, int);


/*********************** Transaction Access Wrappers **************************/
/*********************** Transaction Access Wrappers **************************/
static __inline void ahd_cmd_set_transaction_status(struct scsi_cmnd *, uint32_t);
static inline void ahd_cmd_set_transaction_status(struct scsi_cmnd *, uint32_t);
static __inline void ahd_set_transaction_status(struct scb *, uint32_t);
static inline void ahd_set_transaction_status(struct scb *, uint32_t);
static __inline void ahd_cmd_set_scsi_status(struct scsi_cmnd *, uint32_t);
static inline void ahd_cmd_set_scsi_status(struct scsi_cmnd *, uint32_t);
static __inline void ahd_set_scsi_status(struct scb *, uint32_t);
static inline void ahd_set_scsi_status(struct scb *, uint32_t);
static __inline uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd);
static inline uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd);
static __inline uint32_t ahd_get_transaction_status(struct scb *);
static inline uint32_t ahd_get_transaction_status(struct scb *);
static __inline uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd);
static inline uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd);
static __inline uint32_t ahd_get_scsi_status(struct scb *);
static inline uint32_t ahd_get_scsi_status(struct scb *);
static __inline void ahd_set_transaction_tag(struct scb *, int, u_int);
static inline void ahd_set_transaction_tag(struct scb *, int, u_int);
static __inline u_long ahd_get_transfer_length(struct scb *);
static inline u_long ahd_get_transfer_length(struct scb *);
static __inline int ahd_get_transfer_dir(struct scb *);
static inline int ahd_get_transfer_dir(struct scb *);
static __inline void ahd_set_residual(struct scb *, u_long);
static inline void ahd_set_residual(struct scb *, u_long);
static __inline void ahd_set_sense_residual(struct scb *scb, u_long resid);
static inline void ahd_set_sense_residual(struct scb *scb, u_long resid);
static __inline u_long ahd_get_residual(struct scb *);
static inline u_long ahd_get_residual(struct scb *);
static __inline u_long ahd_get_sense_residual(struct scb *);
static inline u_long ahd_get_sense_residual(struct scb *);
static __inline int ahd_perform_autosense(struct scb *);
static inline int ahd_perform_autosense(struct scb *);
static __inline uint32_t ahd_get_sense_bufsize(struct ahd_softc *,
static inline uint32_t ahd_get_sense_bufsize(struct ahd_softc *,
					       struct scb *);
					       struct scb *);
static __inline void ahd_notify_xfer_settings_change(struct ahd_softc *,
static inline void ahd_notify_xfer_settings_change(struct ahd_softc *,
						     struct ahd_devinfo *);
						     struct ahd_devinfo *);
static __inline void ahd_platform_scb_free(struct ahd_softc *ahd,
static inline void ahd_platform_scb_free(struct ahd_softc *ahd,
					   struct scb *scb);
					   struct scb *scb);
static __inline void ahd_freeze_scb(struct scb *scb);
static inline void ahd_freeze_scb(struct scb *scb);


static __inline
static inline
void ahd_cmd_set_transaction_status(struct scsi_cmnd *cmd, uint32_t status)
void ahd_cmd_set_transaction_status(struct scsi_cmnd *cmd, uint32_t status)
{
{
	cmd->result &= ~(CAM_STATUS_MASK << 16);
	cmd->result &= ~(CAM_STATUS_MASK << 16);
	cmd->result |= status << 16;
	cmd->result |= status << 16;
}
}


static __inline
static inline
void ahd_set_transaction_status(struct scb *scb, uint32_t status)
void ahd_set_transaction_status(struct scb *scb, uint32_t status)
{
{
	ahd_cmd_set_transaction_status(scb->io_ctx,status);
	ahd_cmd_set_transaction_status(scb->io_ctx,status);
}
}


static __inline
static inline
void ahd_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status)
void ahd_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status)
{
{
	cmd->result &= ~0xFFFF;
	cmd->result &= ~0xFFFF;
	cmd->result |= status;
	cmd->result |= status;
}
}


static __inline
static inline
void ahd_set_scsi_status(struct scb *scb, uint32_t status)
void ahd_set_scsi_status(struct scb *scb, uint32_t status)
{
{
	ahd_cmd_set_scsi_status(scb->io_ctx, status);
	ahd_cmd_set_scsi_status(scb->io_ctx, status);
}
}


static __inline
static inline
uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd)
uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd)
{
{
	return ((cmd->result >> 16) & CAM_STATUS_MASK);
	return ((cmd->result >> 16) & CAM_STATUS_MASK);
}
}


static __inline
static inline
uint32_t ahd_get_transaction_status(struct scb *scb)
uint32_t ahd_get_transaction_status(struct scb *scb)
{
{
	return (ahd_cmd_get_transaction_status(scb->io_ctx));
	return (ahd_cmd_get_transaction_status(scb->io_ctx));
}
}


static __inline
static inline
uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd)
uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd)
{
{
	return (cmd->result & 0xFFFF);
	return (cmd->result & 0xFFFF);
}
}


static __inline
static inline
uint32_t ahd_get_scsi_status(struct scb *scb)
uint32_t ahd_get_scsi_status(struct scb *scb)
{
{
	return (ahd_cmd_get_scsi_status(scb->io_ctx));
	return (ahd_cmd_get_scsi_status(scb->io_ctx));
}
}


static __inline
static inline
void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type)
void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type)
{
{
	/*
	/*
@@ -607,43 +607,43 @@ void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type)
	 */
	 */
}
}


static __inline
static inline
u_long ahd_get_transfer_length(struct scb *scb)
u_long ahd_get_transfer_length(struct scb *scb)
{
{
	return (scb->platform_data->xfer_len);
	return (scb->platform_data->xfer_len);
}
}


static __inline
static inline
int ahd_get_transfer_dir(struct scb *scb)
int ahd_get_transfer_dir(struct scb *scb)
{
{
	return (scb->io_ctx->sc_data_direction);
	return (scb->io_ctx->sc_data_direction);
}
}


static __inline
static inline
void ahd_set_residual(struct scb *scb, u_long resid)
void ahd_set_residual(struct scb *scb, u_long resid)
{
{
	scsi_set_resid(scb->io_ctx, resid);
	scsi_set_resid(scb->io_ctx, resid);
}
}


static __inline
static inline
void ahd_set_sense_residual(struct scb *scb, u_long resid)
void ahd_set_sense_residual(struct scb *scb, u_long resid)
{
{
	scb->platform_data->sense_resid = resid;
	scb->platform_data->sense_resid = resid;
}
}


static __inline
static inline
u_long ahd_get_residual(struct scb *scb)
u_long ahd_get_residual(struct scb *scb)
{
{
	return scsi_get_resid(scb->io_ctx);
	return scsi_get_resid(scb->io_ctx);
}
}


static __inline
static inline
u_long ahd_get_sense_residual(struct scb *scb)
u_long ahd_get_sense_residual(struct scb *scb)
{
{
	return (scb->platform_data->sense_resid);
	return (scb->platform_data->sense_resid);
}
}


static __inline
static inline
int ahd_perform_autosense(struct scb *scb)
int ahd_perform_autosense(struct scb *scb)
{
{
	/*
	/*
@@ -654,20 +654,20 @@ int ahd_perform_autosense(struct scb *scb)
	return (1);
	return (1);
}
}


static __inline uint32_t
static inline uint32_t
ahd_get_sense_bufsize(struct ahd_softc *ahd, struct scb *scb)
ahd_get_sense_bufsize(struct ahd_softc *ahd, struct scb *scb)
{
{
	return (sizeof(struct scsi_sense_data));
	return (sizeof(struct scsi_sense_data));
}
}


static __inline void
static inline void
ahd_notify_xfer_settings_change(struct ahd_softc *ahd,
ahd_notify_xfer_settings_change(struct ahd_softc *ahd,
				struct ahd_devinfo *devinfo)
				struct ahd_devinfo *devinfo)
{
{
	/* Nothing to do here for linux */
	/* Nothing to do here for linux */
}
}


static __inline void
static inline void
ahd_platform_scb_free(struct ahd_softc *ahd, struct scb *scb)
ahd_platform_scb_free(struct ahd_softc *ahd, struct scb *scb)
{
{
	ahd->flags &= ~AHD_RESOURCE_SHORTAGE;
	ahd->flags &= ~AHD_RESOURCE_SHORTAGE;
@@ -678,7 +678,7 @@ void ahd_platform_free(struct ahd_softc *ahd);
void	ahd_platform_init(struct ahd_softc *ahd);
void	ahd_platform_init(struct ahd_softc *ahd);
void	ahd_platform_freeze_devq(struct ahd_softc *ahd, struct scb *scb);
void	ahd_platform_freeze_devq(struct ahd_softc *ahd, struct scb *scb);


static __inline void
static inline void
ahd_freeze_scb(struct scb *scb)
ahd_freeze_scb(struct scb *scb)
{
{
	if ((scb->io_ctx->result & (CAM_DEV_QFRZN << 16)) == 0) {
	if ((scb->io_ctx->result & (CAM_DEV_QFRZN << 16)) == 0) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -51,7 +51,7 @@


#include "aic79xx_pci.h"
#include "aic79xx_pci.h"


static __inline uint64_t
static inline uint64_t
ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
{
{
	uint64_t id;
	uint64_t id;
+2 −3
Original line number Original line Diff line number Diff line
@@ -55,10 +55,9 @@ void ahc_sync_sglist(struct ahc_softc *ahc,
			struct scb *scb, int op);
			struct scb *scb, int op);


/******************************** Debugging ***********************************/
/******************************** Debugging ***********************************/
static __inline char *ahc_name(struct ahc_softc *ahc);
static inline char *ahc_name(struct ahc_softc *ahc);


static __inline char *
static inline char *ahc_name(struct ahc_softc *ahc)
ahc_name(struct ahc_softc *ahc)
{
{
	return (ahc->name);
	return (ahc->name);
}
}
Loading