Sound в mini2440

В новых ядрах почему-то не работает звук в девките http://www.friendlyarm.net/products/mini2440?lang=en

Попытался разобраться сам но что-то не выходит.

static struct platform_driver s3c24xx_uda134x_driver = {
	.probe  = s3c24xx_uda134x_probe,
	.remove = s3c24xx_uda134x_remove,
	.driver = {
		.name = "s3c24xx_uda134x",
		.owner = THIS_MODULE,
	},
};

static int __init s3c24xx_uda134x_init(void)
{
	return platform_driver_register(&s3c24xx_uda134x_driver);
}

Тут все ок s3c24xx_uda134x_probe вызывается. Птому собственно доходит до snd_soc_instantiate_card(который в linux-2.6\sound\soс\soc-core.c)
А вот в нем доходит до сюда

for (i = 0; i < card->num_links; i++)
		soc_bind_dai_link(card, i);
//soc_bind_dai_link
....
find_platform:
	/* do we already have the CODEC DAI for this link ? */
	if (rtd->platform) {
		goto out;
	}
	/* no, then find CPU DAI from registered DAIs*/
	list_for_each_entry(platform, &platform_list, list) {
		if (!strcmp(platform->name, dai_link->platform_name)) {
			rtd->platform = platform;
			goto out;
		}
	}
...

А вот и проблема. platform_list пуст. начал искать как заполняется. нашел файл linux-2.6\sound\soc\samsung\dma.c там

.....
static int __devinit samsung_asoc_platform_probe(struct platform_device *pdev)
{
//В эту функцию уже незаходит.
	return snd_soc_register_platform(&pdev->dev, &samsung_asoc_platform);
}

static int __devexit samsung_asoc_platform_remove(struct platform_device *pdev)
{
	snd_soc_unregister_platform(&pdev->dev);
	return 0;
}

static struct platform_driver asoc_dma_driver = {
	.driver = {
		.name = "samsung-audio",
		.owner = THIS_MODULE,
	},

	.probe = samsung_asoc_platform_probe,
	.remove = __devexit_p(samsung_asoc_platform_remove),
};

static int __init samsung_asoc_init(void)
{
//А вот эта выполняется
	return platform_driver_register(&asoc_dma_driver);
}
module_init(samsung_asoc_init);
....

Куда мне копать?