1. 18 5月, 2018 3 次提交
  2. 02 4月, 2018 1 次提交
  3. 01 4月, 2018 8 次提交
  4. 16 3月, 2018 2 次提交
    • H
      Bluetooth: hci_bcm: Set pulsed_host_wake flag in sleep parameters · e07c99b0
      Hans de Goede 提交于
      The IRQ output of the bcm bt-device is really a level IRQ signal, which
      signals a logical high as long as the device's buffer contains data. Since
      the draining in the buffer is done in the tty driver, we cannot (easily)
      wait in a threaded interrupt handler for the draining, after which the
      IRQ should go low again.
      
      So instead we treat the IRQ as an edge interrupt. This opens the window
      for a theoretical race where we wakeup, read some data and then autosuspend
      *before* the IRQ has gone (logical) low, followed by the device just at
      that moment receiving more data, causing the IRQ to stay high and we never
      see an edge.
      
      Since we call pm_runtime_mark_last_busy() on every received byte, there
      should be plenty time for the IRQ to go (logical) low before we ever
      suspend, so this should never happen, but after commit 43fff768
      ("Bluetooth: hci_bcm: Streamline runtime PM code"), which has been reverted
      since, this was actually happening causing the device to get stuck in
      runtime suspend.
      
      The bcm bt-device actually has a workaround for this, if we set the
      pulsed_host_wake flag in the sleep parameters, then the device monitors
      if the host is draining the buffer and if not then after a timeout the
      device will pulse the IRQ line, causing us to see an edge, fixing the
      stuck in suspend condition.
      
      This commit sets the pulsed_host_wake flag to fix the (mostly theoretical)
      race caused by us treating the IRQ as an edge IRQ.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Reviewed-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      e07c99b0
    • H
      Revert "Bluetooth: hci_bcm: Streamline runtime PM code" · b09c6152
      Hans de Goede 提交于
      This reverts commit 43fff768 ("Bluetooth: hci_bcm: Streamline runtime
      PM code"). The commit msg for this commit states "No functional change
      intended.", but replacing:
      
       pm_runtime_get();
       pm_runtime_mark_last_busy();
       pm_runtime_put_autosuspend();
      
      with:
      
       pm_request_resume();
      
      Does result in a functional change, pm_request_resume() only calls
      pm_runtime_mark_last_busy() if the device was suspended before the call.
      
      This results in the following happening:
      
      1) Device is runtime suspended
      2) Device drives host_wake IRQ logically high as it starts receiving data
      3) bcm_host_wake() gets called, causes the device to runtime-resume,
         current time gets marked as last_busy time
      4) After 5 seconds the autosuspend timer expires and the dev autosuspends
         as no one has been calling pm_runtime_mark_last_busy(), the device was
         resumed during those 5 seconds, so all the pm_request_resume() calls
         while receiving data and/or bcm_host_wake() calls were nops
      5) If 4) happens while the device has (just received) data in its buffer to
         be read by the host the IRQ line is *already* / still logically high
         when we autosuspend and since we use an edge triggered IRQ, the IRQ
         will never trigger, causing the device to get stuck in suspend
      
      Therefor this commit has to be reverted, so that we avoid the device
      getting stuck in suspend.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      b09c6152
  5. 26 2月, 2018 1 次提交
  6. 22 1月, 2018 1 次提交
  7. 11 1月, 2018 13 次提交
    • L
      Bluetooth: btbcm: Fix sleep mode struct ordering · ff875960
      Lukas Wunner 提交于
      According to the documentation for Laird SD40 radio modules (which use
      the BCM4329 chipset), the order of the Enable_BREAK_To_Host and
      Pulsed_HOST_WAKE parameters in the sleep mode struct is reversed
      vis-à-vis our struct declaration.  See page 46 of this PDF:
      
      http://cdn.lairdtech.com/home/brandworld/files/Application%20Note%20-%2040%20Series%20Bluetooth.pdf
      
      The documentation is dated Oct 2015, so fairly recent, making it appear
      more likely that the documentation is correct and our code is wrong.
      Amend our code to be in congruence with the documentation.
      
      Cc: Sue White <sue.white@lairdtech.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      ff875960
    • L
      Bluetooth: hci_bcm: Sleep instead of spinning · e4b9e5b8
      Lukas Wunner 提交于
      The driver calls mdelay(15) in the ->suspend, ->resume, ->runtime_suspend
      and ->runtime_resume hook, however spinning for such a long period of
      time is discouraged as per Documentation/timers/timers-howto.txt.
      
      The use of mdelay() seems unnecessary, it is allowed to sleep in the
      system sleep and runtime PM hooks (with the exception of ->suspend_noirq
      and ->resume_noirq) and the driver itself also does not rely on a
      non-sleeping ->runtime_resume as the only place where a synchronous
      resume is performed, in bcm_dequeue(), is called from a work item in
      hci_ldisc.c and hci_serdev.c.
      
      So replace the mdelay(15) with msleep(15).
      
      Note that the delay is inserted after asserting or deasserting the
      device wake pin, but in bcm_gpio_set_power() that pin is asserted or
      deasserted *without* observing a delay.  It is thus unclear if the delay
      is necessary at all.  It is likewise unclear why it is exactly 15 ms,
      the commit introducing it, 118612fb ("Bluetooth: hci_bcm: Add
      suspend/resume PM functions"), does not provide a rationale.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Suggested-and-reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      e4b9e5b8
    • L
      Bluetooth: hci_bcm: Silence IRQ printk · 5954cdf1
      Lukas Wunner 提交于
      The host wake IRQ is optional, but if none is found, "BCM irq: -22" is
      logged which may irritate users.  This is really a debug message, so use
      dev_dbg() instead of dev_info().  If users are interested in the IRQ,
      they can always consult /proc/interrupts.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      5954cdf1
    • L
      Bluetooth: hci_bcm: Support Apple GPIO handling · 4c33162c
      Lukas Wunner 提交于
      Enable Bluetooth on the following Macs which provide custom ACPI methods
      to toggle the GPIOs for device wake and shutdown instead of accessing
      the pins directly:
      
          MacBook8,1     2015  12"
          MacBook9,1     2016  12"
          MacBook10,1    2017  12"
          MacBookPro13,1 2016  13"
          MacBookPro13,2 2016  13" with Touch Bar
          MacBookPro13,3 2016  15" with Touch Bar
          MacBookPro14,1 2017  13"
          MacBookPro14,2 2017  13" with Touch Bar
          MacBookPro14,3 2017  15" with Touch Bar
      
      On the MacBook8,1 Bluetooth is muxed with a second device (a debug port
      on the SSD) under the control of PCH GPIO 36.  Because serdev cannot
      deal with multiple slaves yet, it is currently necessary to patch the
      DSDT and remove the SSDC device.
      
      The custom ACPI methods are called:
      
          BTLP (Low Power) takes one argument, toggles device wake GPIO
          BTPU (Power Up) tells SMC to drive shutdown GPIO high
          BTPD (Power Down) tells SMC to drive shutdown GPIO low
          BTRS (Reset) calls BTPD followed by BTPU
          BTRB unknown, not present on all MacBooks
      
      Search for the BTLP, BTPU and BTPD methods on ->probe and cache them in
      struct bcm_device if the machine is a Mac.
      
      Additionally, set the init_speed based on a custom device property
      provided by Apple in lieu of _CRS resources.  The Broadcom UART's speed
      is fixed on Apple Macs:  Any attempt to change it results in Bluetooth
      status code 0x0c and bcm_set_baudrate() thus always returns -EBUSY.
      By setting only the init_speed and leaving oper_speed at zero, we can
      achieve that the host UART's speed is adjusted but the Broadcom UART's
      speed is left as is.
      
      The host wake pin goes into the SMC which handles it independently
      of the OS, so there's no IRQ for it.
      
      Thanks to Ronald Tschalär who did extensive debugging and testing of
      this patch and contributed fixes.
      
      ACPI snippet containing the custom methods and device properties
      (taken from a MacBook8,1):
      
          Method (BTLP, 1, Serialized)
          {
              If (LEqual (Arg0, 0x00))
              {
                  Store (0x01, GD54) /* set PCH GPIO 54 direction to input */
              }
      
              If (LEqual (Arg0, 0x01))
              {
                  Store (0x00, GD54) /* set PCH GPIO 54 direction to output */
                  Store (0x00, GP54) /* set PCH GPIO 54 value to low */
              }
          }
      
          Method (BTPU, 0, Serialized)
          {
              Store (0x01, \_SB.PCI0.LPCB.EC.BTPC)
              Sleep (0x0A)
          }
      
          Method (BTPD, 0, Serialized)
          {
              Store (0x00, \_SB.PCI0.LPCB.EC.BTPC)
              Sleep (0x0A)
          }
      
          Method (BTRS, 0, Serialized)
          {
              BTPD ()
              BTPU ()
          }
      
          Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
          {
              If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
              {
                  Store (Package (0x08)
                      {
                          "baud",
                          Buffer (0x08)
                          { 0xC0, 0xC6, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00 },
      
                          "parity",
                          Buffer (0x08)
                          { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
      
                          "dataBits",
                          Buffer (0x08)
                          { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
      
                          "stopBits",
                          Buffer (0x08)
                          { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
                      }, Local0)
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
              }
              Return (0x00)
          }
      
      Link: https://github.com/Dunedan/mbp-2016-linux/issues/29
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=110901Reported-by: NLeif Liddy <leif.liddy@gmail.com>
      Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Cc: Loic Poulain <loic.poulain@linaro.org>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Tested-by: Max Shavrick <mxms@me.com>                     [MacBook8,1]
      Tested-by: Leif Liddy <leif.liddy@gmail.com>              [MacBook9,1]
      Tested-by: Daniel Roschka <danielroschka@phoenitydawn.de> [MacBookPro13,2]
      Tested-by: Ronald Tschalär <ronald@innovation.ch>         [MacBookPro13,3]
      Tested-by: Peter Y. Chuang <peteryuchuang@gmail.com>      [MacBookPro14,1]
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NRonald Tschalär <ronald@innovation.ch>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      4c33162c
    • L
      Bluetooth: hci_bcm: Handle errors properly · 8bfa7e1e
      Lukas Wunner 提交于
      A significant portion of this driver lacks error handling.  As a first
      step, add error paths to bcm_gpio_set_power(), bcm_open(), bcm_close(),
      bcm_suspend_device(), bcm_resume_device(), bcm_resume(), bcm_probe() and
      bcm_serdev_probe().  (I've also scrutinized bcm_suspend() but think it's
      fine as is.)
      
      Those are all the functions accessing the device wake and shutdown GPIO.
      On Apple Macs the pins are accessed through ACPI methods, which may fail
      for various reasons, hence proper error handling is necessary.  Non-Macs
      access the pins directly, which may fail as well but the GPIO core does
      not yet pass back errors to consumers.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      8bfa7e1e
    • L
      Bluetooth: hci_bcm: Add callbacks to toggle GPIOs · 8353b4a6
      Lukas Wunner 提交于
      MacBooks provides custom ACPI methods to toggle the GPIOs for device
      wake and shutdown instead of accessing the pins directly.  Prepare for
      their support by adding callbacks to toggle the GPIOs, which on non-Macs
      do nothing more but call gpiod_set_value().
      
      No functional change intended.
      Suggested-and-reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      8353b4a6
    • L
    • L
      Bluetooth: hci_bcm: Invalidate IRQ on request failure · 4dc27330
      Lukas Wunner 提交于
      If devm_request_irq() fails, the driver bails out of bcm_request_irq()
      but continues to ->setup the device (because the IRQ is optional).
      
      The driver subsequently calls devm_free_irq(), enable_irq_wake() and
      disable_irq_wake() on the IRQ even though requesting it failed.
      
      Avoid by invalidating the IRQ on request failure.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      4dc27330
    • L
      Bluetooth: hci_bcm: Fix unbalanced pm_runtime_disable() · f4cf6b7e
      Lukas Wunner 提交于
      On ->setup, pm_runtime_enable() is only called if a valid IRQ was found,
      but on ->close(), pm_runtime_disable() is called unconditionally.
      Disablement of runtime PM is recorded in a counter, so every
      pm_runtime_disable() needs to be balanced.  Fix it.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Reported-and-reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      f4cf6b7e
    • L
      Bluetooth: hci_bcm: Fix race on close · 54ba69f9
      Lukas Wunner 提交于
      Upon ->close, the driver powers the Bluetooth controller down, deasserts
      the device wake pin, updates the runtime PM status to "suspended" and
      finally frees the IRQ.
      
      Because the IRQ is freed last, a runtime resume can take place after
      the controller was powered down.  The impact is not grave, the worst
      thing that can happen is that the device wake pin is reasserted (should
      have no effect while the regulator is off) and that setting the runtime
      PM status to "suspended" does not reflect reality.
      
      Still, it's wrong, so free the IRQ first.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      54ba69f9
    • L
      Bluetooth: hci_bcm: Clean up unnecessary #ifdef · 6d83f1ee
      Lukas Wunner 提交于
      pm_runtime_disable() and pm_runtime_set_suspended() are replaced with
      empty inlines if CONFIG_PM is disabled, so there's no need to #ifdef
      them.
      
      device_init_wakeup() is likewise replaced with an inline, though it's
      not empty, but it and devm_free_irq() can be made conditional on
      IS_ENABLED(CONFIG_PM), which is preferable to #ifdef as per section 20
      of Documentation/process/coding-style.rst.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      6d83f1ee
    • R
      Bluetooth: hci_bcm: Validate IRQ before using it · 4a59f1fa
      Ronald Tschalär 提交于
      The ->close, ->suspend and ->resume hooks assume presence of a valid IRQ
      if the device is wakeup capable.  However it's entirely possible that
      wakeup was enabled by some other entity besides this driver and in this
      case the user will get a WARN splat if no valid IRQ was found.  Avoid by
      checking if the IRQ is valid, i.e. > 0.
      
      Case in point:  On recent MacBook Pros, the Bluetooth device lacks an
      IRQ (because host wakeup is handled by the SMC, independently of the
      operating system), but it does possess a _PRW method (which specifies
      the SMC's GPE as wake event).  The ACPI core therefore automatically
      marks the physical Bluetooth device wakeup capable upon binding it to
      its ACPI companion:
      
      device_set_wakeup_capable+0x96/0xb0
      acpi_bind_one+0x28a/0x310
      acpi_platform_notify+0x20/0xa0
      device_add+0x215/0x690
      serdev_device_add+0x57/0xf0
      acpi_serdev_add_device+0xc9/0x110
      acpi_ns_walk_namespace+0x131/0x280
      acpi_walk_namespace+0xf5/0x13d
      serdev_controller_add+0x6f/0x110
      serdev_tty_port_register+0x98/0xf0
      tty_port_register_device_attr_serdev+0x3a/0x70
      uart_add_one_port+0x268/0x500
      serial8250_register_8250_port+0x32e/0x490
      dw8250_probe+0x46c/0x720
      platform_drv_probe+0x35/0x90
      driver_probe_device+0x300/0x450
      bus_for_each_drv+0x67/0xb0
      __device_attach+0xde/0x160
      bus_probe_device+0x9c/0xb0
      device_add+0x448/0x690
      platform_device_add+0x10e/0x260
      mfd_add_device+0x392/0x4c0
      mfd_add_devices+0xb1/0x110
      intel_lpss_probe+0x2a9/0x610 [intel_lpss]
      intel_lpss_pci_probe+0x7a/0xa8 [intel_lpss_pci]
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NRonald Tschalär <ronald@innovation.ch>
      [lukas: fix up ->suspend and ->resume as well, add commit message]
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      4a59f1fa
    • L
      Bluetooth: hci_bcm: Mandate presence of shutdown and device wake GPIO · 3e81a4ca
      Lukas Wunner 提交于
      Commit 0395ffc1 ("Bluetooth: hci_bcm: Add PM for BCM devices")
      amended this driver to request a shutdown and device wake GPIO on probe,
      but mandated that only one of them need to be present:
      
      	/* Make sure at-least one of the GPIO is defined and that
      	 * a name is specified for this instance
      	 */
      	if ((!dev->device_wakeup && !dev->shutdown) || !dev->name) {
      		dev_err(&pdev->dev, "invalid platform data\n");
      		return -EINVAL;
      	}
      
      However the same commit added a call to bcm_gpio_set_power() to the
      ->probe hook, which unconditionally accesses *both* GPIOs.  Luckily,
      the resulting NULL pointer deref was never reported, suggesting there's
      no machine where either GPIO is missing.
      
      Commit 8a920568 ("Bluetooth: hci_bcm: Add (runtime)pm support to the
      serdev driver") removed the check whether at least one of the GPIOs is
      present without specifying a reason.
      
      Because commit 62aaefa7 ("Bluetooth: hci_bcm: improve use of gpios
      API") refactored the driver to use devm_gpiod_get_optional() instead of
      devm_gpiod_get(), one is now tempted to believe that the driver doesn't
      require *any* of the two GPIOs.
      
      Which is wrong, the driver still requires both GPIOs to avoid a NULL
      pointer deref.  To this end, establish the status quo ante and request
      the GPIOs with devm_gpiod_get() again.  Bail out of ->probe if either
      of them is missing.
      
      Oddly enough, whereas bcm_gpio_set_power() accesses the device wake pin
      unconditionally, bcm_suspend_device() and bcm_resume_device() do check
      for its presence before accessing it.  Those checks are superfluous,
      so remove them.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Cc: Loic Poulain <loic.poulain@linaro.org>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      3e81a4ca
  8. 27 12月, 2017 1 次提交
    • L
      Bluetooth: hci_bcm: Streamline runtime PM code · 43fff768
      Lukas Wunner 提交于
      This driver seeks to force the Bluetooth device on for the duration of
      5 seconds when the Bluetooth device has woken the host and after a
      complete packet has been received.  It does that by calling:
      
          pm_runtime_get();
          pm_runtime_mark_last_busy();
          pm_runtime_put_autosuspend();
      
      The same can be achieved more succinctly with:
      
          pm_request_resume();
      
      That's because after runtime resuming the device, rpm_resume() invokes
      pm_runtime_mark_last_busy() followed by rpm_idle(), which will cause
      the device to be suspended after expiration of the autosuspend_delay.
      
      No functional change intended.
      
      Cc: Frédéric Danis <frederic.danis.oss@gmail.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      43fff768
  9. 13 12月, 2017 1 次提交
  10. 14 10月, 2017 1 次提交
  11. 12 10月, 2017 1 次提交
  12. 10 10月, 2017 2 次提交
    • I
      Bluetooth: hci_bcm: Add support for MINIX Z83-4 based devices · 1bdb68b2
      Ian W MORRISON 提交于
      The MINIX NEO Z83-4 and MINIX NEO Z83-4 Pro devices use an AP6255 chip for
      wifi and bluetooth. Bluetooth requires an ACPI device id of BCM2EA4 with
      BCM4345 rev C0 firmware.
      
      This patch adds the device id and to use trigger type IRQF_TRIGGER_FALLING
      as defined by 'GpioInt' in the ACPI DSDT table:
      
          Device (BLT0)
          {
              Name (_HID, "BCM2EA4")  // _HID: Hardware ID
              Method (_STA, 0, NotSerialized)  // _STA: Status
              {
                  Return (0x0F)
              }
      
              Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
              {
                  Name (UBUF, ResourceTemplate ()
                  {
                      UartSerialBusV2 (0x0001C200, DataBitsEight, StopBitsOne,
                          0xFC, LittleEndian, ParityTypeNone, FlowControlHardware,
                          0x0020, 0x0020, "\\_SB.PCI0.URT1",
                          0x00, ResourceConsumer, , Exclusive,
                          )
                      GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000,
                          "\\_SB.GPO1", 0x00, ResourceConsumer, ,
                          )
                          {   // Pin list
                              0x0005
                          }
                      GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                          "\\_SB.GPO1", 0x00, ResourceConsumer, ,
                          )
                          {   // Pin list
                              0x0007
                          }
                      GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                          "\\_SB.GPO1", 0x00, ResourceConsumer, ,
                          )
                          {   // Pin list
                              0x0004
                          }
                  })
                  Return (UBUF) /* \_SB_.PCI0.URT1.BLT0._CRS.UBUF */
              }
          }
      Signed-off-by: NIan W MORRISON <ianwmorrison@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      1bdb68b2
    • I
      Bluetooth: hci_bcm: Correct context of IRQ polarity message · e8bfe868
      Ian W MORRISON 提交于
      As the overwriting of IRQ polarity to active low occurs during the driver
      probe using 'bt_dev_warn' to display the warning results in '(null)' being
      displayed for the device. This patch uses 'dev_warn' to correctly display
      the device in the warning instead.
      Signed-off-by: NIan W MORRISON <ianwmorrison@gmail.com>
      Reviewed-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      e8bfe868
  13. 07 10月, 2017 5 次提交