--- zzzz-none-000/linux-3.10.107/sound/i2c/other/ak4117.c 2017-06-27 09:49:32.000000000 +0000 +++ scorpion-7490-727/linux-3.10.107/sound/i2c/other/ak4117.c 2021-02-04 17:41:59.000000000 +0000 @@ -62,7 +62,7 @@ static void snd_ak4117_free(struct ak4117 *chip) { - del_timer(&chip->timer); + del_timer_sync(&chip->timer); kfree(chip); } @@ -91,9 +91,7 @@ chip->read = read; chip->write = write; chip->private_data = private_data; - init_timer(&chip->timer); - chip->timer.data = (unsigned long)chip; - chip->timer.function = snd_ak4117_timer; + setup_timer(&chip->timer, snd_ak4117_timer, (unsigned long)chip); for (reg = 0; reg < 5; reg++) chip->regmap[reg] = pgm[reg]; @@ -139,8 +137,7 @@ /* release powerdown, everything is initialized now */ reg_write(chip, AK4117_REG_PWRDN, old | AK4117_RST | AK4117_PWN); chip->init = 0; - chip->timer.expires = 1 + jiffies; - add_timer(&chip->timer); + mod_timer(&chip->timer, 1 + jiffies); } static unsigned int external_rate(unsigned char rcs1) @@ -540,8 +537,7 @@ if (chip->init) return; snd_ak4117_check_rate_and_errors(chip, 0); - chip->timer.expires = 1 + jiffies; - add_timer(&chip->timer); + mod_timer(&chip->timer, 1 + jiffies); } EXPORT_SYMBOL(snd_ak4117_create);