(totalgain % 256) * 100 / 256);
 
        if (priv->pll_register_no) {
-               xc5000_readreg(priv, priv->pll_register_no, ®val);
-               dprintk(1, "*** PLL lock status = 0x%04x\n", regval);
+               if (!xc5000_readreg(priv, priv->pll_register_no, ®val))
+                       dprintk(1, "*** PLL lock status = 0x%04x\n", regval);
        }
 }
 
        u16 id;
 
        ret = xc5000_readreg(priv, XREG_PRODUCT_ID, &id);
-       if (ret == 0) {
+       if (!ret) {
                if (id == XC_PRODUCT_ID_FW_NOT_LOADED)
                        ret = -ENOENT;
                else
                        ret = 0;
+               dprintk(1, "%s() returns id = 0x%x\n", __func__, id);
+       } else {
+               dprintk(1, "%s() returns error %d\n", __func__, ret);
        }
 
-       dprintk(1, "%s() returns %s id = 0x%x\n", __func__,
-               ret == 0 ? "True" : "False", id);
        return ret;
 }
 
 
        if (priv->pll_register_no != 0) {
                msleep(20);
-               xc5000_readreg(priv, priv->pll_register_no, &pll_lock_status);
+               ret = xc5000_readreg(priv, priv->pll_register_no,
+                                    &pll_lock_status);
+               if (ret)
+                       return ret;
                if (pll_lock_status > 63) {
                        /* PLL is unlocked, force reload of the firmware */
                        dprintk(1, "xc5000: PLL not locked (0x%x).  Reloading...\n",
                }
 
                if (priv->pll_register_no) {
-                       xc5000_readreg(priv, priv->pll_register_no,
-                                      &pll_lock_status);
+                       ret = xc5000_readreg(priv, priv->pll_register_no,
+                                            &pll_lock_status);
+                       if (ret)
+                               continue;
                        if (pll_lock_status > 63) {
                                /* PLL is unlocked, force reload of the firmware */
                                printk(KERN_ERR