dsa_tag_driver
static void dsa_tag_driver_register(struct dsa_tag_driver *dsa_tag_driver,
dsa_tag_driver->owner = owner;
list_add_tail(&dsa_tag_driver->list, &dsa_tag_drivers_list);
void dsa_tag_drivers_register(struct dsa_tag_driver *dsa_tag_driver_array[],
static void dsa_tag_driver_unregister(struct dsa_tag_driver *dsa_tag_driver)
list_del(&dsa_tag_driver->list);
void dsa_tag_drivers_unregister(struct dsa_tag_driver *dsa_tag_driver_array[],
struct dsa_tag_driver *dsa_tag_driver;
list_for_each_entry(dsa_tag_driver, &dsa_tag_drivers_list, list) {
const struct dsa_device_ops *tmp = dsa_tag_driver->ops;
if (!try_module_get(dsa_tag_driver->owner))
struct dsa_tag_driver *dsa_tag_driver;
list_for_each_entry(dsa_tag_driver, &dsa_tag_drivers_list, list) {
ops = dsa_tag_driver->ops;
if (!try_module_get(dsa_tag_driver->owner))
struct dsa_tag_driver *dsa_tag_driver;
list_for_each_entry(dsa_tag_driver, &dsa_tag_drivers_list, list) {
if (dsa_tag_driver->ops == ops) {
module_put(dsa_tag_driver->owner);
void dsa_tag_drivers_register(struct dsa_tag_driver *dsa_tag_driver_array[],
void dsa_tag_drivers_unregister(struct dsa_tag_driver *dsa_tag_driver_array[],
#define DSA_TAG_DRIVER_NAME(__ops) dsa_tag_driver ## _ ## __ops
static struct dsa_tag_driver DSA_TAG_DRIVER_NAME(__ops) = { \
static struct dsa_tag_driver *dsa_tag_driver_array[] = { \
static struct dsa_tag_driver *dsa_tag_driver_array[] = {
static struct dsa_tag_driver *dsa_tag_drivers[] = {
static struct dsa_tag_driver *dsa_tag_driver_array[] = {
static struct dsa_tag_driver *ocelot_tag_driver_array[] = {
static struct dsa_tag_driver *dsa_tag_drivers[] = {
static struct dsa_tag_driver *sja1105_tag_driver_array[] = {