On 11/30/2010 03:33 PM, Vasily Khoruzhick wrote: > On Tuesday 30 November 2010 15:12:37 Lars-Peter Clausen wrote: > >> Hi >> >> While this might work for setting the pullup, what to you want to return in >> get_pull? > > Some custom value like S3C_GPIO_PULL_ENABLED? Well, or we could use a custom setter and getter functions for configuring the pull-ups/downs. > >> The reason why s3c24xx_gpiocfg_default needs to have {get,set}_pull set at >> compile time is that the board init code is called before the cpu init >> code. Which is in my opinion a bit odd and should be fixed instead. > > That's because cpu init code is arch_initcall. Kernel calls mdesc- >> init_machine before any arch_initcall function, not sure if it can be fixed > without massive rework of existing code. Both the cpu init code and the machine init code are run at arch_initcall. > >> If it is not fixed for whatever reason we could fallback to using some sort >> of "cpu_is_s3c2442() ? S3C_GPIO_PULL_UP : S3C_GPIO_PULL_DOWN" > > AFAIK, Ben does not like runtime CPUtype checks > I prefer it over broken code. And you would only need it until the cpu init functions have been run. You would add a wrapper like: s3c24xx_set_pull(...) { if (cpu_is_s3c2442()) s3c_gpio_setpull_1down(...) else s3c_gpio_setpull_1up(...) } And then set s3c24xx_gpiocfg_default.{set,get}_pull to those at compile time. And once the cpu init code runs replace them with either s3c_gpio_setpull_1down or s3c_gpio_setpull_1up depending on the cpu. - Lars -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html