raid_dev
struct raid_dev *rd;
struct raid_dev dev[] __counted_by(raid_disks);
epthru_pci_blk = raid_dev->epthru_pool;
sg_pci_blk = raid_dev->sg_pool;
mbox_pci_blk = raid_dev->mbox_pool;
ccb = raid_dev->ccb_list + i;
(caddr_t)raid_dev->una_mbox64, raid_dev->una_mbox64_dma);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
(caddr_t)raid_dev->una_mbox64, raid_dev->una_mbox64_dma);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
raid_dev->mbox_pool_handle = dma_pool_create("megaraid mbox pool",
if (raid_dev->mbox_pool_handle == NULL) {
mbox_pci_blk = raid_dev->mbox_pool;
raid_dev->mbox_pool_handle,
raid_dev->epthru_pool_handle = dma_pool_create("megaraid mbox pthru",
if (raid_dev->epthru_pool_handle == NULL) {
epthru_pci_blk = raid_dev->epthru_pool;
raid_dev->epthru_pool_handle,
raid_dev->sg_pool_handle = dma_pool_create("megaraid mbox sg",
if (raid_dev->sg_pool_handle == NULL) {
sg_pci_blk = raid_dev->sg_pool;
raid_dev->sg_pool_handle,
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
sg_pci_blk = raid_dev->sg_pool;
dma_pool_free(raid_dev->sg_pool_handle, sg_pci_blk[i].vaddr,
dma_pool_destroy(raid_dev->sg_pool_handle);
epthru_pci_blk = raid_dev->epthru_pool;
dma_pool_free(raid_dev->epthru_pool_handle,
dma_pool_destroy(raid_dev->epthru_pool_handle);
mbox_pci_blk = raid_dev->mbox_pool;
dma_pool_free(raid_dev->mbox_pool_handle,
dma_pool_destroy(raid_dev->mbox_pool_handle);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
mbox = raid_dev->mbox;
mbox64 = raid_dev->mbox64;
spin_lock_irqsave(MAILBOX_LOCK(raid_dev), flags);
spin_unlock_irqrestore(MAILBOX_LOCK(raid_dev), flags);
WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x1);
spin_unlock_irqrestore(MAILBOX_LOCK(raid_dev), flags);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
mbox = raid_dev->mbox;
spin_lock_irqsave(MAILBOX_LOCK(raid_dev), flags);
dword = RDOUTDOOR(raid_dev);
WROUTDOOR(raid_dev, 0x10001234);
WRINDOOR(raid_dev, 0x02);
spin_unlock_irqrestore(MAILBOX_LOCK(raid_dev), flags);
mraid_device_t *raid_dev;
raid_dev = ADAP2RAIDDEV(adapter);
&& IS_RAID_CH(raid_dev, scb->dev_channel)) {
raid_dev->pdrv_state[pdev_index] & 0x0F;
mraid_device_t *raid_dev;
raid_dev = ADAP2RAIDDEV(adapter);
if (raid_dev->hw_error) {
mraid_device_t *raid_dev;
raid_dev = ADAP2RAIDDEV(adapter);
if (raid_dev->hw_error) {
raid_dev->hw_error = 1;
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
mbox = raid_dev->mbox;
if (megaraid_busywait_mbox(raid_dev) != 0)
WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x1);
WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x2);
if (RDINDOOR(raid_dev) & 0x2) {
for (i = 0; (RDINDOOR(raid_dev) & 0x2) && (i < 1000); i++) {
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
mbox = raid_dev->mbox;
WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x1);
WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x2);
megaraid_busywait_mbox(mraid_device_t *raid_dev)
mbox_t *mbox = raid_dev->mbox;
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
raid_dev->pdrv_state[i] = mraid_inq3->pdrv_state[i];
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
raid_dev->channel_class = 0xFF;
raid_dev->channel_class = *(uint8_t *)adapter->ibuf;
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
mbox = raid_dev->mbox;
if (megaraid_busywait_mbox(raid_dev) != 0) {
WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x1);
dword = RDOUTDOOR(raid_dev);
WROUTDOOR(raid_dev, dword);
WRINDOOR(raid_dev,2);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
ccb = raid_dev->uccb_list + i;
ccb->mbox64 = raid_dev->umbox64 + i;
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
raid_dev->sysfs_uioc = kmalloc_obj(uioc_t);
raid_dev->sysfs_mbox64 = kmalloc_obj(mbox64_t);
raid_dev->sysfs_buffer = dma_alloc_coherent(&adapter->pdev->dev,
PAGE_SIZE, &raid_dev->sysfs_buffer_dma, GFP_KERNEL);
if (!raid_dev->sysfs_uioc || !raid_dev->sysfs_mbox64 ||
!raid_dev->sysfs_buffer) {
mutex_init(&raid_dev->sysfs_mtx);
init_waitqueue_head(&raid_dev->sysfs_wait_q);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
kfree(raid_dev->sysfs_uioc);
kfree(raid_dev->sysfs_mbox64);
if (raid_dev->sysfs_buffer) {
raid_dev->sysfs_buffer, raid_dev->sysfs_buffer_dma);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
wake_up(&raid_dev->sysfs_wait_q);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
wake_up(&raid_dev->sysfs_wait_q);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
mutex_lock(&raid_dev->sysfs_mtx);
uioc = raid_dev->sysfs_uioc;
mbox64 = raid_dev->sysfs_mbox64;
ldmap = raid_dev->sysfs_buffer;
memset(ldmap, 0, sizeof(raid_dev->curr_ldmap));
mbox->xferaddr = (uint32_t)raid_dev->sysfs_buffer_dma;
wait_event(raid_dev->sysfs_wait_q, (uioc->status != -ENODATA));
memcpy(raid_dev->curr_ldmap, ldmap,
sizeof(raid_dev->curr_ldmap));
mutex_unlock(&raid_dev->sysfs_mtx);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
if (raid_dev->random_del_supported &&
if (raid_dev->curr_ldmap[i] == mapped_sdev_id) {
ldid_map = raid_dev->curr_ldmap[i];
mraid_device_t *raid_dev;
raid_dev = kzalloc_obj(mraid_device_t);
if (raid_dev == NULL) return -1;
adapter->raid_device = (caddr_t)raid_dev;
raid_dev->fast_load = megaraid_fast_load;
raid_dev->baseport = pci_resource_start(pdev, 0);
raid_dev->baseaddr = ioremap(raid_dev->baseport, 128);
if (!raid_dev->baseaddr) {
spin_lock_init(&raid_dev->mailbox_lock);
raid_dev->random_del_supported = 1;
iounmap(raid_dev->baseaddr);
kfree(raid_dev);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
iounmap(raid_dev->baseaddr);
kfree(raid_dev);
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
raid_dev->una_mbox64 = dma_alloc_coherent(&adapter->pdev->dev,
&raid_dev->una_mbox64_dma,
if (!raid_dev->una_mbox64) {
raid_dev->mbox = &raid_dev->una_mbox64->mbox32;
raid_dev->mbox = (mbox_t *)((((unsigned long)raid_dev->mbox) + 15) &
raid_dev->mbox64 = (mbox64_t *)(((unsigned long)raid_dev->mbox) - 8);
align = ((void *)raid_dev->mbox -
((void *)&raid_dev->una_mbox64->mbox32));
raid_dev->mbox_dma = (unsigned long)raid_dev->una_mbox64_dma + 8 +