Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e924fec authored by John W. Linville's avatar John W. Linville
Browse files

Merge branch 'master' of...

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
parents dd03cff2 2d4524ac
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -139,7 +139,9 @@ void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
		bcma_chipco_chipctl_maskset(cc, 0, ~0, 0x7);
		break;
	case 0x4331:
		/* BCM4331 workaround is SPROM-related, we put it in sprom.c */
	case 43431:
		/* Ext PA lines must be enabled for tx on BCM4331 */
		bcma_chipco_bcm4331_ext_pa_lines_ctl(cc, true);
		break;
	case 43224:
		if (bus->chipinfo.rev == 0) {
+2 −2
Original line number Diff line number Diff line
@@ -579,13 +579,13 @@ int bcma_sprom_get(struct bcma_bus *bus)
	if (!sprom)
		return -ENOMEM;

	if (bus->chipinfo.id == 0x4331)
	if (bus->chipinfo.id == 0x4331 || bus->chipinfo.id == 43431)
		bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, false);

	pr_debug("SPROM offset 0x%x\n", offset);
	bcma_sprom_read(bus, offset, sprom);

	if (bus->chipinfo.id == 0x4331)
	if (bus->chipinfo.id == 0x4331 || bus->chipinfo.id == 43431)
		bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, true);

	err = bcma_sprom_valid(sprom);
+2 −2
Original line number Diff line number Diff line
@@ -89,9 +89,9 @@ int brcmf_sdio_intr_register(struct brcmf_sdio_dev *sdiodev)
	data |= 1 << SDIO_FUNC_1 | 1 << SDIO_FUNC_2 | 1;
	brcmf_sdio_regwb(sdiodev, SDIO_CCCR_IENx, data, &ret);

	/* redirect, configure ane enable io for interrupt signal */
	/* redirect, configure and enable io for interrupt signal */
	data = SDIO_SEPINT_MASK | SDIO_SEPINT_OE;
	if (sdiodev->irq_flags | IRQF_TRIGGER_HIGH)
	if (sdiodev->irq_flags & IRQF_TRIGGER_HIGH)
		data |= SDIO_SEPINT_ACT_HI;
	brcmf_sdio_regwb(sdiodev, SDIO_CCCR_BRCM_SEPINT, data, &ret);

+7 −2
Original line number Diff line number Diff line
@@ -861,13 +861,18 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)

	/* We have our copies now, allow OS release its copies */
	release_firmware(ucode_raw);
	complete(&drv->request_firmware_complete);

	drv->op_mode = iwl_dvm_ops.start(drv->trans, drv->cfg, &drv->fw);

	if (!drv->op_mode)
		goto out_free_fw;
		goto out_unbind;

	/*
	 * Complete the firmware request last so that
	 * a driver unbind (stop) doesn't run while we
	 * are doing the start() above.
	 */
	complete(&drv->request_firmware_complete);
	return;

 try_again:
+9 −9
Original line number Diff line number Diff line
@@ -568,28 +568,28 @@ static int iwl_find_otp_image(struct iwl_trans *trans,
 * iwl_get_max_txpower_avg - get the highest tx power from all chains.
 *     find the highest tx power from all chains for the channel
 */
static s8 iwl_get_max_txpower_avg(const struct iwl_cfg *cfg,
static s8 iwl_get_max_txpower_avg(struct iwl_priv *priv,
		struct iwl_eeprom_enhanced_txpwr *enhanced_txpower,
		int element, s8 *max_txpower_in_half_dbm)
{
	s8 max_txpower_avg = 0; /* (dBm) */

	/* Take the highest tx power from any valid chains */
	if ((cfg->valid_tx_ant & ANT_A) &&
	if ((priv->hw_params.valid_tx_ant & ANT_A) &&
	    (enhanced_txpower[element].chain_a_max > max_txpower_avg))
		max_txpower_avg = enhanced_txpower[element].chain_a_max;
	if ((cfg->valid_tx_ant & ANT_B) &&
	if ((priv->hw_params.valid_tx_ant & ANT_B) &&
	    (enhanced_txpower[element].chain_b_max > max_txpower_avg))
		max_txpower_avg = enhanced_txpower[element].chain_b_max;
	if ((cfg->valid_tx_ant & ANT_C) &&
	if ((priv->hw_params.valid_tx_ant & ANT_C) &&
	    (enhanced_txpower[element].chain_c_max > max_txpower_avg))
		max_txpower_avg = enhanced_txpower[element].chain_c_max;
	if (((cfg->valid_tx_ant == ANT_AB) |
	    (cfg->valid_tx_ant == ANT_BC) |
	    (cfg->valid_tx_ant == ANT_AC)) &&
	if (((priv->hw_params.valid_tx_ant == ANT_AB) |
	    (priv->hw_params.valid_tx_ant == ANT_BC) |
	    (priv->hw_params.valid_tx_ant == ANT_AC)) &&
	    (enhanced_txpower[element].mimo2_max > max_txpower_avg))
		max_txpower_avg =  enhanced_txpower[element].mimo2_max;
	if ((cfg->valid_tx_ant == ANT_ABC) &&
	if ((priv->hw_params.valid_tx_ant == ANT_ABC) &&
	    (enhanced_txpower[element].mimo3_max > max_txpower_avg))
		max_txpower_avg = enhanced_txpower[element].mimo3_max;

@@ -691,7 +691,7 @@ static void iwl_eeprom_enhanced_txpower(struct iwl_priv *priv)
				 ((txp->delta_20_in_40 & 0xf0) >> 4),
				 (txp->delta_20_in_40 & 0x0f));

		max_txp_avg = iwl_get_max_txpower_avg(priv->cfg, txp_array, idx,
		max_txp_avg = iwl_get_max_txpower_avg(priv, txp_array, idx,
						      &max_txp_avg_halfdbm);

		/*
Loading