Blame view
drivers/scsi/qla4xxx/ql4_inline.h
2.15 KB
afaf5a2d3 [SCSI] Initial Co... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* * QLogic iSCSI HBA Driver * Copyright (c) 2003-2006 QLogic Corporation * * See LICENSE.qla4xxx for copyright and licensing details. */ /* * * qla4xxx_lookup_ddb_by_fw_index * This routine locates a device handle given the firmware device * database index. If device doesn't exist, returns NULL. * * Input: * ha - Pointer to host adapter structure. * fw_ddb_index - Firmware's device database index * * Returns: * Pointer to the corresponding internal device database structure */ static inline struct ddb_entry * qla4xxx_lookup_ddb_by_fw_index(struct scsi_qla_host *ha, uint32_t fw_ddb_index) { struct ddb_entry *ddb_entry = NULL; if ((fw_ddb_index < MAX_DDB_ENTRIES) && (ha->fw_ddb_index_map[fw_ddb_index] != (struct ddb_entry *) INVALID_ENTRY)) { ddb_entry = ha->fw_ddb_index_map[fw_ddb_index]; } DEBUG3(printk("scsi%d: %s: index [%d], ddb_entry = %p ", ha->host_no, __func__, fw_ddb_index, ddb_entry)); return ddb_entry; } static inline void __qla4xxx_enable_intrs(struct scsi_qla_host *ha) { |
d915058f4 [SCSI] qla4xxx: a... |
42 |
if (is_qla4022(ha) | is_qla4032(ha)) { |
afaf5a2d3 [SCSI] Initial Co... |
43 44 45 46 47 48 49 50 51 52 53 54 55 |
writel(set_rmask(IMR_SCSI_INTR_ENABLE), &ha->reg->u1.isp4022.intr_mask); readl(&ha->reg->u1.isp4022.intr_mask); } else { writel(set_rmask(CSR_SCSI_INTR_ENABLE), &ha->reg->ctrl_status); readl(&ha->reg->ctrl_status); } set_bit(AF_INTERRUPTS_ON, &ha->flags); } static inline void __qla4xxx_disable_intrs(struct scsi_qla_host *ha) { |
d915058f4 [SCSI] qla4xxx: a... |
56 |
if (is_qla4022(ha) | is_qla4032(ha)) { |
afaf5a2d3 [SCSI] Initial Co... |
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
writel(clr_rmask(IMR_SCSI_INTR_ENABLE), &ha->reg->u1.isp4022.intr_mask); readl(&ha->reg->u1.isp4022.intr_mask); } else { writel(clr_rmask(CSR_SCSI_INTR_ENABLE), &ha->reg->ctrl_status); readl(&ha->reg->ctrl_status); } clear_bit(AF_INTERRUPTS_ON, &ha->flags); } static inline void qla4xxx_enable_intrs(struct scsi_qla_host *ha) { unsigned long flags; spin_lock_irqsave(&ha->hardware_lock, flags); __qla4xxx_enable_intrs(ha); spin_unlock_irqrestore(&ha->hardware_lock, flags); } static inline void qla4xxx_disable_intrs(struct scsi_qla_host *ha) { unsigned long flags; spin_lock_irqsave(&ha->hardware_lock, flags); __qla4xxx_disable_intrs(ha); spin_unlock_irqrestore(&ha->hardware_lock, flags); } |