Re: [PATCH] alsa: use subsys_initcall for sound core instead ofmodule_init

From: Thadeu Lima de Souza Cascardo
Date: Thu Jan 14 2010 - 10:55:51 EST


On Wed, Jan 13, 2010 at 07:48:07AM +0100, Takashi Iwai wrote:
> At Tue, 12 Jan 2010 20:20:39 -0200,
> Thadeu Lima de Souza Cascardo wrote:
> >
> > This is needed for built-in drivers which are built before the sound directory,
> > like thinkpad_acpi.
> >
> > Otherwise, registering a card fails.
>
> Oh well, this kind of problem hits again.
>
> I don't remember why subsys_init() wasn't taken before... Maybe some
> dependency between sound and V4L or so. But, it's worth to check again.
>

Any references to this dependency problem, so I can try to help and investigate
about it and do some tests?

> I'll apply this after some testing.
>

Built-in thinkpad-acpi started working for me after these changes. I can't tell
you about any subsystem that stopped working, like some V4L driver.

>
> thanks,
>
> Takashi
>

Regards,
Cascardo.

> >
> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@xxxxxxxxxxxxxx>
> > ---
> > sound/core/sound.c | 4 ++--
> > sound/sound_core.c | 2 +-
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/sound/core/sound.c b/sound/core/sound.c
> > index 7872a02..563d196 100644
> > --- a/sound/core/sound.c
> > +++ b/sound/core/sound.c
> > @@ -468,5 +468,5 @@ static void __exit alsa_sound_exit(void)
> > unregister_chrdev(major, "alsa");
> > }
> >
> > -module_init(alsa_sound_init)
> > -module_exit(alsa_sound_exit)
> > +subsys_initcall(alsa_sound_init);
> > +module_exit(alsa_sound_exit);
> > diff --git a/sound/sound_core.c b/sound/sound_core.c
> > index dbca7c9..7c2d677 100644
> > --- a/sound/sound_core.c
> > +++ b/sound/sound_core.c
> > @@ -61,7 +61,7 @@ static void __exit cleanup_soundcore(void)
> > class_destroy(sound_class);
> > }
> >
> > -module_init(init_soundcore);
> > +subsys_initcall(init_soundcore);
> > module_exit(cleanup_soundcore);
> >
> >
> > --
> > 1.6.6
> >

Attachment: signature.asc
Description: Digital signature