sound/soc/fsl: Fix OOPS when unbinding imx-spdif

The order of unregistering codecs and cards seems to be wrong.  This
patch will unregister the card which detaches from the codecs and then
after this unregister the codecs.

Can be triggered by:

echo sound-spdif.26 > /sys/bus/platform/drivers/imx-spdif/unbind

------------[ cut here ]------------
WARNING: at /home/lund/src/linux/fs/sysfs/file.c:498 sysfs_attr_ns+0xa8/0xb0()
sysfs: kobject  without dirent
Modules linked in: brcmfmac brcmutil mxc_v4l2_capture ipu_bg_overlay_sdc ipu_still ipu_prp_enc evbug ipu_csi_enc ipu_fg_overlay_sdc
CPU: 1 PID: 350 Comm: bash Not tainted 3.10.30-02217-g3e038ee #9
[<800145d0>] (unwind_backtrace) from [<800115b8>] (show_stack+0x10/0x14)
[<800115b8>] (show_stack) from [<80026824>] (warn_slowpath_common+0x54/0x6c)
[<80026824>] (warn_slowpath_common) from [<8002686c>] (warn_slowpath_fmt+0x30/0x40)
[<8002686c>] (warn_slowpath_fmt) from [<8011bdb0>] (sysfs_attr_ns+0xa8/0xb0)
[<8011bdb0>] (sysfs_attr_ns) from [<8011be64>] (sysfs_remove_file+0x18/0x40)
[<8011be64>] (sysfs_remove_file) from [<804a10a0>] (snd_soc_dapm_free+0x18/0x200)
[<804a10a0>] (snd_soc_dapm_free) from [<8049d014>] (soc_remove_codec+0x2c/0x90)
[<8049d014>] (soc_remove_codec) from [<8049e7f4>] (soc_remove_dai_links+0x320/0x370)
[<8049e7f4>] (soc_remove_dai_links) from [<8049fd94>] (soc_cleanup_card_resources+0x7c/0xb0)
[<8049fd94>] (soc_cleanup_card_resources) from [<8049fddc>] (snd_soc_unregister_card+0x14/0x1c)
[<8049fddc>] (snd_soc_unregister_card) from [<804ae230>] (imx_spdif_audio_remove+0x3c/0x44)
[<804ae230>] (imx_spdif_audio_remove) from [<802d6f64>] (platform_drv_remove+0x18/0x1c)
[<802d6f64>] (platform_drv_remove) from [<802d58ac>] (__device_release_driver+0x70/0xcc)
[<802d58ac>] (__device_release_driver) from [<802d5924>] (device_release_driver+0x1c/0x28)
[<802d5924>] (device_release_driver) from [<802d4930>] (driver_unbind+0x78/0xbc)
[<802d4930>] (driver_unbind) from [<802d4004>] (drv_attr_store+0x20/0x2c)
[<802d4004>] (drv_attr_store) from [<8011c234>] (sysfs_write_file+0x160/0x190)
[<8011c234>] (sysfs_write_file) from [<800c1354>] (vfs_write+0xb4/0x194)
[<800c1354>] (vfs_write) from [<800c18cc>] (SyS_write+0x3c/0x78)
[<800c18cc>] (SyS_write) from [<8000dfc0>] (ret_fast_syscall+0x0/0x30)
---[ end trace aae705555ee5c7cb ]---
Unable to handle kernel NULL pointer dereference at virtual address 00000008
pgd = dc61c000
[00000008] *pgd=6c911831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] SMP ARM
Modules linked in: brcmfmac brcmutil mxc_v4l2_capture ipu_bg_overlay_sdc ipu_still ipu_prp_enc evbug ipu_csi_enc ipu_fg_overlay_sdc
CPU: 1 PID: 350 Comm: bash Tainted: G        W    3.10.30-02217-g3e038ee #9
task: dc7a8380 ti: dc67a000 task.ti: dc67a000
PC is at soc_remove_codec+0x74/0x90
LR is at soc_remove_dai_links+0x320/0x370
pc : [<8049d05c>]    lr : [<8049e7f4>]    psr: 200f0013
ip : 00000040  fp : dc3326c0
r10: 00000000  r9 : 00000000  r8 : 00100100
r7 : dc4358b0  r6 : dc332300  r5 : dc44710c  r4 : 00000000
r3 : 00000000  r2 : 00100100  r1 : dc45f210  r0 : dc435980
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 6c61c04a  DAC: 00000015
Process bash (pid: 350, stack limit = 0xdc67a238)
Stack: (0xdc67be98 to 0xdc67c000)
be80:                                                       00200200 00200200
bea0: dc45f218 000005b8 dc4358b0 00000001 0000000f 8062b26c dc3ce180 dc448380
bec0: 00000000 8049fd94 dc4358b0 dc435810 80891dc4 8049fddc 00000001 804ae230
bee0: 804ae1f4 dc15f210 80891dc4 802d6f64 802d6f4c 802d58ac dc7a8380 dc15f244
bf00: dc15f210 802d5924 dc7a8380 8086f4e0 dc15f210 802d4930 0000000f 0000000f
bf20: dcb5d280 dcb5d298 dc67bf80 802d4004 0000000f 8011c234 dc8706c0 76f03000
bf40: dc67bf80 0000000f 00000000 0000000f 00000000 800c1354 dc6f1600 00000000
bf60: 00000001 00000000 00000000 dc8706c0 76f03000 00000000 0000000f 800c18cc
bf80: 00000000 00000000 00000000 0000000f 76f03000 76df2b38 00000004 8000e144
bfa0: dc67a000 8000dfc0 0000000f 76f03000 00000001 76f03000 0000000f 00000000
bfc0: 0000000f 76f03000 76df2b38 00000004 0000000f 76f03000 0000000f 00000000
bfe0: 00000000 7eb1492c 76d2c234 76d8041c 600f0010 00000001 00000000 00000000
[<8049d05c>] (soc_remove_codec) from [<00200200>] (0x200200)
Code: e5842038 e584303c e5913050 e8bd4010 (e5930008)
---[ end trace aae705555ee5c7cc ]---