mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-11-01 02:21:16 +00:00
cc2f14c1fb
RNDIS IPA driver requires both host and device side different parameters like max transfer size, number of packets and aggregation status. This change provides these information to IPA driver by using RNDIS initialization protocol. CRs-Fixed: 679074 Change-Id: Ic755d61db79c093d5540a28276b9b428c5ffad92 Signed-off-by: Ravi Gummadidala <rgummadi@codeaurora.org> Signed-off-by: Mayank Rana <mrana@codeaurora.org>
102 lines
3.1 KiB
C
102 lines
3.1 KiB
C
/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef _RNDIS_IPA_H_
|
|
#define _RNDIS_IPA_H_
|
|
|
|
#include <linux/ipa.h>
|
|
|
|
/*
|
|
* @priv: private data given upon ipa_connect
|
|
* @evt: event enum, should be IPA_WRITE_DONE
|
|
* @data: for tx path the data field is the sent socket buffer.
|
|
*/
|
|
typedef void (*ipa_callback)(void *priv,
|
|
enum ipa_dp_evt_type evt,
|
|
unsigned long data);
|
|
|
|
/*
|
|
* struct ipa_usb_init_params - parameters for driver initialization API
|
|
*
|
|
* @device_ready_notify: callback supplied by USB core driver
|
|
* This callback shall be called by the Netdev once the device
|
|
* is ready to recieve data from tethered PC.
|
|
* @ipa_rx_notify: The network driver will set this callback (out parameter).
|
|
* this callback shall be supplied for ipa_connect upon pipe
|
|
* connection (USB->IPA), once IPA driver receive data packets
|
|
* from USB pipe destined for Apps this callback will be called.
|
|
* @ipa_tx_notify: The network driver will set this callback (out parameter).
|
|
* this callback shall be supplied for ipa_connect upon pipe
|
|
* connection (IPA->USB), once IPA driver send packets destined
|
|
* for USB, IPA BAM will notify for Tx-complete.
|
|
* @host_ethaddr: host Ethernet address in network order
|
|
* @device_ethaddr: device Ethernet address in network order
|
|
* @private: The network driver will set this pointer (out parameter).
|
|
* This pointer will hold the network device for later interaction
|
|
* with between USB driver and the network driver.
|
|
* @skip_ep_cfg: boolean field that determines if Apps-processor
|
|
* should or should not configure this end-point.
|
|
*/
|
|
struct ipa_usb_init_params {
|
|
void (*device_ready_notify)(void);
|
|
ipa_callback ipa_rx_notify;
|
|
ipa_callback ipa_tx_notify;
|
|
u8 host_ethaddr[ETH_ALEN];
|
|
u8 device_ethaddr[ETH_ALEN];
|
|
void *private;
|
|
bool skip_ep_cfg;
|
|
};
|
|
|
|
#ifdef CONFIG_RNDIS_IPA
|
|
|
|
int rndis_ipa_init(struct ipa_usb_init_params *params);
|
|
|
|
int rndis_ipa_pipe_connect_notify(u32 usb_to_ipa_hdl,
|
|
u32 ipa_to_usb_hdl,
|
|
u32 max_xfer_size_bytes_to_dev,
|
|
u32 max_packet_number_to_dev,
|
|
u32 max_xfer_size_bytes_to_host,
|
|
void *private);
|
|
|
|
int rndis_ipa_pipe_disconnect_notify(void *private);
|
|
|
|
void rndis_ipa_cleanup(void *private);
|
|
|
|
#else /* CONFIG_RNDIS_IPA*/
|
|
|
|
int rndis_ipa_init(struct ipa_usb_init_params *params)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int rndis_ipa_pipe_connect_notify(u32 usb_to_ipa_hdl,
|
|
u32 ipa_to_usb_hdl,
|
|
u32 max_xfer_size_bytes_to_dev,
|
|
u32 max_packet_number_to_dev,
|
|
u32 max_xfer_size_bytes_to_host,
|
|
void *private)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int rndis_ipa_pipe_disconnect_notify(void *private)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void rndis_ipa_cleanup(void *private)
|
|
{
|
|
|
|
}
|
|
#endif /* CONFIG_RNDIS_IPA */
|
|
|
|
#endif /* _RNDIS_IPA_H_ */
|