static int set_h2w_path(const char *val, struct kernel_param *kp) { int ret = -EINVAL; int enable; ret = param_set_int(val, kp); if (ret) return ret; switch (hero_h2w_path) { case H2W_GPIO: enable = 1; cnf_driver_event("H2W_enable_irq", &enable); break; case H2W_UART3: enable = 0; cnf_driver_event("H2W_enable_irq", &enable); break; default: hero_h2w_path = -1; return -EINVAL; } h2w_configure(hero_h2w_path); return ret; }
static int set_h2w_path(const char *val, struct kernel_param *kp) { int ret = -EINVAL; int enable; int current_h2w_path = bahamas_h2w_path; ret = param_set_int(val, kp); if (ret) return ret; if (bahamas_h2w_path == current_h2w_path) { printk(KERN_INFO "%s: H2W path has been set to %s\n", __func__, (bahamas_h2w_path == H2W_UART3) ? "UART3" : "GPIO"); return ret; } switch (bahamas_h2w_path) { case H2W_GPIO: enable = 1; cnf_driver_event("H2W_enable_irq", &enable); break; case H2W_UART3: enable = 0; cnf_driver_event("H2W_enable_irq", &enable); break; default: bahamas_h2w_path = -1; return -EINVAL; } h2w_configure(bahamas_h2w_path); return ret; }
static void h2w_defconfig(void) { h2w_configure(H2W_GPIO); }