[SCSI] megaraid_sas: Add 1078 OCR support

Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
This commit is contained in:
adam radford 2011-05-11 18:34:52 -07:00 коммит произвёл James Bottomley
Родитель 495c560970
Коммит 3cc6851f9a
1 изменённых файлов: 17 добавлений и 17 удалений

Просмотреть файл

@ -437,15 +437,18 @@ megasas_read_fw_status_reg_ppc(struct megasas_register_set __iomem * regs)
static int static int
megasas_clear_intr_ppc(struct megasas_register_set __iomem * regs) megasas_clear_intr_ppc(struct megasas_register_set __iomem * regs)
{ {
u32 status; u32 status, mfiStatus = 0;
/* /*
* Check if it is our interrupt * Check if it is our interrupt
*/ */
status = readl(&regs->outbound_intr_status); status = readl(&regs->outbound_intr_status);
if (!(status & MFI_REPLY_1078_MESSAGE_INTERRUPT)) { if (status & MFI_REPLY_1078_MESSAGE_INTERRUPT)
return 0; mfiStatus = MFI_INTR_FLAG_REPLY_MESSAGE;
}
if (status & MFI_G2_OUTBOUND_DOORBELL_CHANGE_INTERRUPT)
mfiStatus |= MFI_INTR_FLAG_FIRMWARE_STATE_CHANGE;
/* /*
* Clear the interrupt by writing back the same value * Clear the interrupt by writing back the same value
@ -455,8 +458,9 @@ megasas_clear_intr_ppc(struct megasas_register_set __iomem * regs)
/* Dummy readl to force pci flush */ /* Dummy readl to force pci flush */
readl(&regs->outbound_doorbell_clear); readl(&regs->outbound_doorbell_clear);
return 1; return mfiStatus;
} }
/** /**
* megasas_fire_cmd_ppc - Sends command to the FW * megasas_fire_cmd_ppc - Sends command to the FW
* @frame_phys_addr : Physical address of cmd * @frame_phys_addr : Physical address of cmd
@ -476,17 +480,6 @@ megasas_fire_cmd_ppc(struct megasas_instance *instance,
spin_unlock_irqrestore(&instance->hba_lock, flags); spin_unlock_irqrestore(&instance->hba_lock, flags);
} }
/**
* megasas_adp_reset_ppc - For controller reset
* @regs: MFI register set
*/
static int
megasas_adp_reset_ppc(struct megasas_instance *instance,
struct megasas_register_set __iomem *regs)
{
return 0;
}
/** /**
* megasas_check_reset_ppc - For controller reset check * megasas_check_reset_ppc - For controller reset check
* @regs: MFI register set * @regs: MFI register set
@ -495,8 +488,12 @@ static int
megasas_check_reset_ppc(struct megasas_instance *instance, megasas_check_reset_ppc(struct megasas_instance *instance,
struct megasas_register_set __iomem *regs) struct megasas_register_set __iomem *regs)
{ {
if (instance->adprecovery != MEGASAS_HBA_OPERATIONAL)
return 1;
return 0; return 0;
} }
static struct megasas_instance_template megasas_instance_template_ppc = { static struct megasas_instance_template megasas_instance_template_ppc = {
.fire_cmd = megasas_fire_cmd_ppc, .fire_cmd = megasas_fire_cmd_ppc,
@ -504,7 +501,7 @@ static struct megasas_instance_template megasas_instance_template_ppc = {
.disable_intr = megasas_disable_intr_ppc, .disable_intr = megasas_disable_intr_ppc,
.clear_intr = megasas_clear_intr_ppc, .clear_intr = megasas_clear_intr_ppc,
.read_fw_status_reg = megasas_read_fw_status_reg_ppc, .read_fw_status_reg = megasas_read_fw_status_reg_ppc,
.adp_reset = megasas_adp_reset_ppc, .adp_reset = megasas_adp_reset_xscale,
.check_reset = megasas_check_reset_ppc, .check_reset = megasas_check_reset_ppc,
.service_isr = megasas_isr, .service_isr = megasas_isr,
.tasklet = megasas_complete_cmd_dpc, .tasklet = megasas_complete_cmd_dpc,
@ -620,6 +617,9 @@ static int
megasas_check_reset_skinny(struct megasas_instance *instance, megasas_check_reset_skinny(struct megasas_instance *instance,
struct megasas_register_set __iomem *regs) struct megasas_register_set __iomem *regs)
{ {
if (instance->adprecovery != MEGASAS_HBA_OPERATIONAL)
return 1;
return 0; return 0;
} }