Commit 911c3c5e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull staging driver fixes from Greg KH:
 "Here are a few small staging driver fixes for 5.14-rc5 to resolve some
  reported problems. They include:

   - mt7621 driver fix

   - rtl8723bs driver fixes

   - rtl8712 driver fixes.

  Nothing major, just small problems resolved.

  All have been in linux-next for a while with no reported issues"

* tag 'staging-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  staging: mt7621-pci: avoid to re-disable clock for those pcies not in use
  staging: rtl8712: error handling refactoring
  staging: rtl8712: get rid of flush_scheduled_work
  staging: rtl8723bs: select CONFIG_CRYPTO_LIB_ARC4
  staging: rtl8723bs: Fix a resource leak in sd_int_dpc
parents 6463e54c c7b65650
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -422,7 +422,6 @@ static void mt7621_pcie_init_ports(struct mt7621_pcie *pcie)
			dev_err(dev, "pcie%d no card, disable it (RST & CLK)\n",
				slot);
			mt7621_control_assert(port);
			clk_disable_unprepare(port->clk);
			port->enabled = false;

			if (slot == 0) {
+20 −10
Original line number Diff line number Diff line
@@ -29,21 +29,31 @@
#define FWBUFF_ALIGN_SZ 512
#define MAX_DUMP_FWSZ (48 * 1024)

static void rtl871x_load_fw_fail(struct _adapter *adapter)
{
	struct usb_device *udev = adapter->dvobjpriv.pusbdev;
	struct device *dev = &udev->dev;
	struct device *parent = dev->parent;

	complete(&adapter->rtl8712_fw_ready);

	dev_err(&udev->dev, "r8712u: Firmware request failed\n");

	if (parent)
		device_lock(parent);

	device_release_driver(dev);

	if (parent)
		device_unlock(parent);
}

static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context)
{
	struct _adapter *adapter = context;

	if (!firmware) {
		struct usb_device *udev = adapter->dvobjpriv.pusbdev;
		struct usb_interface *usb_intf = adapter->pusb_intf;

		dev_err(&udev->dev, "r8712u: Firmware request failed\n");
		usb_put_dev(udev);
		usb_set_intfdata(usb_intf, NULL);
		r8712_free_drv_sw(adapter);
		adapter->dvobj_deinit(adapter);
		complete(&adapter->rtl8712_fw_ready);
		free_netdev(adapter->pnetdev);
		rtl871x_load_fw_fail(adapter);
		return;
	}
	adapter->fw = firmware;
+8 −0
Original line number Diff line number Diff line
@@ -1820,3 +1820,11 @@ void LedControl871x(struct _adapter *padapter, enum LED_CTL_MODE LedAction)
		break;
	}
}

void r8712_flush_led_works(struct _adapter *padapter)
{
	struct led_priv *pledpriv = &padapter->ledpriv;

	flush_work(&pledpriv->SwLed0.BlinkWorkItem);
	flush_work(&pledpriv->SwLed1.BlinkWorkItem);
}
+1 −0
Original line number Diff line number Diff line
@@ -112,6 +112,7 @@ struct led_priv {
void r8712_InitSwLeds(struct _adapter *padapter);
void r8712_DeInitSwLeds(struct _adapter *padapter);
void LedControl871x(struct _adapter *padapter, enum LED_CTL_MODE LedAction);
void r8712_flush_led_works(struct _adapter *padapter);

#endif
+8 −0
Original line number Diff line number Diff line
@@ -224,3 +224,11 @@ void r8712_unregister_cmd_alive(struct _adapter *padapter)
	}
	mutex_unlock(&pwrctrl->mutex_lock);
}

void r8712_flush_rwctrl_works(struct _adapter *padapter)
{
	struct pwrctrl_priv *pwrctrl = &padapter->pwrctrlpriv;

	flush_work(&pwrctrl->SetPSModeWorkItem);
	flush_work(&pwrctrl->rpwm_workitem);
}
Loading