mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	staging: most: replace multiple if..else with table lookup
Replace multiple if..else if..statements with simple table lookup in two functions. Signed-off-by: Hari Prasath Gujulan Elango <hgujulan@visteon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									17ac98ac73
								
							
						
					
					
						commit
						e7f2b70fd3
					
				| @ -79,6 +79,14 @@ struct most_inst_obj { | ||||
| 	struct list_head list; | ||||
| }; | ||||
| 
 | ||||
| static const struct { | ||||
| 	int most_ch_data_type; | ||||
| 	char *name; | ||||
| } ch_data_type[] = { { MOST_CH_CONTROL, "control\n" }, | ||||
| 	{ MOST_CH_ASYNC, "async\n" }, | ||||
| 	{ MOST_CH_SYNC, "sync\n" }, | ||||
| 	{ MOST_CH_ISOC_AVP, "isoc_avp\n"} }; | ||||
| 
 | ||||
| #define to_inst_obj(d) container_of(d, struct most_inst_obj, kobj) | ||||
| 
 | ||||
| /**
 | ||||
| @ -409,14 +417,12 @@ static ssize_t show_set_datatype(struct most_c_obj *c, | ||||
| 				 struct most_c_attr *attr, | ||||
| 				 char *buf) | ||||
| { | ||||
| 	if (c->cfg.data_type & MOST_CH_CONTROL) | ||||
| 		return snprintf(buf, PAGE_SIZE, "control\n"); | ||||
| 	else if (c->cfg.data_type & MOST_CH_ASYNC) | ||||
| 		return snprintf(buf, PAGE_SIZE, "async\n"); | ||||
| 	else if (c->cfg.data_type & MOST_CH_SYNC) | ||||
| 		return snprintf(buf, PAGE_SIZE, "sync\n"); | ||||
| 	else if (c->cfg.data_type & MOST_CH_ISOC_AVP) | ||||
| 		return snprintf(buf, PAGE_SIZE, "isoc_avp\n"); | ||||
| 	int i; | ||||
| 
 | ||||
| 	for (i = 0; i < ARRAY_SIZE(ch_data_type); i++) { | ||||
| 		if (c->cfg.data_type & ch_data_type[i].most_ch_data_type) | ||||
| 			return snprintf(buf, PAGE_SIZE, ch_data_type[i].name); | ||||
| 	} | ||||
| 	return snprintf(buf, PAGE_SIZE, "unconfigured\n"); | ||||
| } | ||||
| 
 | ||||
| @ -425,15 +431,16 @@ static ssize_t store_set_datatype(struct most_c_obj *c, | ||||
| 				  const char *buf, | ||||
| 				  size_t count) | ||||
| { | ||||
| 	if (!strcmp(buf, "control\n")) { | ||||
| 		c->cfg.data_type = MOST_CH_CONTROL; | ||||
| 	} else if (!strcmp(buf, "async\n")) { | ||||
| 		c->cfg.data_type = MOST_CH_ASYNC; | ||||
| 	} else if (!strcmp(buf, "sync\n")) { | ||||
| 		c->cfg.data_type = MOST_CH_SYNC; | ||||
| 	} else if (!strcmp(buf, "isoc_avp\n")) { | ||||
| 		c->cfg.data_type = MOST_CH_ISOC_AVP; | ||||
| 	} else { | ||||
| 	int i; | ||||
| 
 | ||||
| 	for (i = 0; i < ARRAY_SIZE(ch_data_type); i++) { | ||||
| 		if (!strcmp(buf, ch_data_type[i].name)) { | ||||
| 			c->cfg.data_type = ch_data_type[i].most_ch_data_type; | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if (i == ARRAY_SIZE(ch_data_type)) { | ||||
| 		pr_info("WARN: invalid attribute settings\n"); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Hari Prasath Gujulan Elango
						Hari Prasath Gujulan Elango