[PATCH] v4l: 727: fixed a bug that caused some saa7133 code to run on saa7134 boards
authorRicardo Cerqueira <v4l@cerqueira.org>
Wed, 9 Nov 2005 05:37:14 +0000 (21:37 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 9 Nov 2005 15:56:16 +0000 (07:56 -0800)
- Fixed a bug that caused some saa7133 code to run on saa7134 boards

Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org>
Signed-off-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/media/video/saa7134/saa7134-alsa.c
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/saa7134/saa7134.h

index cf4ee6d6ef64d34faed3530d3728e05022f16a20..465beac941d76b65d014d80d2a2c71cfbbd6159d 100644 (file)
@@ -45,9 +45,6 @@ MODULE_PARM_DESC(alsa_debug,"enable debug messages [alsa]");
  * Configuration macros
  */
 
-#define MAX_PCM_DEVICES                1
-#define MAX_PCM_SUBSTREAMS     1
-
 /* defaults */
 #define MAX_BUFFER_SIZE                (256*1024)
 #define USE_FORMATS            SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_U16_BE
@@ -804,6 +801,7 @@ static int snd_saa7134_capsrc_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
                                break;
                }
 
+               break;
           case PCI_DEVICE_ID_PHILIPS_SAA7133:
           case PCI_DEVICE_ID_PHILIPS_SAA7135:
                xbarin = 0x03; // adc
@@ -833,6 +831,7 @@ static int snd_saa7134_capsrc_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
                  saa_dsp_writel(dev, SAA7133_DIGITAL_INPUT_XBAR1, 0);
                  saa_writel(SAA7133_ANALOG_IO_SELECT, 0);
                }
+               break;
          }
        }
 
@@ -891,7 +890,7 @@ static int snd_saa7134_dev_free(snd_device_t *device)
  *
  */
 
-int alsa_card_saa7134_create(struct saa7134_dev *saadev)
+int alsa_card_saa7134_create(struct saa7134_dev *saadev, unsigned int devicenum)
 {
        static int dev;
        snd_card_t *card;
@@ -906,8 +905,11 @@ int alsa_card_saa7134_create(struct saa7134_dev *saadev)
        if (!enable[dev])
                return -ENODEV;
 
-       card = snd_card_new(index[dev], id[dev], THIS_MODULE,
-                           0);
+       if (devicenum) {
+               card = snd_card_new(devicenum, id[dev], THIS_MODULE, 0);
+       } else {
+               card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
+       }
        if (card == NULL)
                return -ENOMEM;
 
@@ -949,7 +951,7 @@ int alsa_card_saa7134_create(struct saa7134_dev *saadev)
 
        strcpy(card->shortname, "SAA7134");
         sprintf(card->longname, "%s at 0x%lx irq %d",
-                card->shortname, chip->iobase, chip->irq);
+                chip->saadev->name, chip->iobase, chip->irq);
 
        if ((err = snd_card_register(card)) == 0) {
                snd_saa7134_cards[dev] = card;
index 538c9ce2f2bb885853251308f39f2e120ab9d0ad..907dbd4de7c9943ea4e1f0bfc783ea8d2f037e4c 100644 (file)
@@ -1027,7 +1027,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
                        printk(KERN_INFO "%s: registered device mixer%d\n",
                               dev->name,dev->oss.minor_mixer >> 4);
                } else if (alsa) {
-                       alsa_card_saa7134_create(dev);
+                       alsa_card_saa7134_create(dev,dsp_nr[dev->nr]);
                        printk(KERN_INFO "%s: registered ALSA devices\n",
                               dev->name);
                }
index 7a35ef8fecb7aeb5ea28ef4eaa4640d916edfab0..52fc4425b711ddedf70cbe406b81ee8e730e9638 100644 (file)
@@ -649,7 +649,7 @@ int  saa7134_input_init1(struct saa7134_dev *dev);
 void saa7134_input_fini(struct saa7134_dev *dev);
 void saa7134_input_irq(struct saa7134_dev *dev);
 
-int alsa_card_saa7134_create(struct saa7134_dev *saadev);
+int alsa_card_saa7134_create(struct saa7134_dev *saadev, unsigned int devnum);
 void alsa_card_saa7134_exit(void);
 void saa7134_irq_alsa_done(struct saa7134_dev *dev, unsigned long status);