clockdomain.c (08cb9703e2922db297d8f83ec110bde37823e021) | clockdomain.c (a5ffef6af127721a813d70f87cd8cc348ea9d6ab) |
---|---|
1/* 2 * OMAP2/3/4 clockdomain framework functions 3 * 4 * Copyright (C) 2008-2011 Texas Instruments, Inc. 5 * Copyright (C) 2008-2011 Nokia Corporation 6 * 7 * Written by Paul Walmsley and Jouni Högander 8 * Added OMAP4 specific support by Abhijit Pagare <abhijitpagare@ti.com> --- 59 unchanged lines hidden (view full) --- 68 */ 69static int _clkdm_register(struct clockdomain *clkdm) 70{ 71 struct powerdomain *pwrdm; 72 73 if (!clkdm || !clkdm->name) 74 return -EINVAL; 75 | 1/* 2 * OMAP2/3/4 clockdomain framework functions 3 * 4 * Copyright (C) 2008-2011 Texas Instruments, Inc. 5 * Copyright (C) 2008-2011 Nokia Corporation 6 * 7 * Written by Paul Walmsley and Jouni Högander 8 * Added OMAP4 specific support by Abhijit Pagare <abhijitpagare@ti.com> --- 59 unchanged lines hidden (view full) --- 68 */ 69static int _clkdm_register(struct clockdomain *clkdm) 70{ 71 struct powerdomain *pwrdm; 72 73 if (!clkdm || !clkdm->name) 74 return -EINVAL; 75 |
76 if (!omap_chip_is(clkdm->omap_chip)) 77 return -EINVAL; 78 | |
79 pwrdm = pwrdm_lookup(clkdm->pwrdm.name); 80 if (!pwrdm) { 81 pr_err("clockdomain: %s: powerdomain %s does not exist\n", 82 clkdm->name, clkdm->pwrdm.name); 83 return -EINVAL; 84 } 85 clkdm->pwrdm.ptr = pwrdm; 86 --- 13 unchanged lines hidden (view full) --- 100} 101 102/* _clkdm_deps_lookup - look up the specified clockdomain in a clkdm list */ 103static struct clkdm_dep *_clkdm_deps_lookup(struct clockdomain *clkdm, 104 struct clkdm_dep *deps) 105{ 106 struct clkdm_dep *cd; 107 | 76 pwrdm = pwrdm_lookup(clkdm->pwrdm.name); 77 if (!pwrdm) { 78 pr_err("clockdomain: %s: powerdomain %s does not exist\n", 79 clkdm->name, clkdm->pwrdm.name); 80 return -EINVAL; 81 } 82 clkdm->pwrdm.ptr = pwrdm; 83 --- 13 unchanged lines hidden (view full) --- 97} 98 99/* _clkdm_deps_lookup - look up the specified clockdomain in a clkdm list */ 100static struct clkdm_dep *_clkdm_deps_lookup(struct clockdomain *clkdm, 101 struct clkdm_dep *deps) 102{ 103 struct clkdm_dep *cd; 104 |
108 if (!clkdm || !deps || !omap_chip_is(clkdm->omap_chip)) | 105 if (!clkdm || !deps) |
109 return ERR_PTR(-EINVAL); 110 111 for (cd = deps; cd->clkdm_name; cd++) { | 106 return ERR_PTR(-EINVAL); 107 108 for (cd = deps; cd->clkdm_name; cd++) { |
112 if (!omap_chip_is(cd->omap_chip)) 113 continue; 114 | |
115 if (!cd->clkdm && cd->clkdm_name) 116 cd->clkdm = _clkdm_lookup(cd->clkdm_name); 117 118 if (cd->clkdm == clkdm) 119 break; 120 } 121 122 if (!cd->clkdm_name) --- 20 unchanged lines hidden (view full) --- 143 */ 144static void _autodep_lookup(struct clkdm_autodep *autodep) 145{ 146 struct clockdomain *clkdm; 147 148 if (!autodep) 149 return; 150 | 109 if (!cd->clkdm && cd->clkdm_name) 110 cd->clkdm = _clkdm_lookup(cd->clkdm_name); 111 112 if (cd->clkdm == clkdm) 113 break; 114 } 115 116 if (!cd->clkdm_name) --- 20 unchanged lines hidden (view full) --- 137 */ 138static void _autodep_lookup(struct clkdm_autodep *autodep) 139{ 140 struct clockdomain *clkdm; 141 142 if (!autodep) 143 return; 144 |
151 if (!omap_chip_is(autodep->omap_chip)) 152 return; 153 | |
154 clkdm = clkdm_lookup(autodep->clkdm.name); 155 if (!clkdm) { 156 pr_err("clockdomain: autodeps: clockdomain %s does not exist\n", 157 autodep->clkdm.name); 158 clkdm = ERR_PTR(-ENOENT); 159 } 160 autodep->clkdm.ptr = clkdm; 161} --- 15 unchanged lines hidden (view full) --- 177 178 if (!autodeps || clkdm->flags & CLKDM_NO_AUTODEPS) 179 return; 180 181 for (autodep = autodeps; autodep->clkdm.ptr; autodep++) { 182 if (IS_ERR(autodep->clkdm.ptr)) 183 continue; 184 | 145 clkdm = clkdm_lookup(autodep->clkdm.name); 146 if (!clkdm) { 147 pr_err("clockdomain: autodeps: clockdomain %s does not exist\n", 148 autodep->clkdm.name); 149 clkdm = ERR_PTR(-ENOENT); 150 } 151 autodep->clkdm.ptr = clkdm; 152} --- 15 unchanged lines hidden (view full) --- 168 169 if (!autodeps || clkdm->flags & CLKDM_NO_AUTODEPS) 170 return; 171 172 for (autodep = autodeps; autodep->clkdm.ptr; autodep++) { 173 if (IS_ERR(autodep->clkdm.ptr)) 174 continue; 175 |
185 if (!omap_chip_is(autodep->omap_chip)) 186 continue; 187 | |
188 pr_debug("clockdomain: adding %s sleepdep/wkdep for " 189 "clkdm %s\n", autodep->clkdm.ptr->name, 190 clkdm->name); 191 192 clkdm_add_sleepdep(clkdm, autodep->clkdm.ptr); 193 clkdm_add_wkdep(clkdm, autodep->clkdm.ptr); 194 } 195} --- 15 unchanged lines hidden (view full) --- 211 212 if (!autodeps || clkdm->flags & CLKDM_NO_AUTODEPS) 213 return; 214 215 for (autodep = autodeps; autodep->clkdm.ptr; autodep++) { 216 if (IS_ERR(autodep->clkdm.ptr)) 217 continue; 218 | 176 pr_debug("clockdomain: adding %s sleepdep/wkdep for " 177 "clkdm %s\n", autodep->clkdm.ptr->name, 178 clkdm->name); 179 180 clkdm_add_sleepdep(clkdm, autodep->clkdm.ptr); 181 clkdm_add_wkdep(clkdm, autodep->clkdm.ptr); 182 } 183} --- 15 unchanged lines hidden (view full) --- 199 200 if (!autodeps || clkdm->flags & CLKDM_NO_AUTODEPS) 201 return; 202 203 for (autodep = autodeps; autodep->clkdm.ptr; autodep++) { 204 if (IS_ERR(autodep->clkdm.ptr)) 205 continue; 206 |
219 if (!omap_chip_is(autodep->omap_chip)) 220 continue; 221 | |
222 pr_debug("clockdomain: removing %s sleepdep/wkdep for " 223 "clkdm %s\n", autodep->clkdm.ptr->name, 224 clkdm->name); 225 226 clkdm_del_sleepdep(clkdm, autodep->clkdm.ptr); 227 clkdm_del_wkdep(clkdm, autodep->clkdm.ptr); 228 } 229} --- 8 unchanged lines hidden (view full) --- 238 * No return value. 239 */ 240static void _resolve_clkdm_deps(struct clockdomain *clkdm, 241 struct clkdm_dep *clkdm_deps) 242{ 243 struct clkdm_dep *cd; 244 245 for (cd = clkdm_deps; cd && cd->clkdm_name; cd++) { | 207 pr_debug("clockdomain: removing %s sleepdep/wkdep for " 208 "clkdm %s\n", autodep->clkdm.ptr->name, 209 clkdm->name); 210 211 clkdm_del_sleepdep(clkdm, autodep->clkdm.ptr); 212 clkdm_del_wkdep(clkdm, autodep->clkdm.ptr); 213 } 214} --- 8 unchanged lines hidden (view full) --- 223 * No return value. 224 */ 225static void _resolve_clkdm_deps(struct clockdomain *clkdm, 226 struct clkdm_dep *clkdm_deps) 227{ 228 struct clkdm_dep *cd; 229 230 for (cd = clkdm_deps; cd && cd->clkdm_name; cd++) { |
246 if (!omap_chip_is(cd->omap_chip)) 247 continue; | |
248 if (cd->clkdm) 249 continue; 250 cd->clkdm = _clkdm_lookup(cd->clkdm_name); 251 252 WARN(!cd->clkdm, "clockdomain: %s: could not find clkdm %s while resolving dependencies - should never happen", 253 clkdm->name, cd->clkdm_name); 254 } 255} --- 837 unchanged lines hidden --- | 231 if (cd->clkdm) 232 continue; 233 cd->clkdm = _clkdm_lookup(cd->clkdm_name); 234 235 WARN(!cd->clkdm, "clockdomain: %s: could not find clkdm %s while resolving dependencies - should never happen", 236 clkdm->name, cd->clkdm_name); 237 } 238} --- 837 unchanged lines hidden --- |