--- /dev/null
+--- a/sound/soc/codecs/wm8753.c 2009-06-28 20:58:43.000000000 +0200
++++ b/sound/soc/codecs/wm8753.c 2009-06-28 21:24:59.000000000 +0200
+@@ -79,7 +79,7 @@
+ 0x0097, 0x0097, 0x0000, 0x0004,
+ 0x0000, 0x0083, 0x0024, 0x01ba,
+ 0x0000, 0x0083, 0x0024, 0x01ba,
+- 0x0000, 0x0000
++ 0x0000, 0x0000, 0x0000
+ };
+
+ /* codec private data */
+@@ -1660,11 +1660,11 @@
+ codec->set_bias_level = wm8753_set_bias_level;
+ codec->dai = wm8753_dai;
+ codec->num_dai = 2;
+- codec->reg_cache_size = ARRAY_SIZE(wm8753->reg_cache);
+- codec->reg_cache = &wm8753->reg_cache;
++ codec->reg_cache_size = ARRAY_SIZE(wm8753->reg_cache) + 1;
++ codec->reg_cache = wm8753->reg_cache;
+ codec->private_data = wm8753;
+
+- memcpy(codec->reg_cache, wm8753_reg, sizeof(codec->reg_cache));
++ memcpy(codec->reg_cache, wm8753_reg, sizeof(wm8753_reg));
+ INIT_DELAYED_WORK(&codec->delayed_work, wm8753_work);
+
+ ret = wm8753_reset(codec);