LinuxKPI: move pm_message_t from kernel.h to pm.h

Move pm_message_t from kernel.h to pm.h and remove a private define
in usb.h as well as adjust the implementation in linux_usb.c.
This cleans up what I believe to be a historic shortcut and is
needed for future wireless driver updates.

Leave a note in UPDATING that drm-kmod users need to update to the
latest version before re-compiling a new kernel to avoid errors
(see PR).

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
PR:		264449 (drm-kmod port update, thanks wulf)
Obtained from:	bz_git_iwlwifi (Dec 2020) (partly)
Reviewed by:	hselasky, imp
Differential Revision: https://reviews.freebsd.org/D35276
This commit is contained in:
Bjoern A. Zeeb 2022-05-20 21:50:01 +00:00
parent 60408c23c9
commit 0e981d79b1
6 changed files with 16 additions and 7 deletions

View File

@ -27,6 +27,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
20220610:
LinuxKPI pm.h changes require an update to the latest drm-kmod version
before re-compiling to avoid errors.
20211230:
The macros provided for the manipulation of CPU sets (e.g. CPU_AND)
have been modified to take 2 source arguments instead of only 1.

View File

@ -597,10 +597,6 @@ extern bool linux_cpu_has_clflush;
#define cpu_has_clflush linux_cpu_has_clflush
#endif
typedef struct pm_message {
int event;
} pm_message_t;
/* Swap values of a and b */
#define swap(a, b) do { \
typeof(a) _swap_tmp = a; \

View File

@ -59,6 +59,7 @@
#include <asm/atomic.h>
#include <linux/device.h>
#include <linux/pci_ids.h>
#include <linux/pm.h>
struct pci_device_id {
uint32_t vendor;

View File

@ -33,6 +33,10 @@
#ifndef _LINUXKPI_LINUX_PM_H
#define _LINUXKPI_LINUX_PM_H
typedef struct pm_message {
int event;
} pm_message_t;
#ifdef CONFIG_PM_SLEEP
#define SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \
const struct dev_pm_ops _name = { \

View File

@ -37,12 +37,13 @@
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include <linux/pm.h>
struct usb_device;
struct usb_interface;
struct usb_driver;
struct urb;
typedef void *pm_message_t;
typedef void (usb_complete_t)(struct urb *);
#define USB_MAX_FULL_SPEED_ISOC_FRAMES (60 * 1)

View File

@ -339,11 +339,14 @@ usb_linux_suspend(device_t dev)
{
struct usb_linux_softc *sc = device_get_softc(dev);
struct usb_driver *udrv = usb_linux_get_usb_driver(sc);
pm_message_t pm_msg;
int err;
err = 0;
if (udrv && udrv->suspend)
err = (udrv->suspend) (sc->sc_ui, 0);
if (udrv && udrv->suspend) {
pm_msg.event = 0; /* XXX */
err = (udrv->suspend) (sc->sc_ui, pm_msg);
}
return (-err);
}