Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Link Layer Control manager
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * Copyright (C) 2012  Intel Corporation. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #ifndef __LOCAL_LLC_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #define __LOCAL_LLC_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <net/nfc/hci.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <net/nfc/llc.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <linux/skbuff.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct nfc_llc_ops {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	void *(*init) (struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 		       rcv_to_hci_t rcv_to_hci, int tx_headroom,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 		       int tx_tailroom, int *rx_headroom, int *rx_tailroom,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 		       llc_failure_t llc_failure);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	void (*deinit) (struct nfc_llc *llc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	int (*start) (struct nfc_llc *llc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	int (*stop) (struct nfc_llc *llc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	void (*rcv_from_drv) (struct nfc_llc *llc, struct sk_buff *skb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	int (*xmit_from_hci) (struct nfc_llc *llc, struct sk_buff *skb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct nfc_llc_engine {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	const char *name;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	struct nfc_llc_ops *ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	struct list_head entry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct nfc_llc {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	void *data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	struct nfc_llc_ops *ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	int rx_headroom;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	int rx_tailroom;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) void *nfc_llc_get_data(struct nfc_llc *llc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) int nfc_llc_register(const char *name, struct nfc_llc_ops *ops);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) void nfc_llc_unregister(const char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) int nfc_llc_nop_register(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #if defined(CONFIG_NFC_SHDLC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) int nfc_llc_shdlc_register(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) static inline int nfc_llc_shdlc_register(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #endif /* __LOCAL_LLC_H_ */