tile: support jumbo frames in the tilegx network driver
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

کامیت شده توسط
David S. Miller

والد
48f2a4e1e8
کامیت
2628e8af31
@@ -387,6 +387,27 @@ int gxio_mpipe_link_close_aux(gxio_mpipe_context_t * context, int mac)
|
||||
|
||||
EXPORT_SYMBOL(gxio_mpipe_link_close_aux);
|
||||
|
||||
struct link_set_attr_aux_param {
|
||||
int mac;
|
||||
uint32_t attr;
|
||||
int64_t val;
|
||||
};
|
||||
|
||||
int gxio_mpipe_link_set_attr_aux(gxio_mpipe_context_t * context, int mac,
|
||||
uint32_t attr, int64_t val)
|
||||
{
|
||||
struct link_set_attr_aux_param temp;
|
||||
struct link_set_attr_aux_param *params = &temp;
|
||||
|
||||
params->mac = mac;
|
||||
params->attr = attr;
|
||||
params->val = val;
|
||||
|
||||
return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params,
|
||||
sizeof(*params), GXIO_MPIPE_OP_LINK_SET_ATTR_AUX);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(gxio_mpipe_link_set_attr_aux);
|
||||
|
||||
struct get_timestamp_aux_param {
|
||||
uint64_t sec;
|
||||
@@ -454,6 +475,32 @@ int gxio_mpipe_adjust_timestamp_aux(gxio_mpipe_context_t * context,
|
||||
|
||||
EXPORT_SYMBOL(gxio_mpipe_adjust_timestamp_aux);
|
||||
|
||||
struct config_edma_ring_blks_param {
|
||||
unsigned int ering;
|
||||
unsigned int max_blks;
|
||||
unsigned int min_snf_blks;
|
||||
unsigned int db;
|
||||
};
|
||||
|
||||
int gxio_mpipe_config_edma_ring_blks(gxio_mpipe_context_t * context,
|
||||
unsigned int ering, unsigned int max_blks,
|
||||
unsigned int min_snf_blks, unsigned int db)
|
||||
{
|
||||
struct config_edma_ring_blks_param temp;
|
||||
struct config_edma_ring_blks_param *params = &temp;
|
||||
|
||||
params->ering = ering;
|
||||
params->max_blks = max_blks;
|
||||
params->min_snf_blks = min_snf_blks;
|
||||
params->db = db;
|
||||
|
||||
return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params,
|
||||
sizeof(*params),
|
||||
GXIO_MPIPE_OP_CONFIG_EDMA_RING_BLKS);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(gxio_mpipe_config_edma_ring_blks);
|
||||
|
||||
struct arm_pollfd_param {
|
||||
union iorpc_pollfd pollfd;
|
||||
};
|
||||
|
@@ -383,7 +383,7 @@ EXPORT_SYMBOL_GPL(gxio_mpipe_iqueue_init);
|
||||
|
||||
int gxio_mpipe_equeue_init(gxio_mpipe_equeue_t *equeue,
|
||||
gxio_mpipe_context_t *context,
|
||||
unsigned int edma_ring_id,
|
||||
unsigned int ering,
|
||||
unsigned int channel,
|
||||
void *mem, unsigned int mem_size,
|
||||
unsigned int mem_flags)
|
||||
@@ -394,7 +394,7 @@ int gxio_mpipe_equeue_init(gxio_mpipe_equeue_t *equeue,
|
||||
/* Offset used to read number of completed commands. */
|
||||
MPIPE_EDMA_POST_REGION_ADDR_t offset;
|
||||
|
||||
int result = gxio_mpipe_init_edma_ring(context, edma_ring_id, channel,
|
||||
int result = gxio_mpipe_init_edma_ring(context, ering, channel,
|
||||
mem, mem_size, mem_flags);
|
||||
if (result < 0)
|
||||
return result;
|
||||
@@ -405,7 +405,7 @@ int gxio_mpipe_equeue_init(gxio_mpipe_equeue_t *equeue,
|
||||
offset.region =
|
||||
MPIPE_MMIO_ADDR__REGION_VAL_EDMA -
|
||||
MPIPE_MMIO_ADDR__REGION_VAL_IDMA;
|
||||
offset.ring = edma_ring_id;
|
||||
offset.ring = ering;
|
||||
|
||||
__gxio_dma_queue_init(&equeue->dma_queue,
|
||||
context->mmio_fast_base + offset.word,
|
||||
@@ -413,6 +413,9 @@ int gxio_mpipe_equeue_init(gxio_mpipe_equeue_t *equeue,
|
||||
equeue->edescs = mem;
|
||||
equeue->mask_num_entries = num_entries - 1;
|
||||
equeue->log2_num_entries = __builtin_ctz(num_entries);
|
||||
equeue->context = context;
|
||||
equeue->ering = ering;
|
||||
equeue->channel = channel;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -543,3 +546,12 @@ int gxio_mpipe_link_close(gxio_mpipe_link_t *link)
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL_GPL(gxio_mpipe_link_close);
|
||||
|
||||
int gxio_mpipe_link_set_attr(gxio_mpipe_link_t *link, uint32_t attr,
|
||||
int64_t val)
|
||||
{
|
||||
return gxio_mpipe_link_set_attr_aux(link->context, link->mac, attr,
|
||||
val);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL_GPL(gxio_mpipe_link_set_attr);
|
||||
|
مرجع در شماره جدید
Block a user