comm_page
chip->comm_page->sample_rate = cpu_to_le32(rate);
chip->comm_page->gd_clock_state = clock_state;
chip->comm_page->gd_spdif_status = spdif_status;
chip->comm_page->gd_resampler_state = 3; /* magic number - should always be 3 */
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP ? */
chip->comm_page->gd_clock_state = clock;
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
u32 control_reg = le32_to_cpu(chip->comm_page->control_register);
le32_to_cpu(chip->comm_page->e3g_frq_register),
chip->comm_page->e3g_frq_register =
if (chip->comm_page)
sizeof(struct comm_page));
chip->comm_page = (struct comm_page *)chip->commpage_dma_buf->area;
struct comm_page *commpage, *commpage_bak;
commpage = chip->comm_page;
struct comm_page *comm_page; /* Virtual address of the memory
chip->comm_page->handshake = 0;
control_reg = le32_to_cpu(chip->comm_page->control_register);
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
chip->comm_page->sample_rate = cpu_to_le32(rate);
control_reg = le32_to_cpu(chip->comm_page->control_register);
chip->comm_page->ext_box_status = cpu_to_le32(E3G_ASIC_NOT_LOADED);
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP */
control_reg = le32_to_cpu(chip->comm_page->control_register) &
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
box_status = le32_to_cpu(chip->comm_page->ext_box_status);
control_reg = le32_to_cpu(chip->comm_page->control_register);
return le32_to_cpu(chip->comm_page->e3g_frq_register);
if (ctl_reg != chip->comm_page->control_register ||
frq_reg != chip->comm_page->e3g_frq_register || force) {
chip->comm_page->e3g_frq_register = frq_reg;
chip->comm_page->control_register = ctl_reg;
if (chip->comm_page->midi_input[0]) /* The count is at index 0 */
chip->comm_page->midi_input[0] = 0;
chip->comm_page->position[pipe_index] = 0;
pipe->dma_counter = (__le32 *)&chip->comm_page->position[pipe_index];
chip->comm_page->sglist_addr[pipe->index].addr =
if (chip->comm_page->handshake) {
if (snd_BUG_ON(!chip->comm_page))
chip->comm_page->nominal_level_mask |= cpu_to_le32(1 << index);
chip->comm_page->nominal_level_mask &= ~cpu_to_le32(1 << index);
chip->comm_page->line_out_level[channel] = gain;
chip->comm_page->monitors[monitor_index(chip, output, input)] = gain;
memset((s8 *)chip->comm_page->vu_meter, ECHOGAIN_MUTED,
memset((s8 *)chip->comm_page->peak_meter, ECHOGAIN_MUTED,
meters[n++] = chip->comm_page->vu_meter[m];
meters[n++] = chip->comm_page->peak_meter[m];
meters[n++] = chip->comm_page->vu_meter[m];
meters[n++] = chip->comm_page->peak_meter[m];
meters[n++] = chip->comm_page->vu_meter[m];
meters[n++] = chip->comm_page->peak_meter[m];
chip->comm_page->gd_clock_state = GD_CLOCK_UNDEF;
chip->comm_page->gd_spdif_status = GD_SPDIF_STATUS_UNDEF;
chip->comm_page->handshake = cpu_to_le32(0xffffffff);
chip->comm_page->audio_format[pipe_index] = cpu_to_le16(dsp_format);
chip->comm_page->cmd_start |= cpu_to_le32(channel_mask);
if (chip->comm_page->cmd_start) {
chip->comm_page->cmd_start = 0;
chip->comm_page->cmd_stop |= cpu_to_le32(channel_mask);
chip->comm_page->cmd_reset = 0;
if (chip->comm_page->cmd_stop) {
chip->comm_page->cmd_stop = 0;
chip->comm_page->cmd_reset = 0;
chip->comm_page->cmd_stop |= cpu_to_le32(channel_mask);
chip->comm_page->cmd_reset |= cpu_to_le32(channel_mask);
if (chip->comm_page->cmd_reset) {
chip->comm_page->cmd_stop = 0;
chip->comm_page->cmd_reset = 0;
if (offsetof(struct comm_page, midi_output) != 0xbe0) {
memset(chip->comm_page, 0, sizeof(struct comm_page));
chip->comm_page->comm_size =
cpu_to_le32(sizeof(struct comm_page));
chip->comm_page->handshake = cpu_to_le32(0xffffffff);
chip->comm_page->midi_out_free_count =
chip->comm_page->sample_rate = cpu_to_le32(44100);
memset(chip->comm_page->monitors, ECHOGAIN_MUTED, MONITOR_ARRAY_SIZE);
memset(chip->comm_page->vmixer, ECHOGAIN_MUTED, VMIXER_ARRAY_SIZE);
control_reg = le32_to_cpu(chip->comm_page->control_register);
if (reg_value != chip->comm_page->control_register || force) {
chip->comm_page->control_register = reg_value;
chip->comm_page->sample_rate = cpu_to_le32(rate);
chip->comm_page->gd_clock_state = clock_state;
chip->comm_page->gd_spdif_status = spdif_status;
chip->comm_page->gd_resampler_state = 3; /* magic number - should always be 3 */
chip->comm_page->gd_clock_state = GD_CLOCK_SPDIFIN;
chip->comm_page->gd_spdif_status = GD_SPDIF_STATUS_NOCHANGE;
chip->comm_page->line_in_level[input] = gain;
chip->comm_page->flags |=
chip->comm_page->flags &=
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
chip->comm_page->sample_rate = cpu_to_le32(rate);
control_reg = le32_to_cpu(chip->comm_page->control_register);
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP */
control_reg = le32_to_cpu(chip->comm_page->control_register) &
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
control_reg = le32_to_cpu(chip->comm_page->control_register);
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
if (control_reg != le32_to_cpu(chip->comm_page->control_register)) {
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP */
chip->comm_page->control_register = cpu_to_le32(control_reg);
chip->comm_page->vmixer[index] = gain;
old_control_reg = le32_to_cpu(chip->comm_page->control_register);
chip->comm_page->control_register = cpu_to_le32(control_reg);
chip->comm_page->vmixer[index] = gain;
if (control_reg != le32_to_cpu(chip->comm_page->control_register)) {
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP */
chip->comm_page->control_register = cpu_to_le32(control_reg);
chip->comm_page->vmixer[index] = gain;
chip->comm_page->vmixer[index] = gain;
chip->comm_page->sample_rate = cpu_to_le32(rate);
chip->comm_page->sample_rate = cpu_to_le32(rate);
chip->comm_page->sample_rate = cpu_to_le32(rate);
chip->comm_page->input_clock = cpu_to_le16(clock);
chip->comm_page->output_clock = cpu_to_le16(clock);
chip->comm_page->line_in_level[input] = gain;
chip->comm_page->flags |=
chip->comm_page->flags &=
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
chip->comm_page->sample_rate = cpu_to_le32(rate);
control_reg = le32_to_cpu(chip->comm_page->control_register);
chip->comm_page->sample_rate =
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP ? */
control_reg = le32_to_cpu(chip->comm_page->control_register) &
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
monitors = kmemdup(chip->comm_page->monitors,
memset(chip->comm_page->monitors, ECHOGAIN_MUTED,
memcpy(chip->comm_page->monitors, monitors,
memcpy(chip->comm_page->monitors, monitors, MONITOR_ARRAY_SIZE);
control_reg = le32_to_cpu(chip->comm_page->control_register);
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
if (control_reg != le32_to_cpu(chip->comm_page->control_register)) {
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP */
chip->comm_page->control_register = cpu_to_le32(control_reg);
chip->comm_page->vmixer[index] = gain;
chip->comm_page->flags |=
chip->comm_page->flags &=
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
count = le16_to_cpu(chip->comm_page->midi_input[0]);
midi_byte = le16_to_cpu(chip->comm_page->midi_input[i]);
chip->comm_page->flags |=
chip->comm_page->flags &=
chip->comm_page->midi_output[0] = bytes;
memcpy(&chip->comm_page->midi_output[1], data, bytes);
chip->comm_page->midi_out_free_count = 0;
chip->comm_page->sample_rate = cpu_to_le32(rate);
control_reg = le32_to_cpu(chip->comm_page->control_register);
chip->comm_page->sample_rate = cpu_to_le32(rate); /* ignored by the DSP */
control_reg = le32_to_cpu(chip->comm_page->control_register) &
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
control_reg = le32_to_cpu(chip->comm_page->control_register);
clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);