Found these two bugs while browsing through the code.  The first one is
a cut-n-paste bug, instead of disabling the clock when request_irq()
fails, it enabled it once more.  The second one fixes a debug printout,
AT91_SSC_IER is write only, AT91_SSC_IMR is readable (the printed string
actually says imr).
Frank Mandarino was busy so he asked me to send these to this list.
/Patrik
Signed-off-by: Patrik Sevallius <patrik.sevallius@enea.com>
Acked-by: Frank Mandarino <fmandarino@endrelia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
 
                DBG("sr=%lx imr=%lx\n",
                    at91_ssc_read(params->ssc_base + AT91_SSC_SR),
-                   at91_ssc_read(params->ssc_base + AT91_SSC_IER));
+                   at91_ssc_read(params->ssc_base + AT91_SSC_IMR));
                break;
 
        case SNDRV_PCM_TRIGGER_STOP:
 
                        printk(KERN_WARNING "at91-ssc: request_irq failure\n");
 
                        DBG("Stopping pid %d clock\n", ssc_p->ssc.pid);
-                       at91_sys_write(AT91_PMC_PCER, 1<<ssc_p->ssc.pid);
+                       at91_sys_write(AT91_PMC_PCDR, 1<<ssc_p->ssc.pid);
                        return ret;
                }