target/linux/generic/files/drivers/mtd/nand/mtk_bmt_nmbm.c
static bool nmbm_update_info_table(struct nmbm_instance *ni)
{
	bool success;

	if (ni->protected)
		return true;

	while (ni->block_state_changed || ni->block_mapping_changed) {
		success = nmbm_update_info_table_once(ni, false);
		if (!success) {
			nlog_err(ni, "Failed to update info table\n");
			return false;
		}
	}

	return true;
}
/*
 * nmbm_update_info_table - Update info table
 * @ni: NMBM instance structure
 *
 * Update both main and backup info table. Return true if at least one table
 * has been successfully written.
 * This function will try to update info table repeatedly until no new bad
 * block found during updating.
 */
Update info table
@ni: NMBM instance structure

Update both main and backup info table. Return true if at least one table
has been successfully written.
This function will try to update info table repeatedly until no new bad
block found during updating.
Update info table @ni : NMBM instance structure Update both main and backup info table . Return true if at least one table has been successfully written . This function will try to update info table repeatedly until no new bad block found during updating .
static bool nmbm_update_info_table(struct nmbm_instance *ni)
{
	bool success;
	if (ni->protected)
		return true;
	while (ni->block_state_changed || ni->block_mapping_changed) {
		success = nmbm_update_info_table_once(ni, false);
		if (!success) {
			nlog_err(ni, "Failed to update info table\n");
			return false;
		}
	}
	return true;
}
static bool nmbm_update_info_table ( struct nmbm_instance * ni ) { bool success ; if ( ni -> protected ) return true ; while ( ni -> block_state_changed || ni -> block_mapping_changed ) { success = nmbm_update_info_table_once ( ni , false ) ; if ( ! success ) { nlog_err ( ni , " \n " ) ; return false ; } } return true ; }
nmbm_update_info_table - Update info table
 @ni: NMBM instance structure
nmbm_update_info_table - Update info table @ni : NMBM instance structure