/* ks_set_grpaddr - set multicast information @ks : The chip information  */
static void ks_set_grpaddr(struct ks_net *ks)
/* ks_set_grpaddr - set multicast information @ks : The chip information  */
static void ks_set_grpaddr(struct ks_net *ks)
{
	u8	i;
	u32	index, position, value;
	memset(ks->mcast_bits, 0, sizeof(u8) * HW_MCAST_SIZE);
	for (i = 0; i < ks->mcast_lst_size; i++) {
		position = (ether_gen_crc(6, ks->mcast_lst[i]) >> 26) & 0x3f;
		index = position >> 3;
		value = 1 << (position & 7);
		ks->mcast_bits[index] |= (u8)value;
	}
	for (i  = 0; i < HW_MCAST_SIZE; i++) {
		if (i & 1) {
			ks_wrreg16(ks, (u16)((KS_MAHTR0 + i) & ~1),
				(ks->mcast_bits[i] << 8) |
				ks->mcast_bits[i - 1]);
		}
	}
}