static void codec_init(struct device *dev, u32 base, int addr) { u32 reg32; const u32 *verb; u32 verb_size; int i; printk(BIOS_DEBUG, "Azalia: Initializing codec #%d\n", addr); /* 1 */ if (wait_for_ready(base) == -1) { printk(BIOS_DEBUG, " codec not ready.\n"); return; } reg32 = (addr << 28) | 0x000f0000; write32(base + 0x60, reg32); if (wait_for_valid(base) == -1) { printk(BIOS_DEBUG, " codec not valid.\n"); return; } reg32 = read32(base + 0x64); /* 2 */ printk(BIOS_DEBUG, "Azalia: codec viddid: %08x\n", reg32); verb_size = find_verb(dev, reg32, &verb); if (!verb_size) { printk(BIOS_DEBUG, "Azalia: No verb!\n"); return; } printk(BIOS_DEBUG, "Azalia: verb_size: %d\n", verb_size); /* 3 */ for (i = 0; i < verb_size; i++) { if (wait_for_ready(base) == -1) return; write32(base + 0x60, verb[i]); if (wait_for_valid(base) == -1) return; } printk(BIOS_DEBUG, "Azalia: verb loaded.\n"); }
static void codec_init(void *base, int addr) { u32 dword; u32 *verb; u32 verb_size; int i; /* 1 */ if (wait_for_ready(base) == -1) return; dword = (addr << 28) | 0x000f0000; write32(base + 0x60, dword); if (wait_for_valid(base) == -1) return; dword = read32(base + 0x64); /* 2 */ printk(BIOS_DEBUG, "codec viddid: %08x\n", dword); verb_size = find_verb(dword, &verb); if (!verb_size) { printk(BIOS_DEBUG, "No verb!\n"); return; } printk(BIOS_DEBUG, "verb_size: %d\n", verb_size); /* 3 */ for (i = 0; i < verb_size; i++) { if (wait_for_ready(base) == -1) return; write32(base + 0x60, verb[i]); if (wait_for_valid(base) == -1) return; } printk(BIOS_DEBUG, "verb loaded!\n"); }
static void codecs_init(struct device *dev, u32 base, u32 codec_mask) { int i; for (i = 3; i >= 0; i--) { if (codec_mask & (1 << i)) codec_init(dev, base, i); } for (i = 0; i < pc_beep_verbs_size; i++) { if (wait_for_ready(base) == -1) return; write32(base + 0x60, pc_beep_verbs[i]); if (wait_for_valid(base) == -1) return; } }
static void codec_init(u32 base, int addr) { u32 dword; /* 1 */ if (wait_for_ready(base) == -1) return; dword = (addr << 28) | 0x000f0000; write32(base + 0x60, dword); if (wait_for_valid(base) == -1) return; dword = read32(base + 0x64); /* 2 */ printk(BIOS_DEBUG, "%x(th) codec viddid: %08x\n", addr, dword); }