Skip to content

Commit 28a75e4

Browse files
jwrdegoedeholtmann
authored andcommitted
Bluetooth: hci_h5: Add suspend / resume ops
Add support for vendor specific suspend / resume callbacks. Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Marcel Holtmann <[email protected]>
1 parent 7086b36 commit 28a75e4

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

drivers/bluetooth/hci_h5.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ struct h5_vnd {
115115
int (*setup)(struct h5 *h5);
116116
void (*open)(struct h5 *h5);
117117
void (*close)(struct h5 *h5);
118+
int (*suspend)(struct h5 *h5);
119+
int (*resume)(struct h5 *h5);
118120
const struct acpi_gpio_mapping *acpi_gpio_map;
119121
};
120122

@@ -841,6 +843,28 @@ static void h5_serdev_remove(struct serdev_device *serdev)
841843
hci_uart_unregister_device(&h5->serdev_hu);
842844
}
843845

846+
static int __maybe_unused h5_serdev_suspend(struct device *dev)
847+
{
848+
struct h5 *h5 = dev_get_drvdata(dev);
849+
int ret = 0;
850+
851+
if (h5->vnd && h5->vnd->suspend)
852+
ret = h5->vnd->suspend(h5);
853+
854+
return ret;
855+
}
856+
857+
static int __maybe_unused h5_serdev_resume(struct device *dev)
858+
{
859+
struct h5 *h5 = dev_get_drvdata(dev);
860+
int ret = 0;
861+
862+
if (h5->vnd && h5->vnd->resume)
863+
ret = h5->vnd->resume(h5);
864+
865+
return ret;
866+
}
867+
844868
#ifdef CONFIG_BT_HCIUART_RTL
845869
static int h5_btrtl_setup(struct h5 *h5)
846870
{
@@ -935,12 +959,17 @@ static const struct acpi_device_id h5_acpi_match[] = {
935959
MODULE_DEVICE_TABLE(acpi, h5_acpi_match);
936960
#endif
937961

962+
static const struct dev_pm_ops h5_serdev_pm_ops = {
963+
SET_SYSTEM_SLEEP_PM_OPS(h5_serdev_suspend, h5_serdev_resume)
964+
};
965+
938966
static struct serdev_device_driver h5_serdev_driver = {
939967
.probe = h5_serdev_probe,
940968
.remove = h5_serdev_remove,
941969
.driver = {
942970
.name = "hci_uart_h5",
943971
.acpi_match_table = ACPI_PTR(h5_acpi_match),
972+
.pm = &h5_serdev_pm_ops,
944973
},
945974
};
946975

0 commit comments

Comments
 (0)