struct snd_bebob *bebob = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
                unsigned int frames_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&bebob->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                bebob->substreams_counter--;
 
        snd_bebob_stream_stop_duplex(bebob);
 
        struct snd_dice *dice = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int events_per_period = params_period_size(hw_params);
                unsigned int events_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&dice->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --dice->substreams_counter;
 
        snd_dice_stream_stop_duplex(dice);
 
        struct snd_dg00x *dg00x = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
                unsigned int frames_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&dg00x->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --dg00x->substreams_counter;
 
        snd_dg00x_stream_stop_duplex(dg00x);
 
        struct snd_ff *ff = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
                unsigned int frames_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&ff->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --ff->substreams_counter;
 
        snd_ff_stream_stop_duplex(ff);
 
        struct snd_efw *efw = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
                unsigned int frames_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&efw->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --efw->substreams_counter;
 
        snd_efw_stream_stop_duplex(efw);
 
        struct snd_motu *motu = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
                unsigned int frames_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&motu->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --motu->substreams_counter;
 
        snd_motu_stream_stop_duplex(motu);
 
        struct snd_oxfw *oxfw = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int channels = params_channels(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
        struct snd_oxfw *oxfw = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int channels = params_channels(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
 
        mutex_lock(&oxfw->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --oxfw->substreams_count;
 
        snd_oxfw_stream_stop_duplex(oxfw);
 
        mutex_lock(&oxfw->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --oxfw->substreams_count;
 
        snd_oxfw_stream_stop_duplex(oxfw);
 
        struct snd_tscm *tscm = substream->private_data;
        int err = 0;
 
-       if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
+       if (substream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                unsigned int rate = params_rate(hw_params);
                unsigned int frames_per_period = params_period_size(hw_params);
                unsigned int frames_per_buffer = params_buffer_size(hw_params);
 
        mutex_lock(&tscm->mutex);
 
-       if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
+       if (substream->runtime->state != SNDRV_PCM_STATE_OPEN)
                --tscm->substreams_counter;
 
        snd_tscm_stream_stop_duplex(tscm);