const struct firmware *fw;
        int r;
 
-       r = request_firmware(&fw, fw_name, adev->dev);
+       r = firmware_request_nowarn(&fw, fw_name, adev->dev);
        if (r) {
-               dev_err(adev->dev, "can't load firmware \"%s\"\n",
-                       fw_name);
+               if (amdgpu_discovery == 2)
+                       dev_err(adev->dev, "can't load firmware \"%s\"\n", fw_name);
+               else
+                       drm_info(&adev->ddev, "Optional firmware \"%s\" was not found\n", fw_name);
                return r;
        }
 
        /* Read from file if it is the preferred option */
        fw_name = amdgpu_discovery_get_fw_name(adev);
        if (fw_name != NULL) {
-               dev_info(adev->dev, "use ip discovery information from file");
+               drm_dbg(&adev->ddev, "use ip discovery information from file");
                r = amdgpu_discovery_read_binary_from_file(adev, adev->mman.discovery_bin, fw_name);
-
-               if (r) {
-                       dev_err(adev->dev, "failed to read ip discovery binary from file\n");
-                       r = -EINVAL;
+               if (r)
                        goto out;
-               }
-
        } else {
+               drm_dbg(&adev->ddev, "use ip discovery information from memory");
                r = amdgpu_discovery_read_binary_from_mem(
                        adev, adev->mman.discovery_bin);
                if (r)
        int r;
 
        r = amdgpu_discovery_init(adev);
-       if (r) {
-               DRM_ERROR("amdgpu_discovery_init failed\n");
+       if (r)
                return r;
-       }
 
        wafl_ver = 0;
        adev->gfx.xcc_mask = 0;
                break;
        default:
                r = amdgpu_discovery_reg_base_init(adev);
-               if (r)
-                       return -EINVAL;
+               if (r) {
+                       drm_err(&adev->ddev, "discovery failed: %d\n", r);
+                       return r;
+               }
 
                amdgpu_discovery_harvest_ip(adev);
                amdgpu_discovery_get_gfx_info(adev);