Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 38973
b: refs/heads/master
c: b274cab
h: refs/heads/master
i:
  38971: 3a23692
v: v3
  • Loading branch information
Sumant Patro authored and James Bottomley committed Oct 4, 2006
1 parent ec20974 commit 520f79c
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 24 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b1df99d9434edf3fc26f9e36ee6a443e3611e829
refs/heads/master: b274cab779219325fd480cc696a456d1c3893bd8
55 changes: 32 additions & 23 deletions trunk/drivers/scsi/megaraid/megaraid_sas.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,19 @@ megasas_enable_intr_xscale(struct megasas_register_set __iomem * regs)
readl(&regs->outbound_intr_mask);
}

/**
* megasas_disable_intr_xscale -Disables interrupt
* @regs: MFI register set
*/
static inline void
megasas_disable_intr_xscale(struct megasas_register_set __iomem * regs)
{
u32 mask = 0x1f;
writel(mask, &regs->outbound_intr_mask);
/* Dummy readl to force pci flush */
readl(&regs->outbound_intr_mask);
}

/**
* megasas_read_fw_status_reg_xscale - returns the current FW status value
* @regs: MFI register set
Expand Down Expand Up @@ -185,6 +198,7 @@ static struct megasas_instance_template megasas_instance_template_xscale = {

.fire_cmd = megasas_fire_cmd_xscale,
.enable_intr = megasas_enable_intr_xscale,
.disable_intr = megasas_disable_intr_xscale,
.clear_intr = megasas_clear_intr_xscale,
.read_fw_status_reg = megasas_read_fw_status_reg_xscale,
};
Expand Down Expand Up @@ -214,6 +228,19 @@ megasas_enable_intr_ppc(struct megasas_register_set __iomem * regs)
readl(&regs->outbound_intr_mask);
}

/**
* megasas_disable_intr_ppc - Disable interrupt
* @regs: MFI register set
*/
static inline void
megasas_disable_intr_ppc(struct megasas_register_set __iomem * regs)
{
u32 mask = 0xFFFFFFFF;
writel(mask, &regs->outbound_intr_mask);
/* Dummy readl to force pci flush */
readl(&regs->outbound_intr_mask);
}

/**
* megasas_read_fw_status_reg_ppc - returns the current FW status value
* @regs: MFI register set
Expand Down Expand Up @@ -265,6 +292,7 @@ static struct megasas_instance_template megasas_instance_template_ppc = {

.fire_cmd = megasas_fire_cmd_ppc,
.enable_intr = megasas_enable_intr_ppc,
.disable_intr = megasas_disable_intr_ppc,
.clear_intr = megasas_clear_intr_ppc,
.read_fw_status_reg = megasas_read_fw_status_reg_ppc,
};
Expand All @@ -274,25 +302,6 @@ static struct megasas_instance_template megasas_instance_template_ppc = {
* specific to ppc (deviceid : 0x60) controllers
*/

/**
* megasas_disable_intr - Disables interrupts
* @regs: MFI register set
*/
static inline void
megasas_disable_intr(struct megasas_instance *instance)
{
u32 mask = 0x1f;
struct megasas_register_set __iomem *regs = instance->reg_set;

if(instance->pdev->device == PCI_DEVICE_ID_LSI_SAS1078R)
mask = 0xffffffff;

writel(mask, &regs->outbound_intr_mask);

/* Dummy readl to force pci flush */
readl(&regs->outbound_intr_mask);
}

/**
* megasas_issue_polled - Issues a polling command
* @instance: Adapter soft state
Expand Down Expand Up @@ -1293,7 +1302,7 @@ megasas_transition_to_ready(struct megasas_instance* instance)
/*
* Bring it to READY state; assuming max wait 10 secs
*/
megasas_disable_intr(instance);
instance->instancet->disable_intr(instance->reg_set);
writel(MFI_RESET_FLAGS, &instance->reg_set->inbound_doorbell);

max_wait = 10;
Expand Down Expand Up @@ -1799,7 +1808,7 @@ static int megasas_init_mfi(struct megasas_instance *instance)
/*
* disable the intr before firing the init frame to FW
*/
megasas_disable_intr(instance);
instance->instancet->disable_intr(instance->reg_set);

/*
* Issue the init frame in polled mode
Expand Down Expand Up @@ -2279,7 +2288,7 @@ megasas_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
megasas_mgmt_info.max_index--;

pci_set_drvdata(pdev, NULL);
megasas_disable_intr(instance);
instance->instancet->disable_intr(instance->reg_set);
free_irq(instance->pdev->irq, instance);

megasas_release_mfi(instance);
Expand Down Expand Up @@ -2409,7 +2418,7 @@ static void megasas_detach_one(struct pci_dev *pdev)

pci_set_drvdata(instance->pdev, NULL);

megasas_disable_intr(instance);
instance->instancet->disable_intr(instance->reg_set);

free_irq(instance->pdev->irq, instance);

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/scsi/megaraid/megaraid_sas.h
Original file line number Diff line number Diff line change
Expand Up @@ -1049,6 +1049,7 @@ struct megasas_evt_detail {
void (*fire_cmd)(dma_addr_t ,u32 ,struct megasas_register_set __iomem *);

void (*enable_intr)(struct megasas_register_set __iomem *) ;
void (*disable_intr)(struct megasas_register_set __iomem *);

int (*clear_intr)(struct megasas_register_set __iomem *);

Expand Down

0 comments on commit 520f79c

Please sign in to comment.