Based on the discussion in the mailing list, I have taken some suggestions and am reposting the patch. In this two part patchset: a) the first patch introduces a new enum type for identifying different OPP types. This helps in encapsulating the actual pointers to the respective OPP lists inside the OPP layer itself. One can now interact with the OPP layer by passing the appropriate OPP enum type instead of the actual pointer to the OPP list. b) the second patch is for the OPP layer to return NULL pointer (instead of ERR_PTR) when the return type of the API is struct omap_opp * Signed-off-by: Romit Dasgupta <romit@xxxxxx> --- arch/arm/mach-omap2/pm34xx.c | 15 -- arch/arm/mach-omap2/resource34xx.c | 86 ++++++---------- arch/arm/mach-omap2/smartreflex.c | 33 +----- arch/arm/plat-omap/common.c | 6 - arch/arm/plat-omap/cpu-omap.c | 12 +- arch/arm/plat-omap/include/plat/opp.h | 58 +++++----- arch/arm/plat-omap/omap-pm-noop.c | 4 arch/arm/plat-omap/omap-pm-srf.c | 4 arch/arm/plat-omap/opp.c | 127 ++++++++++++++++-------- 9 files changed, 170 insertions(+), 175 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html