Ejemplo n.º 1
0
static void rt2400pci_config_intf(struct rt2x00_dev *rt2x00dev,
				  struct rt2x00_intf *intf,
				  struct rt2x00intf_conf *conf,
				  const unsigned int flags)
{
	unsigned int bcn_preload;
	u32 reg;

	if (flags & CONFIG_UPDATE_TYPE) {
		/*
		 * Enable beacon config
		 */
		bcn_preload = PREAMBLE + GET_DURATION(IEEE80211_HEADER, 20);
		rt2x00pci_register_read(rt2x00dev, BCNCSR1, &reg);
		rt2x00_set_field32(&reg, BCNCSR1_PRELOAD, bcn_preload);
		rt2x00pci_register_write(rt2x00dev, BCNCSR1, reg);

		/*
		 * Enable synchronisation.
		 */
		rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
		rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
		rt2x00_set_field32(&reg, CSR14_TSF_SYNC, conf->sync);
		rt2x00_set_field32(&reg, CSR14_TBCN, 1);
		rt2x00pci_register_write(rt2x00dev, CSR14, reg);
	}

	if (flags & CONFIG_UPDATE_MAC)
		rt2x00pci_register_multiwrite(rt2x00dev, CSR3,
					      conf->mac, sizeof(conf->mac));

	if (flags & CONFIG_UPDATE_BSSID)
		rt2x00pci_register_multiwrite(rt2x00dev, CSR5,
					      conf->bssid, sizeof(conf->bssid));
}
Ejemplo n.º 2
0
static int rt2800pci_write_firmware(struct rt2x00_dev *rt2x00dev,
                                    const u8 *data, const size_t len)
{
    u32 reg;

    /*
     * enable Host program ram write selection
     */
    reg = 0;
    rt2x00_set_field32(&reg, PBF_SYS_CTRL_HOST_RAM_WRITE, 1);
    rt2x00pci_register_write(rt2x00dev, PBF_SYS_CTRL, reg);

    /*
     * Write firmware to device.
     */
    rt2x00pci_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE,
                                  data, len);

    rt2x00pci_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000);
    rt2x00pci_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00001);

    rt2x00pci_register_write(rt2x00dev, H2M_BBP_AGENT, 0);
    rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0);

    return 0;
}
Ejemplo n.º 3
0
static void rt2400pci_config_bssid(struct rt2x00_dev *rt2x00dev,
				   __le32 *bssid)
{
	rt2x00pci_register_multiwrite(rt2x00dev, CSR5, bssid,
				      (2 * sizeof(__le32)));
}
Ejemplo n.º 4
0
/*
 * Configuration handlers.
 */
static void rt2400pci_config_mac_addr(struct rt2x00_dev *rt2x00dev,
				      __le32 *mac)
{
	rt2x00pci_register_multiwrite(rt2x00dev, CSR3, mac,
				      (2 * sizeof(__le32)));
}