Merge branch 'for_2.6.38/pm-fixes' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into devel-fixes

+15 -18
+15 -18
arch/arm/mach-omap2/smartreflex.c
··· 282 dev_err(&sr_info->pdev->dev, "%s: ERROR in registering" 283 "interrupt handler. Smartreflex will" 284 "not function as desired\n", __func__); 285 kfree(sr_info); 286 return ret; 287 } ··· 880 ret = sr_late_init(sr_info); 881 if (ret) { 882 pr_warning("%s: Error in SR late init\n", __func__); 883 - return ret; 884 } 885 } 886 ··· 891 * not try to create rest of the debugfs entries. 892 */ 893 vdd_dbg_dir = omap_voltage_get_dbgdir(sr_info->voltdm); 894 - if (!vdd_dbg_dir) 895 - return -EINVAL; 896 897 dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir); 898 if (IS_ERR(dbg_dir)) { 899 dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n", 900 __func__); 901 - return PTR_ERR(dbg_dir); 902 } 903 904 (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, dbg_dir, ··· 917 if (IS_ERR(nvalue_dir)) { 918 dev_err(&pdev->dev, "%s: Unable to create debugfs directory" 919 "for n-values\n", __func__); 920 - return PTR_ERR(nvalue_dir); 921 } 922 923 omap_voltage_get_volttable(sr_info->voltdm, &volt_data); ··· 927 " corresponding vdd vdd_%s. Cannot create debugfs" 928 "entries for n-values\n", 929 __func__, sr_info->voltdm->name); 930 - return -ENODATA; 931 } 932 933 for (i = 0; i < sr_info->nvalue_count; i++) { 934 - char *name; 935 - char volt_name[32]; 936 937 - name = kzalloc(NVALUE_NAME_LEN + 1, GFP_KERNEL); 938 - if (!name) { 939 - dev_err(&pdev->dev, "%s: Unable to allocate memory" 940 - " for n-value directory name\n", __func__); 941 - return -ENOMEM; 942 - } 943 - 944 - strcpy(name, "volt_"); 945 - sprintf(volt_name, "%d", volt_data[i].volt_nominal); 946 - strcat(name, volt_name); 947 (void) debugfs_create_x32(name, S_IRUGO | S_IWUSR, nvalue_dir, 948 &(sr_info->nvalue_table[i].nvalue)); 949 }
··· 282 dev_err(&sr_info->pdev->dev, "%s: ERROR in registering" 283 "interrupt handler. Smartreflex will" 284 "not function as desired\n", __func__); 285 + kfree(name); 286 kfree(sr_info); 287 return ret; 288 } ··· 879 ret = sr_late_init(sr_info); 880 if (ret) { 881 pr_warning("%s: Error in SR late init\n", __func__); 882 + goto err_release_region; 883 } 884 } 885 ··· 890 * not try to create rest of the debugfs entries. 891 */ 892 vdd_dbg_dir = omap_voltage_get_dbgdir(sr_info->voltdm); 893 + if (!vdd_dbg_dir) { 894 + ret = -EINVAL; 895 + goto err_release_region; 896 + } 897 898 dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir); 899 if (IS_ERR(dbg_dir)) { 900 dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n", 901 __func__); 902 + ret = PTR_ERR(dbg_dir); 903 + goto err_release_region; 904 } 905 906 (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, dbg_dir, ··· 913 if (IS_ERR(nvalue_dir)) { 914 dev_err(&pdev->dev, "%s: Unable to create debugfs directory" 915 "for n-values\n", __func__); 916 + ret = PTR_ERR(nvalue_dir); 917 + goto err_release_region; 918 } 919 920 omap_voltage_get_volttable(sr_info->voltdm, &volt_data); ··· 922 " corresponding vdd vdd_%s. Cannot create debugfs" 923 "entries for n-values\n", 924 __func__, sr_info->voltdm->name); 925 + ret = -ENODATA; 926 + goto err_release_region; 927 } 928 929 for (i = 0; i < sr_info->nvalue_count; i++) { 930 + char name[NVALUE_NAME_LEN + 1]; 931 932 + snprintf(name, sizeof(name), "volt_%d", 933 + volt_data[i].volt_nominal); 934 (void) debugfs_create_x32(name, S_IRUGO | S_IWUSR, nvalue_dir, 935 &(sr_info->nvalue_table[i].nvalue)); 936 }