Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / sound / pci / ctxfi / ctatc.c
index af632bd..4546590 100644 (file)
@@ -106,11 +106,11 @@ static struct {
                            .public_name = "Mixer"}
 };
 
-typedef int (*create_t)(void *, void **);
+typedef int (*create_t)(struct hw *, void **);
 typedef int (*destroy_t)(void *);
 
 static struct {
-       int (*create)(void *hw, void **rmgr);
+       int (*create)(struct hw *hw, void **rmgr);
        int (*destroy)(void *mgr);
 } rsc_mgr_funcs[NUM_RSCTYP] = {
        [SRC]           = { .create     = (create_t)src_mgr_create,
@@ -171,7 +171,8 @@ static unsigned long atc_get_ptp_phys(struct ct_atc *atc, int index)
        return atc->vm->get_ptp_phys(atc->vm, index);
 }
 
-static unsigned int convert_format(snd_pcm_format_t snd_format)
+static unsigned int convert_format(snd_pcm_format_t snd_format,
+                                  struct snd_card *card)
 {
        switch (snd_format) {
        case SNDRV_PCM_FORMAT_U8:
@@ -185,7 +186,7 @@ static unsigned int convert_format(snd_pcm_format_t snd_format)
        case SNDRV_PCM_FORMAT_FLOAT_LE:
                return SRC_SF_F32;
        default:
-               printk(KERN_ERR "ctxfi: not recognized snd format is %d \n",
+               dev_err(card->dev, "not recognized snd format is %d\n",
                        snd_format);
                return SRC_SF_S16;
        }
@@ -268,7 +269,8 @@ static int atc_pcm_playback_prepare(struct ct_atc *atc, struct ct_atc_pcm *apcm)
        src = apcm->src;
        src->ops->set_pitch(src, pitch);
        src->ops->set_rom(src, select_rom(pitch));
-       src->ops->set_sf(src, convert_format(apcm->substream->runtime->format));
+       src->ops->set_sf(src, convert_format(apcm->substream->runtime->format,
+                                            atc->card));
        src->ops->set_pm(src, (src->ops->next_interleave(src) != NULL));
 
        /* Get AMIXER resource */
@@ -738,7 +740,8 @@ static int atc_pcm_capture_start(struct ct_atc *atc, struct ct_atc_pcm *apcm)
 
        /*  Set up recording SRC */
        src = apcm->src;
-       src->ops->set_sf(src, convert_format(apcm->substream->runtime->format));
+       src->ops->set_sf(src, convert_format(apcm->substream->runtime->format,
+                                            atc->card));
        src->ops->set_sa(src, apcm->vm_block->addr);
        src->ops->set_la(src, apcm->vm_block->addr + apcm->vm_block->size);
        src->ops->set_ca(src, apcm->vm_block->addr);
@@ -807,7 +810,8 @@ static int spdif_passthru_playback_get_resources(struct ct_atc *atc,
        src = apcm->src;
        src->ops->set_pitch(src, pitch);
        src->ops->set_rom(src, select_rom(pitch));
-       src->ops->set_sf(src, convert_format(apcm->substream->runtime->format));
+       src->ops->set_sf(src, convert_format(apcm->substream->runtime->format,
+                                            atc->card));
        src->ops->set_pm(src, (src->ops->next_interleave(src) != NULL));
        src->ops->set_bp(src, 1);
 
@@ -1235,7 +1239,7 @@ static int ct_atc_destroy(struct ct_atc *atc)
        }
 
        if (atc->hw)
-               destroy_hw_obj((struct hw *)atc->hw);
+               destroy_hw_obj(atc->hw);
 
        /* Destroy device virtual memory manager object */
        if (atc->vm) {
@@ -1282,9 +1286,9 @@ static int atc_identify_card(struct ct_atc *atc, unsigned int ssid)
        p = snd_pci_quirk_lookup_id(vendor_id, device_id, list);
        if (p) {
                if (p->value < 0) {
-                       printk(KERN_ERR "ctxfi: "
-                              "Device %04x:%04x is black-listed\n",
-                              vendor_id, device_id);
+                       dev_err(atc->card->dev,
+                               "Device %04x:%04x is black-listed\n",
+                               vendor_id, device_id);
                        return -ENOENT;
                }
                atc->model = p->value;
@@ -1315,8 +1319,8 @@ int ct_atc_create_alsa_devs(struct ct_atc *atc)
                err = alsa_dev_funcs[i].create(atc, i,
                                alsa_dev_funcs[i].public_name);
                if (err) {
-                       printk(KERN_ERR "ctxfi: "
-                              "Creating alsa device %d failed!\n", i);
+                       dev_err(atc->card->dev,
+                               "Creating alsa device %d failed!\n", i);
                        return err;
                }
        }
@@ -1332,9 +1336,10 @@ static int atc_create_hw_devs(struct ct_atc *atc)
 
        err = create_hw_obj(atc->pci, atc->chip_type, atc->model, &hw);
        if (err) {
-               printk(KERN_ERR "Failed to create hw obj!!!\n");
+               dev_err(atc->card->dev, "Failed to create hw obj!!!\n");
                return err;
        }
+       hw->card = atc->card;
        atc->hw = hw;
 
        /* Initialize card hardware. */
@@ -1351,8 +1356,8 @@ static int atc_create_hw_devs(struct ct_atc *atc)
 
                err = rsc_mgr_funcs[i].create(atc->hw, &atc->rsc_mgrs[i]);
                if (err) {
-                       printk(KERN_ERR "ctxfi: "
-                              "Failed to create rsc_mgr %d!!!\n", i);
+                       dev_err(atc->card->dev,
+                               "Failed to create rsc_mgr %d!!!\n", i);
                        return err;
                }
        }
@@ -1399,8 +1404,9 @@ static int atc_get_resources(struct ct_atc *atc)
                err = daio_mgr->get_daio(daio_mgr, &da_desc,
                                        (struct daio **)&atc->daios[i]);
                if (err) {
-                       printk(KERN_ERR "ctxfi: Failed to get DAIO "
-                                       "resource %d!!!\n", i);
+                       dev_err(atc->card->dev,
+                               "Failed to get DAIO resource %d!!!\n",
+                               i);
                        return err;
                }
                atc->n_daio++;
@@ -1603,8 +1609,8 @@ static int atc_resume(struct ct_atc *atc)
        /* Do hardware resume. */
        err = atc_hw_resume(atc);
        if (err < 0) {
-               printk(KERN_ERR "ctxfi: pci_enable_device failed, "
-                      "disabling device\n");
+               dev_err(atc->card->dev,
+                       "pci_enable_device failed, disabling device\n");
                snd_card_disconnect(atc->card);
                return err;
        }
@@ -1701,7 +1707,7 @@ int ct_atc_create(struct snd_card *card, struct pci_dev *pci,
        /* Find card model */
        err = atc_identify_card(atc, ssid);
        if (err < 0) {
-               printk(KERN_ERR "ctatc: Card not recognised\n");
+               dev_err(card->dev, "ctatc: Card not recognised\n");
                goto error1;
        }
 
@@ -1717,7 +1723,7 @@ int ct_atc_create(struct snd_card *card, struct pci_dev *pci,
 
        err = ct_mixer_create(atc, (struct ct_mixer **)&atc->mixer);
        if (err) {
-               printk(KERN_ERR "ctxfi: Failed to create mixer obj!!!\n");
+               dev_err(card->dev, "Failed to create mixer obj!!!\n");
                goto error1;
        }
 
@@ -1744,6 +1750,6 @@ int ct_atc_create(struct snd_card *card, struct pci_dev *pci,
 
 error1:
        ct_atc_destroy(atc);
-       printk(KERN_ERR "ctxfi: Something wrong!!!\n");
+       dev_err(card->dev, "Something wrong!!!\n");
        return err;
 }