summaryrefslogtreecommitdiffstats
BranchCommit messageAuthorAge
masterpatch 9.1.0708: Recursive window update does not account for reset skipcolLuuk van Baal7 days
 
TagDownloadAuthorAge
v9.1.0708commit 3d5065fc75...Christian Brabandt7 days
v9.1.0707commit 396fd1ec29...Christian Brabandt7 days
v9.1.0706commit 75ba87ba62...Christian Brabandt7 days
v9.1.0705commit 58d705238c...Christian Brabandt7 days
v9.1.0704commit 09b80d23cf...Christian Brabandt7 days
v9.1.0703commit c9bfed2fda...Christian Brabandt9 days
v9.1.0702commit f459d68ecf...Christian Brabandt10 days
v9.1.0701commit c3a02d78bd...Christian Brabandt10 days
v9.1.0700commit 1c815b54bb...Christian Brabandt10 days
v9.1.0699commit f8702aeb8f...Christian Brabandt10 days
v9.1.0698commit d56c451e1c...Christian Brabandt12 days
v9.1.0697commit 322ba91086...Christian Brabandt13 days
v9.1.0696commit 663950d700...Christian Brabandt13 days
v9.1.0695commit cd83173def...Christian Brabandt2 weeks
v9.1.0694commit 81e7513c86...Christian Brabandt2 weeks
v9.1.0693commit dc2c75c6b5...Christian Brabandt2 weeks
v9.1.0692commit d1c8d2de4b...Christian Brabandt2 weeks
v9.1.0691commit 3f7024cf86...Christian Brabandt2 weeks
v9.1.0690commit 38f99a1f0d...Christian Brabandt2 weeks
v9.1.0689commit cacb6693c1...Christian Brabandt2 weeks
v9.1.0688commit 25618fc9ea...Christian Brabandt2 weeks
v9.1.0687commit dabf07e458...Christian Brabandt2 weeks
v9.1.0686commit 7790ea0c68...Christian Brabandt3 weeks
v9.1.0685commit 9e795852f3...Christian Brabandt3 weeks
v9.1.0684commit 753794bae8...Christian Brabandt3 weeks
v9.1.0683commit 0fd1cb1b1f...Christian Brabandt3 weeks
v9.1.0682commit cb90ea9cba...Christian Brabandt3 weeks
v9.1.0681commit 6bff6a2fa4...Christian Brabandt3 weeks
v9.1.0680commit 10231ac638...Christian Brabandt3 weeks
v9.1.0679commit bc11f6d9d4...Christian Brabandt3 weeks
v9.1.0678commit 0a6e57b09b...Christian Brabandt3 weeks
v9.1.0677commit 3b59be4ed8...Christian Brabandt3 weeks
v9.1.0676commit 81b62dd654...Christian Brabandt3 weeks
v9.1.0675commit ded1677dd2...Christian Brabandt3 weeks
v9.1.0674commit 7477861e0d...Christian Brabandt3 weeks
v9.1.0673commit 58c9579430...Christian Brabandt4 weeks
v9.1.0672commit 8d02e5cf96...Christian Brabandt4 weeks
v9.1.0671commit fb3f969936...Christian Brabandt4 weeks
v9.1.0670commit e20aeb875c...Christian Brabandt4 weeks
v9.1.0669commit 1c032e36a6...Christian Brabandt4 weeks
v9.1.0668commit 9abd7158d7...Christian Brabandt4 weeks
v9.1.0667commit b026a293b1...Christian Brabandt4 weeks
v9.1.0666commit 9c4b2462bb...Christian Brabandt4 weeks
v9.1.0665commit 6b97d7ad19...Christian Brabandt4 weeks
v9.1.0664commit 568cbc92a6...Christian Brabandt4 weeks
v9.1.0663commit 91efcd115e...Christian Brabandt5 weeks
v9.1.0662commit da090f95df...Christian Brabandt5 weeks
v9.1.0661commit d7af21e746...Christian Brabandt5 weeks
v9.1.0660commit f5f69e8663...Christian Brabandt5 weeks
v9.1.0659commit 2708afa640...Christian Brabandt5 weeks
v9.1.0658commit 62d861741b...Christian Brabandt5 weeks
v9.1.0657commit 87d63d34b6...Christian Brabandt5 weeks
v9.1.0656commit cdf1c7a73a...Christian Brabandt5 weeks
v9.1.0655commit 0aa65b48fb...Christian Brabandt5 weeks
v9.1.0654commit b9de1a057f...Christian Brabandt5 weeks
v9.1.0653commit a0b5bc1285...Christian Brabandt5 weeks
v9.1.0652commit b4ea77185c...Christian Brabandt5 weeks
v9.1.0651commit 0214680a8e...Christian Brabandt5 weeks
v9.1.0650commit e8feaa354e...Christian Brabandt5 weeks
v9.1.0649commit c1ed788c1b...Christian Brabandt5 weeks
v9.1.0648commit b29f4abcd4...Christian Brabandt5 weeks
v9.1.0647commit 8a0bbe7b8a...Christian Brabandt5 weeks
v9.1.0646commit 164096927b...Christian Brabandt5 weeks
v9.1.0645commit 22e8e12d9f...Christian Brabandt6 weeks
v9.1.0644commit 74011dc1fa...Christian Brabandt6 weeks
v9.1.0643commit 1254e6db83...Christian Brabandt6 weeks
v9.1.0642commit 9d997addc7...Christian Brabandt6 weeks
v9.1.0641commit baaf6deb95...Christian Brabandt6 weeks
v9.1.0640commit 3da011871a...Christian Brabandt6 weeks
v9.1.0639commit 0bee82b1d0...Christian Brabandt6 weeks
v9.1.0638commit 0dff31576a...Christian Brabandt6 weeks
v9.1.0637commit 81a65000c5...Christian Brabandt6 weeks
v9.1.0636commit f4572cee35...Christian Brabandt6 weeks
v9.1.0635commit e57c9a19ed...Christian Brabandt6 weeks
v9.1.0634commit 13032a49b7...Christian Brabandt6 weeks
v9.1.0633commit 0268ff3af3...Christian Brabandt6 weeks
v9.1.0632commit 073cb02cb5...Christian Brabandt6 weeks
v9.1.0631commit 6b6280c4a2...Christian Brabandt6 weeks
v9.1.0630commit f0ce176b5f...Christian Brabandt6 weeks
v9.1.0629commit 4100852e09...Christian Brabandt6 weeks
v9.1.0628commit f08865ce83...Christian Brabandt6 weeks
v9.1.0627commit e4486bad10...Christian Brabandt6 weeks
v9.1.0626commit 94082b60d5...Christian Brabandt6 weeks
v9.1.0625commit 6ed8ae837b...Christian Brabandt6 weeks
v9.1.0624commit 70a11a6bf6...Christian Brabandt6 weeks
v9.1.0622commit 032accd98b...Christian Brabandt6 weeks
v9.1.0623commit 325420ebe4...Christian Brabandt6 weeks
v9.1.0621commit b32d0a479d...Christian Brabandt6 weeks
v9.1.0620commit be82825687...Christian Brabandt6 weeks
v9.1.0619commit 8754efe437...Christian Brabandt6 weeks
v9.1.0618commit 508e7856ec...Christian Brabandt6 weeks
v9.1.0617commit dc373d456b...Christian Brabandt6 weeks
v9.1.0616commit eb4b903c9b...Christian Brabandt6 weeks
v9.1.0615commit 242667ae14...Christian Brabandt6 weeks
v9.1.0614commit 377a085ea3...Christian Brabandt6 weeks
v9.1.0613commit 2979cfc262...Christian Brabandt6 weeks
v9.1.0612commit df77c8ad39...Christian Brabandt6 weeks
v9.1.0611commit 56904f90d1...Christian Brabandt7 weeks
v9.1.0610commit e4b991ed36...Christian Brabandt7 weeks
v9.1.0609commit 4c3616d7a2...Christian Brabandt7 weeks
v9.1.0608commit 220474d239...Christian Brabandt7 weeks
v9.1.0607commit a90b0b4ba2...Christian Brabandt7 weeks
v9.1.0606commit c8a582aad5...Christian Brabandt7 weeks
v9.1.0605commit 0be03e14b9...Christian Brabandt7 weeks
v9.1.0604commit b14c325a5b...Christian Brabandt7 weeks
v9.1.0603commit 5fb801a74f...Christian Brabandt7 weeks
v9.1.0602commit 37853b7de3...Christian Brabandt7 weeks
v9.1.0601commit b5d6b5caac...Christian Brabandt7 weeks
v9.1.0600commit 1165f7850b...Christian Brabandt7 weeks
v9.1.0599commit aef6179bcf...Christian Brabandt7 weeks
v9.1.0598commit 8159fb18a9...Christian Brabandt7 weeks
v9.1.0597commit fcc1b5741e...Christian Brabandt7 weeks
v9.1.0596commit 76c19028ff...Christian Brabandt7 weeks
v9.1.0595commit 30d54fdddf...Christian Brabandt7 weeks
v9.1.0594commit ac4ce9e15b...Christian Brabandt7 weeks
v9.1.0591commit c6d7dc0393...Christian Brabandt8 weeks
v9.1.0593commit 3088ef094d...Christian Brabandt8 weeks
v9.1.0592commit b5844104ab...Christian Brabandt8 weeks
v9.1.0590commit d4d1207208...Christian Brabandt8 weeks
v9.1.0589commit 22105fd1fe...Christian Brabandt8 weeks
v9.1.0588commit 3ce274682b...Christian Brabandt8 weeks
v9.1.0587commit 490c1daa24...Christian Brabandt8 weeks
v9.1.0586commit 700cf8cfa1...Christian Brabandt8 weeks
v9.1.0585commit bb5d27dc79...Christian Brabandt8 weeks
v9.1.0584commit b3b2beea5e...Christian Brabandt8 weeks
v9.1.0583commit 28145e005d...Christian Brabandt8 weeks
v9.1.0582commit 7d664bf0eb...Christian Brabandt8 weeks
v9.1.0581commit d9be94cf03...Christian Brabandt8 weeks
v9.1.0580commit 90a800274d...Christian Brabandt8 weeks
v9.1.0579commit d1b5ea984d...Christian Brabandt8 weeks
v9.1.0578commit 360c51208e...Christian Brabandt8 weeks
v9.1.0577commit 69a28f6c08...Christian Brabandt8 weeks
v9.1.0576commit 71de259e78...Christian Brabandt8 weeks
v9.1.0575commit 1a3dd7dc78...Christian Brabandt8 weeks
v9.1.0574commit 8c446da349...Christian Brabandt8 weeks
v9.1.0573commit c25a7084e9...Christian Brabandt8 weeks
v9.1.0572commit 5247b0b92e...Christian Brabandt8 weeks
v9.1.0571commit 231bb03946...Christian Brabandt8 weeks
v9.1.0570commit 8a7563bbea...Christian Brabandt8 weeks
v9.1.0569commit 1ee7420460...Christian Brabandt8 weeks
v9.1.0568commit a20bf69a3b...Christian Brabandt8 weeks
v9.1.0567commit 764526e279...Christian Brabandt8 weeks
v9.1.0566commit e6ab23bd4a...Christian Brabandt8 weeks
v9.1.0565commit 68819afb2c...Christian Brabandt8 weeks
v9.1.0564commit 0512425891...Christian Brabandt8 weeks
v9.1.0563commit 8367884909...Christian Brabandt8 weeks
v9.1.0562commit e7b98ab96e...Christian Brabandt8 weeks
v9.1.0561commit b7e09b0442...Christian Brabandt8 weeks
v9.1.0560commit 8252ef134f...Christian Brabandt8 weeks
v9.1.0559commit 965091001f...Christian Brabandt8 weeks
v9.1.0558commit 50dc83cf92...Christian Brabandt8 weeks
v9.1.0557commit 893eeeb445...Christian Brabandt8 weeks
v9.1.0556commit 2e7d89b398...Christian Brabandt8 weeks
v9.1.0555commit c03f631b7b...Christian Brabandt8 weeks
v9.1.0554commit 4ff3a9b1e3...Christian Brabandtpre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/*
 *   ALSA driver for ATI IXP 150/200/250 AC97 modem controllers
 *
 *	Copyright (c) 2004 Takashi Iwai <tiwai@suse.de>
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 */

#include <sound/driver.h>
#include <asm/io.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/moduleparam.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/info.h>
#include <sound/ac97_codec.h>
#include <sound/initval.h>

MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
MODULE_DESCRIPTION("ATI IXP MC97 controller");
MODULE_LICENSE("GPL");
MODULE_SUPPORTED_DEVICE("{{ATI,IXP150/200/250}}");

static int index[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -2}; /* Exclude the first card */
static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;	/* Enable this card */
static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};

module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for ATI IXP controller.");
module_param_array(id, charp, NULL, 0444);
MODULE_PARM_DESC(id, "ID string for ATI IXP controller.");
module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable audio part of ATI IXP controller.");
module_param_array(ac97_clock, int, NULL, 0444);
MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (default 48000Hz).");


/*
 */

#define ATI_REG_ISR			0x00	/* interrupt source */
#define  ATI_REG_ISR_MODEM_IN_XRUN	(1U<<0)
#define  ATI_REG_ISR_MODEM_IN_STATUS	(1U<<1)
#define  ATI_REG_ISR_MODEM_OUT1_XRUN	(1U<<2)
#define  ATI_REG_ISR_MODEM_OUT1_STATUS	(1U<<3)
#define  ATI_REG_ISR_MODEM_OUT2_XRUN	(1U<<4)
#define  ATI_REG_ISR_MODEM_OUT2_STATUS	(1U<<5)
#define  ATI_REG_ISR_MODEM_OUT3_XRUN	(1U<<6)
#define  ATI_REG_ISR_MODEM_OUT3_STATUS	(1U<<7)
#define  ATI_REG_ISR_PHYS_INTR		(1U<<8)
#define  ATI_REG_ISR_PHYS_MISMATCH	(1U<<9)
#define  ATI_REG_ISR_CODEC0_NOT_READY	(1U<<10)
#define  ATI_REG_ISR_CODEC1_NOT_READY	(1U<<11)
#define  ATI_REG_ISR_CODEC2_NOT_READY	(1U<<12)
#define  ATI_REG_ISR_NEW_FRAME		(1U<<13)
#define  ATI_REG_ISR_MODEM_GPIO_DATA	(1U<<14)

#define ATI_REG_IER			0x04	/* interrupt enable */
#define  ATI_REG_IER_MODEM_IN_XRUN_EN	(1U<<0)
#define  ATI_REG_IER_MODEM_STATUS_EN	(1U<<1)
#define  ATI_REG_IER_MODEM_OUT1_XRUN_EN	(1U<<2)
#define  ATI_REG_IER_MODEM_OUT2_XRUN_EN	(1U<<4)
#define  ATI_REG_IER_MODEM_OUT3_XRUN_EN	(1U<<6)
#define  ATI_REG_IER_PHYS_INTR_EN	(1U<<8)
#define  ATI_REG_IER_PHYS_MISMATCH_EN	(1U<<9)
#define  ATI_REG_IER_CODEC0_INTR_EN	(1U<<10)
#define  ATI_REG_IER_CODEC1_INTR_EN	(1U<<11)
#define  ATI_REG_IER_CODEC2_INTR_EN	(1U<<12)
#define  ATI_REG_IER_NEW_FRAME_EN	(1U<<13)	/* (RO */
#define  ATI_REG_IER_MODEM_GPIO_DATA_EN	(1U<<14)	/* (WO) modem is running */</