Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2
[firefly-linux-kernel-4.4.55.git] / sound / drivers / mpu401 / mpu401_uart.c
index dd6ec4266732b168e4af30d415436b4bea3b7de3..2af09996a3d01a39d4b913a23c1d08855ed54f06 100644 (file)
@@ -49,12 +49,10 @@ static void snd_mpu401_uart_output_write(struct snd_mpu401 * mpu);
 
  */
 
-#define snd_mpu401_input_avail(mpu)    (!(mpu->read(mpu, MPU401C(mpu)) & 0x80))
-#define snd_mpu401_output_ready(mpu)   (!(mpu->read(mpu, MPU401C(mpu)) & 0x40))
-
-#define MPU401_RESET           0xff
-#define MPU401_ENTER_UART      0x3f
-#define MPU401_ACK             0xfe
+#define snd_mpu401_input_avail(mpu) \
+       (!(mpu->read(mpu, MPU401C(mpu)) & MPU401_RX_EMPTY))
+#define snd_mpu401_output_ready(mpu) \
+       (!(mpu->read(mpu, MPU401C(mpu)) & MPU401_TX_FULL))
 
 /* Build in lowlevel io */
 static void mpu401_write_port(struct snd_mpu401 *mpu, unsigned char data,
@@ -245,7 +243,7 @@ static int snd_mpu401_uart_cmd(struct snd_mpu401 * mpu, unsigned char cmd,
 #endif
        }
        mpu->write(mpu, cmd, MPU401C(mpu));
-       if (ack) {
+       if (ack && !(mpu->info_flags & MPU401_INFO_NO_ACK)) {
                ok = 0;
                timeout = 10000;
                while (!ok && timeout-- > 0) {