Commit 27fb8310 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

greybus: register the bus with the driver core and add framework for debugfs files.

parent 6f83ab76
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
greybus-y := core.o gbuf.o i2c-gb.o gpio-gb.o sdio-gb.o uart-gb.o
greybus-y := core.o gbuf.o debugfs.o i2c-gb.o gpio-gb.o sdio-gb.o uart-gb.o

obj-m += greybus.o
obj-m += es1-ap-usb.o
+22 −2
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ static int greybus_uevent(struct device *dev, struct kobj_uevent_env *env)
	return 0;
}

struct bus_type greybus_bus_type = {
static struct bus_type greybus_bus_type = {
	.name =		"greybus",
	.match =	greybus_device_match,
	.uevent =	greybus_uevent,
@@ -199,16 +199,36 @@ static int __init gb_init(void)
{
	int retval;

	retval = gb_tty_init();
	retval = greybus_debugfs_init();
	if (retval)
		return retval;

	retval = bus_register(&greybus_bus_type);
	if (retval)
		goto error_bus;

	// FIXME - more gb core init goes here

	retval = gb_tty_init();
	if (retval)
		goto error_tty;

	return 0;

error_tty:
	bus_unregister(&greybus_bus_type);

error_bus:
	greybus_debugfs_cleanup();

	return retval;
}

static void __exit gb_exit(void)
{
	gb_tty_exit();
	bus_unregister(&greybus_bus_type);
	greybus_debugfs_cleanup();
}

module_init(gb_init);
+34 −0
Original line number Diff line number Diff line
/*
 * Greybus debugfs code
 *
 * Copyright 2014 Google Inc.
 *
 * Released under the GPLv2 only.
 */

#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include <linux/types.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/debugfs.h>

#include "greybus.h"

static struct dentry *gb_debug_root;

int greybus_debugfs_init(void)
{
	gb_debug_root = debugfs_create_dir("greybus", NULL);
	if (!gb_debug_root)
		return -ENOENT;

	return 0;
}

void greybus_debugfs_cleanup(void)
{
	debugfs_remove_recursive(gb_debug_root);
}
+2 −2
Original line number Diff line number Diff line
@@ -174,10 +174,10 @@ void greybus_deregister(struct greybus_driver *driver);
#define module_greybus_driver(__greybus_driver)	\
	module_driver(__greybus_driver, greybus_register, greybus_deregister)

extern struct bus_type greybus_bus_type;

int greybus_disabled(void);

int greybus_debugfs_init(void);
void greybus_debugfs_cleanup(void);

#endif /* __KERNEL__ */
#endif /* __LINUX_GREYBUS_H */