Lines Matching defs:dev

118        if ((dev->debug & (cond)) == (cond)) { \
260 wavefront_status (snd_wavefront_t *dev)
263 return inb (dev->status_port);
276 wavefront_wait (snd_wavefront_t *dev, int mask)
286 if (wavefront_status (dev) & mask) {
294 if (wavefront_status (dev) & mask) {
307 wavefront_read (snd_wavefront_t *dev)
310 if (wavefront_wait (dev, STAT_CAN_READ))
311 return inb (dev->data_port);
319 wavefront_write (snd_wavefront_t *dev, unsigned char data)
322 if (wavefront_wait (dev, STAT_CAN_WRITE)) {
323 outb (data, dev->data_port);
333 snd_wavefront_cmd (snd_wavefront_t *dev,
344 dev_err(dev->card->dev, "command 0x%x not supported.\n",
363 if (wavefront_write (dev, cmd)) {
376 if (wavefront_write (dev, wbuf[i])) {
395 c = wavefront_read(dev);
406 c = wavefront_read(dev);
465 ack = wavefront_read(dev);
481 err = wavefront_read(dev);
601 wavefront_delete_sample (snd_wavefront_t *dev, int sample_num)
610 x = snd_wavefront_cmd(dev, WFC_DELETE_SAMPLE, NULL, wbuf);
612 dev->sample_status[sample_num] = WF_ST_EMPTY;
618 wavefront_get_sample_status (snd_wavefront_t *dev, int assume_rom)
627 if (snd_wavefront_cmd (dev, WFC_GET_NSAMPLES, rbuf, wbuf)) {
628 dev_err(dev->card->dev, "cannot request sample count.\n");
632 sc_real = sc_alias = sc_multi = dev->samples_used = 0;
639 if (snd_wavefront_cmd (dev, WFC_IDENTIFY_SAMPLE_TYPE, rbuf, wbuf)) {
640 dev_warn(dev->card->dev,
642 dev->sample_status[i] = WF_ST_EMPTY;
646 dev->sample_status[i] = (WF_SLOT_FILLED|rbuf[0]);
649 dev->sample_status[i] |= WF_SLOT_ROM;
666 dev_err(dev->card->dev,
672 dev->samples_used++;
676 dev_info(dev->card->dev,
678 dev->samples_used, sc_real, sc_alias, sc_multi,
679 WF_MAX_SAMPLE - dev->samples_used);
687 wavefront_get_patch_status (snd_wavefront_t *dev)
699 x = snd_wavefront_cmd(dev, WFC_UPLOAD_PATCH, patchbuf,
703 dev->patch_status[i] |= WF_SLOT_FILLED;
705 dev->sample_status
710 dev->patch_status[i] = 0;
712 dev_err(dev->card->dev,
714 dev->patch_status[i] = 0;
722 if (dev->patch_status[i] & WF_SLOT_FILLED) {
725 if (dev->patch_status[i] & WF_SLOT_USED) {
730 dev_info(dev->card->dev, "%d patch slots filled, %d in use\n",
737 wavefront_get_program_status (snd_wavefront_t *dev)
748 x = snd_wavefront_cmd(dev, WFC_UPLOAD_PROGRAM, progbuf,
752 dev->prog_status[i] |= WF_SLOT_USED;
759 dev->patch_status
765 dev->prog_status[i] = 0;
767 dev_err(dev->card->dev,
769 dev->prog_status[i] = 0;
774 if (dev->prog_status[i]) {
779 dev_info(dev->card->dev, "%d programs slots in use\n", cnt);
785 wavefront_send_patch (snd_wavefront_t *dev, wavefront_patch_info *header)
794 if (header->number >= ARRAY_SIZE(dev->patch_status))
797 dev->patch_status[header->number] |= WF_SLOT_FILLED;
802 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_PATCH, NULL, buf)) {
803 dev_err(dev->card->dev, "download patch failed\n");
811 wavefront_send_program (snd_wavefront_t *dev, wavefront_patch_info *header)
820 if (header->number >= ARRAY_SIZE(dev->prog_status))
823 dev->prog_status[header->number] = WF_SLOT_USED;
831 dev->patch_status[header->hdr.pr.layer[i].patch_number] |=
843 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_PROGRAM, NULL, buf)) {
844 dev_err(dev->card->dev, "download patch failed\n");
852 wavefront_freemem (snd_wavefront_t *dev)
857 if (snd_wavefront_cmd (dev, WFC_REPORT_FREE_MEMORY, rbuf, NULL)) {
858 dev_err(dev->card->dev, "can't get memory stats.\n");
866 wavefront_send_sample (snd_wavefront_t *dev,
905 x = wavefront_find_free_sample(dev);
908 dev_info(dev->card->dev, "unspecified sample => %d\n", x);
940 if (dev->rom_samples_rdonly) {
941 if (dev->sample_status[header->number] & WF_SLOT_ROM) {
942 dev_err(dev->card->dev,
949 wavefront_delete_sample (dev, header->number);
953 dev->freemem = wavefront_freemem (dev);
955 if (dev->freemem < (int)header->size) {
956 dev_err(dev->card->dev,
967 dev_err(dev->card->dev,
1060 if (snd_wavefront_cmd (dev,
1064 dev_err(dev->card->dev, "sample %sdownload refused.\n",
1089 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_BLOCK, NULL, NULL)) {
1090 dev_err(dev->card->dev,
1139 outw (sample_short, dev->block_port);
1141 outw (sample_short, dev->last_block_port);
1149 dma_ack = wavefront_read(dev);
1152 dev_err(dev->card->dev,
1156 dev_err(dev->card->dev,
1164 dev->sample_status[header->number] = (WF_SLOT_FILLED|WF_ST_SAMPLE);
1175 wavefront_send_alias (snd_wavefront_t *dev, wavefront_patch_info *header)
1201 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_SAMPLE_ALIAS, NULL, alias_hdr)) {
1202 dev_err(dev->card->dev, "download alias failed.\n");
1206 dev->sample_status[header->number] = (WF_SLOT_FILLED|WF_ST_ALIAS);
1212 wavefront_send_multisample (snd_wavefront_t *dev, wavefront_patch_info *header)
1252 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_MULTISAMPLE,
1255 dev_err(dev->card->dev, "download of multisample failed.\n");
1260 dev->sample_status[header->number] = (WF_SLOT_FILLED|WF_ST_MULTISAMPLE);
1267 wavefront_fetch_multisample (snd_wavefront_t *dev,
1277 if (snd_wavefront_cmd (dev, WFC_UPLOAD_MULTISAMPLE, log_ns, number)) {
1278 dev_err(dev->card->dev, "upload multisample failed.\n");
1295 val = wavefront_read(dev);
1297 dev_err(dev->card->dev,
1303 val = wavefront_read(dev);
1305 dev_err(dev->card->dev,
1323 wavefront_send_drum (snd_wavefront_t *dev, wavefront_patch_info *header)
1340 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_EDRUM_PROGRAM, NULL, drumbuf)) {
1341 dev_err(dev->card->dev, "download drum failed.\n");
1349 wavefront_find_free_sample (snd_wavefront_t *dev)
1355 if (!(dev->sample_status[i] & WF_SLOT_FILLED)) {
1359 dev_err(dev->card->dev, "no free sample slots!\n");
1365 wavefront_find_free_patch (snd_wavefront_t *dev)
1371 if (!(dev->patch_status[i] & WF_SLOT_FILLED)) {
1375 dev_err(dev->card->dev, "no free patch slots!\n");
1381 wavefront_load_patch (snd_wavefront_t *dev, const char __user *addr)
1392 dev_err(dev->card->dev, "bad address for load patch.\n");
1414 err = wavefront_send_sample (dev, header, header->dataptr, 0);
1425 err = wavefront_send_multisample (dev, header);
1436 err = wavefront_send_alias (dev, header);
1446 err = wavefront_send_drum (dev, header);
1456 err = wavefront_send_patch (dev, header);
1466 err = wavefront_send_program (dev, header);
1470 dev_err(dev->card->dev, "unknown patch type %d.\n",
1523 snd_wavefront_t *dev = &acard->wavefront;
1535 dev_dbg(dev->card->dev, "interrupts disabled.\n");
1536 outb (0x80|0x20, dev->control_port);
1537 dev->interrupts_are_midi = 1;
1541 dev_dbg(dev->card->dev, "interrupts enabled.\n");
1542 outb (0x80|0x40|0x20, dev->control_port);
1543 dev->interrupts_are_midi = 1;
1547 wc->rbuf[0] = dev->interrupts_are_midi;
1551 dev->rom_samples_rdonly = wc->wbuf[0];
1558 dev_err(dev->card->dev, "invalid slot ID %d\n",
1563 wc->rbuf[0] = dev->sample_status[i];
1568 dev->debug = wc->wbuf[0];
1569 dev_dbg(dev->card->dev, "debug = 0x%x\n", dev->debug);
1582 (dev, (wavefront_patch_info *) wc->rbuf);
1586 dev_err(dev->card->dev,
1592 wc->status = snd_wavefront_cmd (dev, wc->cmd, wc->rbuf, wc->wbuf);
1608 dev->freemem = demunge_int32 (wc->rbuf, 4);
1628 dev_err(dev->card->dev,
1669 snd_wavefront_t *dev;
1683 dev = &acard->wavefront;
1687 if (wavefront_load_patch (dev, argp) != 0) {
1722 snd_wavefront_t *dev = &card->wavefront;
1744 if ((wavefront_status(dev) & (STAT_INTR_READ|STAT_INTR_WRITE)) == 0) {
1748 scoped_guard(spinlock, &dev->irq_lock) {
1749 dev->irq_ok = 1;
1750 dev->irq_cnt++;
1752 wake_up(&dev->interrupt_sleeper);
1768 snd_wavefront_interrupt_bits(snd_wavefront_t *dev, int irq)
1788 dev_err(dev->card->dev, "invalid IRQ %d\n", irq);
1796 wavefront_should_cause_interrupt (snd_wavefront_t *dev,
1803 scoped_guard(spinlock_irq, &dev->irq_lock) {
1804 add_wait_queue(&dev->interrupt_sleeper, &wait);
1805 dev->irq_ok = 0;
1808 while (!dev->irq_ok && time_before(jiffies, timeout)) {
1815 wavefront_reset_to_cleanliness (snd_wavefront_t *dev)
1823 bits = snd_wavefront_interrupt_bits(dev, dev->irq);
1827 outb (0x0, dev->control_port);
1865 outb (0x80 | 0x40 | bits, dev->data_port);
1884 wavefront_should_cause_interrupt(dev, 0x80|0x40|0x10|0x1,
1885 dev->control_port,
1892 if (!dev->irq_ok) {
1893 dev_err(dev->card->dev, "intr not received after h/w un-reset.\n");
1913 wavefront_should_cause_interrupt(dev, WFC_HARDWARE_VERSION,
1914 dev->data_port, ramcheck_time*HZ);
1916 if (!dev->irq_ok) {
1917 dev_err(dev->card->dev, "post-RAM-check interrupt not received.\n");
1921 if (!wavefront_wait (dev, STAT_CAN_READ)) {
1922 dev_err(dev->card->dev, "no response to HW version cmd.\n");
1926 hwv[0] = wavefront_read(dev);
1928 dev_err(dev->card->dev, "board not responding correctly.\n");
1938 hwv[0] = wavefront_read(dev);
1940 dev_err(dev->card->dev,
1943 dev_err(dev->card->dev,
1952 hwv[1] = wavefront_read(dev);
1954 dev_err(dev->card->dev, "incorrect h/w response.\n");
1958 dev_info(dev->card->dev, "hardware version %d.%d\n",
1969 wavefront_download_firmware (snd_wavefront_t *dev, char *path)
1977 err = request_firmware(&firmware, path, dev->card->dev);
1979 dev_err(dev->card->dev, "firmware (%s) download failed!!!\n", path);
1990 dev_err(dev->card->dev,
1999 dev_err(dev->card->dev, "firmware section read error.\n");
2004 if (wavefront_write(dev, WFC_DOWNLOAD_OS))
2008 if (wavefront_write(dev, *buf))
2015 if (!wavefront_wait(dev, STAT_CAN_READ)) {
2016 dev_err(dev->card->dev, "time out for firmware ACK.\n");
2019 err = inb(dev->data_port);
2021 dev_err(dev->card->dev,
2035 dev_err(dev->card->dev, "firmware download failed!!!\n");
2041 wavefront_do_reset (snd_wavefront_t *dev)
2046 if (wavefront_reset_to_cleanliness (dev)) {
2047 dev_err(dev->card->dev, "hw reset failed.\n");
2051 if (dev->israw) {
2052 if (wavefront_download_firmware (dev, ospath)) {
2056 dev->israw = 0;
2066 wavefront_should_cause_interrupt (dev, WFC_NOOP,
2067 dev->data_port,
2070 if (!dev->irq_ok) {
2071 dev_err(dev->card->dev, "no post-OS interrupt.\n");
2077 wavefront_should_cause_interrupt (dev, WFC_NOOP,
2078 dev->data_port, (10*HZ));
2080 if (!dev->irq_ok) {
2081 dev_err(dev->card->dev, "no post-OS interrupt(2).\n");
2089 outb (0x80|0x40, dev->control_port);
2097 dev->freemem = wavefront_freemem(dev);
2098 if (dev->freemem < 0)
2101 dev_info(dev->card->dev, "available DRAM %dk\n", dev->freemem / 1024);
2103 if (wavefront_write (dev, 0xf0) ||
2104 wavefront_write (dev, 1) ||
2105 (wavefront_read (dev) < 0)) {
2106 dev->debug = 0;
2107 dev_err(dev->card->dev, "MPU emulation mode not set.\n");
2113 if (snd_wavefront_cmd (dev, WFC_SET_NVOICES, NULL, voices)) {
2114 dev_err(dev->card->dev, "cannot set number of voices to 32.\n");
2124 outb (0x0, dev->control_port);
2125 dev->interrupts_are_midi = 0;
2130 snd_wavefront_start (snd_wavefront_t *dev)
2139 if (dev->israw) {
2146 if (dev->israw || fx_raw) {
2147 if (wavefront_do_reset (dev)) {
2153 dev->has_fx = (snd_wavefront_fx_detect (dev) == 0);
2155 if (dev->has_fx && fx_raw) {
2156 snd_wavefront_fx_start (dev);
2159 wavefront_get_sample_status (dev, samples_are_from_rom);
2160 wavefront_get_program_status (dev);
2161 wavefront_get_patch_status (dev);
2166 outb (0x80|0x40|0x20, dev->control_port);
2176 snd_wavefront_t *dev = &card->wavefront;
2182 dev->israw = 0;
2183 dev->has_fx = 0;
2184 dev->debug = debug_default;
2185 dev->interrupts_are_midi = 0;
2186 dev->irq_cnt = 0;
2187 dev->rom_samples_rdonly = 1;
2189 if (snd_wavefront_cmd (dev, WFC_FIRMWARE_VERSION, rbuf, wbuf) == 0) {
2191 dev->fw_version[0] = rbuf[0];
2192 dev->fw_version[1] = rbuf[1];
2194 dev_info(dev->card->dev, "firmware %d.%d already loaded.\n",
2199 if (snd_wavefront_cmd (dev, WFC_HARDWARE_VERSION,
2201 dev->hw_version[0] = rbuf[0];
2202 dev->hw_version[1] = rbuf[1];
2204 dev_err(dev->card->dev,
2212 dev_info(dev->card->dev,
2214 dev->israw = 1;
2219 dev->israw = 1;
2220 dev_info(dev->card->dev,