cregit-Linux how code gets into the kernel

Release 4.11 drivers/misc/mic/host/mic_smpt.h

/*
 * Intel MIC Platform Software Stack (MPSS)
 *
 * Copyright(c) 2013 Intel Corporation.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License, 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.
 *
 * The full GNU General Public License is included in this distribution in
 * the file called "COPYING".
 *
 * Intel MIC Host driver.
 *
 */
#ifndef MIC_SMPT_H

#define MIC_SMPT_H
/**
 * struct mic_smpt_ops - MIC HW specific SMPT operations.
 * @init: Initialize hardware specific SMPT information in mic_smpt_hw_info.
 * @set: Set the value for a particular SMPT entry.
 */

struct mic_smpt_ops {
	
void (*init)(struct mic_device *mdev);
	
void (*set)(struct mic_device *mdev, dma_addr_t dma_addr, u8 index);
};

/**
 * struct mic_smpt - MIC SMPT entry information.
 * @dma_addr: Base DMA address for this SMPT entry.
 * @ref_count: Number of active mappings for this SMPT entry in bytes.
 */

struct mic_smpt {
	
dma_addr_t dma_addr;
	
s64 ref_count;
};

/**
 * struct mic_smpt_hw_info - MIC SMPT hardware specific information.
 * @num_reg: Number of SMPT registers.
 * @page_shift: System memory page shift.
 * @page_size: System memory page size.
 * @base: System address base.
 */

struct mic_smpt_hw_info {
	
u8 num_reg;
	
u8 page_shift;
	
u64 page_size;
	
u64 base;
};

/**
 * struct mic_smpt_info - MIC SMPT information.
 * @entry: Array of SMPT entries.
 * @smpt_lock: Spin lock protecting access to SMPT data structures.
 * @info: Hardware specific SMPT information.
 * @ref_count: Number of active SMPT mappings (for debug).
 * @map_count: Number of SMPT mappings created (for debug).
 * @unmap_count: Number of SMPT mappings destroyed (for debug).
 */

struct mic_smpt_info {
	
struct mic_smpt *entry;
	
spinlock_t smpt_lock;
	
struct mic_smpt_hw_info info;
	
s64 ref_count;
	
s64 map_count;
	
s64 unmap_count;
};

dma_addr_t mic_map_single(struct mic_device *mdev, void *va, size_t size);
void mic_unmap_single(struct mic_device *mdev,
	dma_addr_t mic_addr, size_t size);
dma_addr_t mic_map(struct mic_device *mdev,
	dma_addr_t dma_addr, size_t size);
void mic_unmap(struct mic_device *mdev, dma_addr_t mic_addr, size_t size);
dma_addr_t mic_to_dma_addr(struct mic_device *mdev, dma_addr_t mic_addr);

/**
 * mic_map_error - Check a MIC address for errors.
 *
 * @mdev: pointer to mic_device instance.
 *
 * returns Whether there was an error during mic_map..(..) APIs.
 */

static inline bool mic_map_error(dma_addr_t mic_addr) { return !mic_addr; }

Contributors

PersonTokensPropCommitsCommitProp
Dasaratharaman Chandramouli14100.00%1100.00%
Total14100.00%1100.00%

int mic_smpt_init(struct mic_device *mdev); void mic_smpt_uninit(struct mic_device *mdev); void mic_smpt_restore(struct mic_device *mdev); #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Dasaratharaman Chandramouli20594.47%150.00%
Sudeep Dutt125.53%150.00%
Total217100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.