drivers/hid/usbhid/hid-pidff.h

Source file repositories/reference/linux-study-clean/drivers/hid/usbhid/hid-pidff.h

File Facts

System
Linux kernel
Corpus path
drivers/hid/usbhid/hid-pidff.h
Extension
.h
Size
1356 bytes
Lines
42
Domain
Driver Families
Bucket
drivers/hid
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __HID_PIDFF_H
#define __HID_PIDFF_H

#include <linux/hid.h>

/* HID PIDFF quirks */

/* Delay field (0xA7) missing. Skip it during set effect report upload */
#define HID_PIDFF_QUIRK_MISSING_DELAY		BIT(0)

/* Missing Paramter block offset (0x23). Skip it during SET_CONDITION upload */
#define HID_PIDFF_QUIRK_MISSING_PBO		BIT(1)

/* Initialise device control field even if logical_minimum != 1 */
#define HID_PIDFF_QUIRK_PERMISSIVE_CONTROL	BIT(2)

/* Use fixed 0x4000 direction during SET_EFFECT report upload */
#define HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION	BIT(3)

/* Force all periodic effects to be uploaded as SINE */
#define HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY	BIT(4)

/* Allow devices with missing negative coefficient in the set condition usage */
#define HID_PIDFF_QUIRK_MISSING_NEG_COEFFICIENT	BIT(5)

/* Allow devices with missing negative saturation in the set condition usage */
#define HID_PIDFF_QUIRK_MISSING_NEG_SATURATION	BIT(6)

/* Allow devices with missing deadband in the set condition usage */
#define HID_PIDFF_QUIRK_MISSING_DEADBAND	BIT(7)

#ifdef CONFIG_HID_PID
int hid_pidff_init(struct hid_device *hid);
int hid_pidff_init_with_quirks(struct hid_device *hid, u32 initial_quirks);
#else
#define hid_pidff_init NULL
#define hid_pidff_init_with_quirks NULL
#endif

#endif

Annotation

Implementation Notes