dprintk(DBGLVL_BUS, "%s() new_swp = %x\n", __func__, new_swp);
- /* TODO: Convert all of the volatiles and direct PCI writes into
+ /* TODO: Convert all of the direct PCI writes into
* saa7164_writel/b calls for consistency.
*/
/* Check that the hardware is accessable. If the status bytes are
* 0xFF then the device is not accessable, the the IRQ belongs
* to another driver.
+ * 4 x u32 interrupt registers.
*/
for (i = 0; i < INT_SIZE/4; i++) {
/* TODO: Convert into saa7164_readl() */
/* Read the 4 hardware interrupt registers */
- intstat[i] = *(dev->InterruptStatus + i);
+ intstat[i] = saa7164_readl(dev->int_status + (i * 4));
if (intstat[i] != 0xffffffff)
hwacc = 1;
}
}
- /* TODO: Convert into saa7164_writel() */
/* Ack it */
- *(dev->InterruptAck + i) = intstat[i];
+ saa7164_writel(dev->int_ack + (i * 4), intstat[i]);
}
}
printk(KERN_INFO "CORE %s: dev->bmmio2 = 0x%p\n", dev->name,
dev->bmmio2);
- /* TODO: Magic defines used in the windows driver, define these */
- dev->InterruptStatus = (u32 *)(dev->bmmio + 0x183000 + 0xf80);
- dev->InterruptAck = (u32 *)(dev->bmmio + 0x183000 + 0xf90);
+ /* Inerrupt and ack register locations offset of bmmio */
+ dev->int_status = 0x183000 + 0xf80;
+ dev->int_ack = 0x183000 + 0xf90;
printk(KERN_INFO
"CORE %s: subsystem: %04x:%04x, board: %s [card=%d,%s]\n",
tmComResBusInfo_t bus;
- /* TODO: Urgh, remove volatiles */
- volatile u32 *InterruptStatus;
- volatile u32 *InterruptAck;
+ /* Interrupt status and ack registers */
+ u32 int_status;
+ u32 int_ack;
struct cmd cmds[SAA_CMD_MAX_MSG_UNITS];
struct mutex lock;