Many thanks for doing all this work!
However, there are still a few small problems.
Roman Volkov wrote:
This patch does some preparation of existing Oxygen driver.
This patch should be separated into four logical changes.
+++ linux-3.12-my/sound/pci/oxygen/cs4245.h 2013-11-15 15:46:40.000000000 +0400 -#define CS4245_SPI_ADDRESS (0x9e << 16) -#define CS4245_SPI_WRITE (0 << 16) +#define CS4245_SPI_ADDRESS 0x9e +#define CS4245_SPI_WRITE 0 +#define CS4245_SPI_READ 1
This is only part of a logical change; applying this patch alone would break the driver.
+++ linux-3.12-my/sound/pci/oxygen/oxygen_io.c 2013-11-19 00:56:12.000000000 +0400
- wait_event_timeout(chip->ac97_waitqueue,
({ status |= oxygen_read8(chip, OXYGEN_AC97_INTERRUPT_STATUS);
- wait_event_timeout(chip->ac97_waitqueue, ({ status |= oxygen_read8(chip,
OXYGEN_AC97_INTERRUPT_STATUS); status & mask; }),
Why this change?
+int oxygen_wait_spi(struct oxygen *chip) ...
udelay(4);
udelay(1);
Please don't reduce this delay; the CMI8788 has a bug that can crash the machine if this register is polled too often.
+EXPORT_SYMBOL(oxygen_wait_spi);
Why this export?
+++ linux-3.12-my/sound/pci/oxygen/oxygen_mixer.c 2013-11-18 14:03:54.000000000 +0400
+EXPORT_SYMBOL(oxygen_update_dac_routing);
This should be integrated into the patch that adds the actual call.
Regards, Clemens