Showing error 545

User: Jiri Slaby
Error type: Calling function from invalid context
Error type description: Some function is called at inappropriate place like sleep inside critical sections or interrupt handlers
File location: sound/pci/pcxhr/pcxhr_core.c
Line in file: 203
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:02 UTC


Source:

 173static int pcxhr_send_it_dsp(struct pcxhr_mgr *mgr, unsigned int itdsp, int atomic)
 174{
 175        int err;
 176        unsigned char reg;
 177
 178        if (itdsp & PCXHR_MASK_IT_MANAGE_HF5) {
 179                /* clear hf5 bit */
 180                PCXHR_OUTPL(mgr, PCXHR_PLX_MBOX0,
 181                            PCXHR_INPL(mgr, PCXHR_PLX_MBOX0) & ~PCXHR_MBOX0_HF5);
 182        }
 183        if ((itdsp & PCXHR_MASK_IT_NO_HF0_HF1) == 0) {
 184                reg = PCXHR_ICR_HI08_RREQ | PCXHR_ICR_HI08_TREQ | PCXHR_ICR_HI08_HDRQ;
 185                if (itdsp & PCXHR_MASK_IT_HF0)
 186                        reg |= PCXHR_ICR_HI08_HF0;
 187                if (itdsp & PCXHR_MASK_IT_HF1)
 188                        reg |= PCXHR_ICR_HI08_HF1;
 189                PCXHR_OUTPB(mgr, PCXHR_DSP_ICR, reg);
 190        }
 191        reg = (unsigned char)(((itdsp & PCXHR_MASK_EXTRA_INFO) >> 1) | PCXHR_CVR_HI08_HC);
 192        PCXHR_OUTPB(mgr, PCXHR_DSP_CVR, reg);
 193        if (itdsp & PCXHR_MASK_IT_WAIT) {
 194                if (atomic)
 195                        mdelay(PCXHR_WAIT_IT);
 196                else
 197                        msleep(PCXHR_WAIT_IT);
 198        }
 199        if (itdsp & PCXHR_MASK_IT_WAIT_EXTRA) {
 200                if (atomic)
 201                        mdelay(PCXHR_WAIT_IT_EXTRA);
 202                else
 203                        msleep(PCXHR_WAIT_IT);
 204        }
 205        /* wait for CVR_HI08_HC == 0 */
 206        err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_CVR,  PCXHR_CVR_HI08_HC, 0,
 207                                  PCXHR_TIMEOUT_DSP, &reg);
 208        if (err) {
 209                snd_printk(KERN_ERR "pcxhr_send_it_dsp : TIMEOUT CVR\n");
 210                return err;
 211        }
 212        if (itdsp & PCXHR_MASK_IT_MANAGE_HF5) {
 213                /* wait for hf5 bit */
Show full sources