fsi: Move fsi_slave structure definition to header
Some FSI drivers may have need of the slave definition, so move it to a header file. Also use one macro for obtaining a pointer to the fsi_master structure. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20230612195657.245125-2-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
This commit is contained in:
parent
23ad7ec1ed
commit
d5d8dfb01e
|
@ -24,6 +24,10 @@
|
|||
#include <linux/uaccess.h>
|
||||
|
||||
#include "fsi-master.h"
|
||||
#include "fsi-slave.h"
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/fsi.h>
|
||||
|
||||
#define FSI_SLAVE_CONF_NEXT_MASK GENMASK(31, 31)
|
||||
#define FSI_SLAVE_CONF_SLOTS_MASK GENMASK(23, 16)
|
||||
|
@ -79,26 +83,6 @@ static const int engine_page_size = 0x400;
|
|||
|
||||
static DEFINE_IDA(master_ida);
|
||||
|
||||
struct fsi_slave {
|
||||
struct device dev;
|
||||
struct fsi_master *master;
|
||||
struct cdev cdev;
|
||||
int cdev_idx;
|
||||
int id; /* FSI address */
|
||||
int link; /* FSI link# */
|
||||
u32 cfam_id;
|
||||
int chip_id;
|
||||
uint32_t size; /* size of slave address space */
|
||||
u8 t_send_delay;
|
||||
u8 t_echo_delay;
|
||||
};
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/fsi.h>
|
||||
|
||||
#define to_fsi_master(d) container_of(d, struct fsi_master, dev)
|
||||
#define to_fsi_slave(d) container_of(d, struct fsi_slave, dev)
|
||||
|
||||
static const int slave_retries = 2;
|
||||
static int discard_errors;
|
||||
|
||||
|
|
|
@ -376,7 +376,7 @@ static int aspeed_master_break(struct fsi_master *master, int link)
|
|||
static void aspeed_master_release(struct device *dev)
|
||||
{
|
||||
struct fsi_master_aspeed *aspeed =
|
||||
to_fsi_master_aspeed(dev_to_fsi_master(dev));
|
||||
to_fsi_master_aspeed(to_fsi_master(dev));
|
||||
|
||||
kfree(aspeed);
|
||||
}
|
||||
|
|
|
@ -1190,7 +1190,7 @@ static int fsi_master_acf_gpio_release(void *data)
|
|||
|
||||
static void fsi_master_acf_release(struct device *dev)
|
||||
{
|
||||
struct fsi_master_acf *master = to_fsi_master_acf(dev_to_fsi_master(dev));
|
||||
struct fsi_master_acf *master = to_fsi_master_acf(to_fsi_master(dev));
|
||||
|
||||
/* Cleanup, stop coprocessor */
|
||||
mutex_lock(&master->lock);
|
||||
|
|
|
@ -761,7 +761,7 @@ static DEVICE_ATTR(external_mode, 0664,
|
|||
|
||||
static void fsi_master_gpio_release(struct device *dev)
|
||||
{
|
||||
struct fsi_master_gpio *master = to_fsi_master_gpio(dev_to_fsi_master(dev));
|
||||
struct fsi_master_gpio *master = to_fsi_master_gpio(to_fsi_master(dev));
|
||||
|
||||
of_node_put(dev_of_node(master->dev));
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ static int hub_master_link_enable(struct fsi_master *master, int link,
|
|||
|
||||
static void hub_master_release(struct device *dev)
|
||||
{
|
||||
struct fsi_master_hub *hub = to_fsi_master_hub(dev_to_fsi_master(dev));
|
||||
struct fsi_master_hub *hub = to_fsi_master_hub(to_fsi_master(dev));
|
||||
|
||||
kfree(hub);
|
||||
}
|
||||
|
|
|
@ -136,7 +136,7 @@ struct fsi_master {
|
|||
u8 t_send_delay, u8 t_echo_delay);
|
||||
};
|
||||
|
||||
#define dev_to_fsi_master(d) container_of(d, struct fsi_master, dev)
|
||||
#define to_fsi_master(d) container_of(d, struct fsi_master, dev)
|
||||
|
||||
/**
|
||||
* fsi_master registration & lifetime: the fsi_master_register() and
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* Copyright (C) IBM Corporation 2023 */
|
||||
|
||||
#ifndef DRIVERS_FSI_SLAVE_H
|
||||
#define DRIVERS_FSI_SLAVE_H
|
||||
|
||||
#include <linux/cdev.h>
|
||||
#include <linux/device.h>
|
||||
|
||||
struct fsi_master;
|
||||
|
||||
struct fsi_slave {
|
||||
struct device dev;
|
||||
struct fsi_master *master;
|
||||
struct cdev cdev;
|
||||
int cdev_idx;
|
||||
int id; /* FSI address */
|
||||
int link; /* FSI link# */
|
||||
u32 cfam_id;
|
||||
int chip_id;
|
||||
uint32_t size; /* size of slave address space */
|
||||
u8 t_send_delay;
|
||||
u8 t_echo_delay;
|
||||
};
|
||||
|
||||
#define to_fsi_slave(d) container_of(d, struct fsi_slave, dev)
|
||||
|
||||
#endif /* DRIVERS_FSI_SLAVE_H */
|
Loading…
Reference in New Issue