Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 414c1026 authored by Jeremy Kerr's avatar Jeremy Kerr Committed by Greg Kroah-Hartman
Browse files

drivers/fsi: Add empty master scan



When a new fsi master is added, we will need to scan its links, and
slaves attached to those links. This change introduces a little shell to
iterate the links, which we will populate with the actual slave scan in
a later change.

Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
Signed-off-by: default avatarChris Bostic <cbostic@linux.vnet.ibm.com>
Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent faf0b116
Loading
Loading
Loading
Loading
+23 −2
Original line number Original line Diff line number Diff line
@@ -32,7 +32,25 @@ struct fsi_slave {


#define to_fsi_slave(d) container_of(d, struct fsi_slave, dev)
#define to_fsi_slave(d) container_of(d, struct fsi_slave, dev)


/* FSI slave support */
static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
{
	/* todo: initialise slave device, perform engine scan */

	return -ENODEV;
}

/* FSI master support */
/* FSI master support */
static int fsi_master_scan(struct fsi_master *master)
{
	int link;

	for (link = 0; link < master->n_links; link++)
		fsi_slave_init(master, link, 0);

	return 0;
}

int fsi_master_register(struct fsi_master *master)
int fsi_master_register(struct fsi_master *master)
{
{
	int rc;
	int rc;
@@ -44,11 +62,14 @@ int fsi_master_register(struct fsi_master *master)
	dev_set_name(&master->dev, "fsi%d", master->idx);
	dev_set_name(&master->dev, "fsi%d", master->idx);


	rc = device_register(&master->dev);
	rc = device_register(&master->dev);
	if (rc)
	if (rc) {
		ida_simple_remove(&master_ida, master->idx);
		ida_simple_remove(&master_ida, master->idx);

		return rc;
		return rc;
	}
	}

	fsi_master_scan(master);
	return 0;
}
EXPORT_SYMBOL_GPL(fsi_master_register);
EXPORT_SYMBOL_GPL(fsi_master_register);


void fsi_master_unregister(struct fsi_master *master)
void fsi_master_unregister(struct fsi_master *master)