From: Takashi Iwai <tiwai@suse.de>
To: Barry Scott <barry.scott@onelan.co.uk>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: 2.6.17-rc6 sound drivers have section mismatch errors
Date: Fri, 09 Jun 2006 15:04:15 +0200 [thread overview]
Message-ID: <s5h4pyueb00.wl%tiwai@suse.de> (raw)
In-Reply-To: <s5hirnaechx.wl%tiwai@suse.de>
At Fri, 09 Jun 2006 14:31:54 +0200,
I wrote:
>
> At Fri, 09 Jun 2006 12:47:49 +0100,
> Barry Scott wrote:
> >
> > I'm trying to build 2.6.17 as suggested on the user list to get Intel
> > HDA working.
> > But, as reported by me on Linux Dev list, there a lot of problems with
> > section mismatch
> > in a number of drivers including the sound drivers. Here are the sound
> > related messages:
> >
> > WARNING: sound/isa/sb/snd-sbawe.o - Section mismatch: reference to
> > .init.text:snd_emu8000_new from .text between 'snd_sb16_probe' (at
> > offset 0x440) and 'snd_sb16_nonpnp_remove'
> > WARNING: sound/isa/snd-opl3sa2.o - Section mismatch: reference to
> > .init.text: from .text between 'snd_opl3sa2_pnp_cdetect' (at offset
> > 0xe61) and 'snd_opl3sa2_pnp_detect'
> > WARNING: sound/isa/snd-opl3sa2.o - Section mismatch: reference to
> > .init.text: from .text between 'snd_opl3sa2_pnp_detect' (at offset
> > 0xf52) and 'snd_opl3sa2_put_single'
> >
> > The Linux Dev folks are looking for someone to look at these problems.
>
> The patch below should fix.
Looks like it wasn't enough. The fixed patch is below.
Takashi
diff -r 4599255ac532 isa/opl3sa2.c
--- a/isa/opl3sa2.c Thu Jun 08 12:01:44 2006 +0200
+++ b/isa/opl3sa2.c Fri Jun 09 15:03:19 2006 +0200
@@ -221,7 +221,7 @@ static void snd_opl3sa2_write(struct snd
spin_unlock_irqrestore(&chip->reg_lock, flags);
}
-static int __init snd_opl3sa2_detect(struct snd_opl3sa2 *chip)
+static int __devinit snd_opl3sa2_detect(struct snd_opl3sa2 *chip)
{
struct snd_card *card;
unsigned long port;
@@ -489,7 +489,7 @@ static void snd_opl3sa2_master_free(stru
chip->master_volume = NULL;
}
-static int __init snd_opl3sa2_mixer(struct snd_opl3sa2 *chip)
+static int __devinit snd_opl3sa2_mixer(struct snd_opl3sa2 *chip)
{
struct snd_card *card = chip->card;
struct snd_ctl_elem_id id1, id2;
@@ -583,8 +583,8 @@ static int snd_opl3sa2_resume(struct snd
#endif /* CONFIG_PM */
#ifdef CONFIG_PNP
-static int __init snd_opl3sa2_pnp(int dev, struct snd_opl3sa2 *chip,
- struct pnp_dev *pdev)
+static int __devinit snd_opl3sa2_pnp(int dev, struct snd_opl3sa2 *chip,
+ struct pnp_dev *pdev)
{
struct pnp_resource_table * cfg;
int err;
@@ -862,7 +862,7 @@ static struct pnp_card_driver opl3sa2_pn
};
#endif /* CONFIG_PNP */
-static int __init snd_opl3sa2_nonpnp_probe(struct platform_device *pdev)
+static int __devinit snd_opl3sa2_nonpnp_probe(struct platform_device *pdev)
{
struct snd_card *card;
int err;
diff -r 4599255ac532 isa/sb/emu8000.c
--- a/isa/sb/emu8000.c Thu Jun 08 12:01:44 2006 +0200
+++ b/isa/sb/emu8000.c Fri Jun 09 15:03:19 2006 +0200
@@ -131,7 +131,7 @@ snd_emu8000_dma_chan(struct snd_emu8000
/*
*/
-static void __init
+static void __devinit
snd_emu8000_read_wait(struct snd_emu8000 *emu)
{
while ((EMU8000_SMALR_READ(emu) & 0x80000000) != 0) {
@@ -143,7 +143,7 @@ snd_emu8000_read_wait(struct snd_emu8000
/*
*/
-static void __init
+static void __devinit
snd_emu8000_write_wait(struct snd_emu8000 *emu)
{
while ((EMU8000_SMALW_READ(emu) & 0x80000000) != 0) {
@@ -156,7 +156,7 @@ snd_emu8000_write_wait(struct snd_emu800
/*
* detect a card at the given port
*/
-static int __init
+static int __devinit
snd_emu8000_detect(struct snd_emu8000 *emu)
{
/* Initialise */
@@ -182,7 +182,7 @@ snd_emu8000_detect(struct snd_emu8000 *e
/*
* intiailize audio channels
*/
-static void __init
+static void __devinit
init_audio(struct snd_emu8000 *emu)
{
int ch;
@@ -223,7 +223,7 @@ init_audio(struct snd_emu8000 *emu)
/*
* initialize DMA address
*/
-static void __init
+static void __devinit
init_dma(struct snd_emu8000 *emu)
{
EMU8000_SMALR_WRITE(emu, 0);
@@ -327,7 +327,7 @@ static unsigned short init4[128] /*__dev
* Taken from the oss driver, not obvious from the doc how this
* is meant to work
*/
-static void __init
+static void __devinit
send_array(struct snd_emu8000 *emu, unsigned short *data, int size)
{
int i;
@@ -349,7 +349,7 @@ send_array(struct snd_emu8000 *emu, unsi
* Send initialization arrays to start up, this just follows the
* initialisation sequence in the adip.
*/
-static void __init
+static void __devinit
init_arrays(struct snd_emu8000 *emu)
{
send_array(emu, init1, ARRAY_SIZE(init1)/4);
@@ -375,7 +375,7 @@ init_arrays(struct snd_emu8000 *emu)
* seems that the only way to do this is to use the one channel and keep
* reallocating between read and write.
*/
-static void __init
+static void __devinit
size_dram(struct snd_emu8000 *emu)
{
int i, size;
@@ -500,7 +500,7 @@ snd_emu8000_init_fm(struct snd_emu8000 *
/*
* The main initialization routine.
*/
-static void __init
+static void __devinit
snd_emu8000_init_hw(struct snd_emu8000 *emu)
{
int i;
@@ -1019,7 +1019,7 @@ static struct snd_kcontrol_new *mixer_de
/*
* create and attach mixer elements for WaveTable treble/bass controls
*/
-static int __init
+static int __devinit
snd_emu8000_create_mixer(struct snd_card *card, struct snd_emu8000 *emu)
{
int i, err = 0;
@@ -1069,7 +1069,7 @@ static int snd_emu8000_dev_free(struct s
/*
* initialize and register emu8000 synth device.
*/
-int __init
+int __devinit
snd_emu8000_new(struct snd_card *card, int index, long port, int seq_ports,
struct snd_seq_device **awe_ret)
{
next prev parent reply other threads:[~2006-06-09 13:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-09 11:47 2.6.17-rc6 sound drivers have section mismatch errors Barry Scott
2006-06-09 12:31 ` Takashi Iwai
2006-06-09 13:04 ` Takashi Iwai [this message]
2006-06-09 14:08 ` Barry Scott
2006-06-09 16:08 ` Barry Scott
2006-06-12 9:32 ` Takashi Iwai
2006-06-12 10:29 ` Barry Scott
2006-06-12 10:53 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5h4pyueb00.wl%tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@lists.sourceforge.net \
--cc=barry.scott@onelan.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox