cregit-Linux how code gets into the kernel

Release 4.11 arch/arm/mach-ebsa110/leds.c

/*
 * Driver for the LED found on the EBSA110 machine
 * Based on Versatile and RealView machine LED code
 *
 * License terms: GNU General Public License (GPL) version 2
 * Author: Bryan Wu <bryan.wu@canonical.com>
 */
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/leds.h>

#include <asm/mach-types.h>

#include "core.h"

#if defined(CONFIG_NEW_LEDS) && defined(CONFIG_LEDS_CLASS)

static void ebsa110_led_set(struct led_classdev *cdev, enum led_brightness b) { u8 reg = __raw_readb(SOFT_BASE); if (b != LED_OFF) reg |= 0x80; else reg &= ~0x80; __raw_writeb(reg, SOFT_BASE); }

Contributors

PersonTokensPropCommitsCommitProp
Bryan Wu3167.39%125.00%
Linus Torvalds (pre-git)1532.61%375.00%
Total46100.00%4100.00%


static enum led_brightness ebsa110_led_get(struct led_classdev *cdev) { u8 reg = __raw_readb(SOFT_BASE); return (reg & 0x80) ? LED_FULL : LED_OFF; }

Contributors

PersonTokensPropCommitsCommitProp
Bryan Wu31100.00%1100.00%
Total31100.00%1100.00%


static int __init ebsa110_leds_init(void) { struct led_classdev *cdev; int ret; if (!machine_is_ebsa110()) return -ENODEV; cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); if (!cdev) return -ENOMEM; cdev->name = "ebsa110:0"; cdev->brightness_set = ebsa110_led_set; cdev->brightness_get = ebsa110_led_get; cdev->default_trigger = "heartbeat"; ret = led_classdev_register(NULL, cdev); if (ret < 0) { kfree(cdev); return ret; } return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Bryan Wu8382.18%133.33%
Linus Torvalds (pre-git)1817.82%266.67%
Total101100.00%3100.00%

/* * Since we may have triggers on any subsystem, defer registration * until after subsystem_init. */ fs_initcall(ebsa110_leds_init); #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Bryan Wu16776.26%116.67%
Linus Torvalds (pre-git)4922.37%466.67%
Russell King31.37%116.67%
Total219100.00%6100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.