On 17-08-08 20:01, Krzysztof Helt wrote:
From: Krzysztof Helt krzysztof.h1@wp.pl
Remove card pointer from the snd_opl3sa2 structure and break circular reference snd_card->snd_opl3sa2->snd_card.
Signed-off-by: Krzysztof Helt krzysztof.h1@wp.pl
Acked-by: Rene Herman rene.herman@gmail.com
Note, you had me worried for a bit as you reminded me I still have a patch pending to pass the card->dev to snd_pcm_preallocate_pages() in order to stop using the magic "NULL dev means ISA" behaviour in the DMA layer (meaning we need a chip->card) but this "chip" isn't in fact "a chip" so fine here.
@@ -298,12 +296,14 @@ static int __devinit snd_opl3sa2_detect( static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id) { unsigned short status;
- struct snd_opl3sa2 *chip = dev_id;
- struct snd_card *card = dev_id;
- struct snd_opl3sa2 *chip; int handled = 0;
- if (chip == NULL || chip->card == NULL)
- if (card == NULL || card->private_data == NULL)
micro-comment: card->private_data can't actually be NULL on initialized card (it's card + n) but yes, I guess we're pretending we don't know that...
Rene.