diff --git a/va/va.c b/va/va.c
index 3ea8503..f319e06 100755
--- a/va/va.c
+++ b/va/va.c
@@ -464,17 +464,14 @@
     if ((VA_STATUS_SUCCESS == vaStatus) &&
         driver_name_env && (geteuid() == getuid())) {
         /* Don't allow setuid apps to use LIBVA_DRIVER_NAME */
-        if (driver_name) /* memory is allocated in va_getDriverName */
-            free(driver_name);
-        
-        driver_name = strdup(driver_name_env);
+        driver_name = "pvr";
         vaStatus = VA_STATUS_SUCCESS;
         va_infoMessage("User requested driver '%s'\n", driver_name);
     }
 
     if ((VA_STATUS_SUCCESS == vaStatus) && (driver_name != NULL)) {
         vaStatus = va_openDriver(dpy, driver_name);
-        va_infoMessage("va_openDriver() returns %d\n", vaStatus);
+        va_infoMessage("va_openDriver() returns %d, driver_name = %s\n", vaStatus, driver_name);
 
         *major_version = VA_MAJOR_VERSION;
         *minor_version = VA_MINOR_VERSION;
@@ -482,9 +479,6 @@
         va_errorMessage("va_getDriverName() failed with %s,driver_name=%s\n",
                         vaErrorStr(vaStatus), driver_name);
 
-    if (driver_name)
-        free(driver_name);
-    
     VA_TRACE_LOG(va_TraceInitialize, dpy, major_version, minor_version);
 
     return vaStatus;
diff --git a/va/va_trace.c b/va/va_trace.c
index 4eda1ce..e63b7bf 100755
--- a/va/va_trace.c
+++ b/va/va_trace.c
@@ -47,6 +47,8 @@
 #include <time.h>
 #include <errno.h>
 
+#define LIBVA_TRACE_FILE "/data/mediadrm/libva.log"
+
 /*
  * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio:
  * .LIBVA_TRACE=log_file: general VA parameters saved into log_file
@@ -153,7 +155,9 @@
 
 void va_TraceInit(VADisplay dpy)
 {
-    char env_value[1024];
+    char env_value[1024] = {0};
+    // It's used to get value from libva.conf, just use to check value.
+    char va_value[1024] = {0};
     unsigned short suffix = 0xffff & ((unsigned int)time(NULL));
     FILE *tmp;    
     struct trace_context *trace_ctx = calloc(sizeof(struct trace_context), 1);
@@ -161,7 +165,8 @@
     if (trace_ctx == NULL)
         return;
     
-    if (va_parseConfig("LIBVA_TRACE", &env_value[0]) == 0) {
+    if (va_parseConfig("LIBVA_TRACE", &va_value[0]) == 0) {
+        strcpy(env_value, LIBVA_TRACE_FILE);
         FILE_NAME_SUFFIX(env_value);
         trace_ctx->trace_log_fn = strdup(env_value);
         
