drivers/hid/intel-ish-hid/ishtp/bus.h

Source file repositories/reference/linux-study-clean/drivers/hid/intel-ish-hid/ishtp/bus.h

File Facts

System
Linux kernel
Corpus path
drivers/hid/intel-ish-hid/ishtp/bus.h
Extension
.h
Size
2426 bytes
Lines
76
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

struct ishtp_cl_device {
	struct device		dev;
	struct ishtp_device	*ishtp_dev;
	struct ishtp_fw_client	*fw_client;
	struct list_head	device_link;
	struct work_struct	event_work;
	void			*driver_data;
	int			reference_count;
	void (*event_cb)(struct ishtp_cl_device *device);
};

int	ishtp_bus_new_client(struct ishtp_device *dev);
int	ishtp_cl_device_bind(struct ishtp_cl *cl);
void	ishtp_cl_bus_rx_event(struct ishtp_cl_device *device);

/* Write a multi-fragment message */
int	ishtp_send_msg(struct ishtp_device *dev,
		       struct ishtp_msg_hdr *hdr, void *msg,
		       void (*ipc_send_compl)(void *),
		       void *ipc_send_compl_prm);

/* Write a single-fragment message */
int	ishtp_write_message(struct ishtp_device *dev,
			    struct ishtp_msg_hdr *hdr,
			    void *buf);

/* Use DMA to send/receive messages */
int ishtp_use_dma_transfer(void);

/* Exported functions */
void	ishtp_bus_remove_all_clients(struct ishtp_device *ishtp_dev,
				     bool warm_reset);

void	ishtp_recv(struct ishtp_device *dev);
void	ishtp_reset_handler(struct ishtp_device *dev);
void	ishtp_reset_compl_handler(struct ishtp_device *dev);

int	ishtp_fw_cl_by_uuid(struct ishtp_device *dev, const guid_t *cuuid);
#endif /* _LINUX_ISHTP_CL_BUS_H */

Annotation

Implementation Notes