cregit-Linux how code gets into the kernel

Release 4.7 drivers/cpuidle/cpuidle-kirkwood.c

Directory: drivers/cpuidle
/*
 * CPU idle Marvell Kirkwood SoCs
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 *
 * The cpu idle uses wait-for-interrupt and DDR self refresh in order
 * to implement two idle states -
 * #1 wait-for-interrupt
 * #2 wait-for-interrupt and DDR self refresh
 *
 * Maintainer: Jason Cooper <jason@lakedaemon.net>
 * Maintainer: Andrew Lunn <andrew@lunn.ch>
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/cpuidle.h>
#include <linux/io.h>
#include <linux/export.h>
#include <asm/cpuidle.h>


#define KIRKWOOD_MAX_STATES	2


static void __iomem *ddr_operation_base;

/* Actual code that puts the SoC in different idle states */

static int kirkwood_enter_idle(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { writel(0x7, ddr_operation_base); cpu_do_idle(); return index; }

Contributors

PersonTokensPropCommitsCommitProp
rabeeh khouryrabeeh khoury2475.00%125.00%
deepthi dharwardeepthi dharwar721.88%250.00%
andrew lunnandrew lunn13.12%125.00%
Total32100.00%4100.00%

static struct cpuidle_driver kirkwood_idle_driver = { .name = "kirkwood_idle", .owner = THIS_MODULE, .states[0] = ARM_CPUIDLE_WFI_STATE, .states[1] = { .enter = kirkwood_enter_idle, .exit_latency = 10, .target_residency = 100000, .name = "DDR SR", .desc = "WFI and DDR Self Refresh", }, .state_count = KIRKWOOD_MAX_STATES, }; /* Initialize CPU idle by registering the idle states */
static int kirkwood_cpuidle_probe(struct platform_device *pdev) { struct resource *res; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ddr_operation_base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(ddr_operation_base)) return PTR_ERR(ddr_operation_base); return cpuidle_register(&kirkwood_idle_driver, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
andrew lunnandrew lunn3557.38%116.67%
silviu-mihai popescusilviu-mihai popescu813.11%116.67%
robert leerobert lee813.11%116.67%
daniel lezcanodaniel lezcano46.56%116.67%
deepthi dharwardeepthi dharwar46.56%116.67%
rabeeh khouryrabeeh khoury23.28%116.67%
Total61100.00%6100.00%


static int kirkwood_cpuidle_remove(struct platform_device *pdev) { cpuidle_unregister(&kirkwood_idle_driver); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
andrew lunnandrew lunn1890.00%133.33%
jingoo hanjingoo han15.00%133.33%
daniel lezcanodaniel lezcano15.00%133.33%
Total20100.00%3100.00%

static struct platform_driver kirkwood_cpuidle_driver = { .probe = kirkwood_cpuidle_probe, .remove = kirkwood_cpuidle_remove, .driver = { .name = "kirkwood_cpuidle", }, }; module_platform_driver(kirkwood_cpuidle_driver); MODULE_AUTHOR("Andrew Lunn <andrew@lunn.ch>"); MODULE_DESCRIPTION("Kirkwood cpu idle driver"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:kirkwood-cpuidle");

Overall Contributors

PersonTokensPropCommitsCommitProp
andrew lunnandrew lunn11242.26%110.00%
rabeeh khouryrabeeh khoury8030.19%110.00%
robert leerobert lee4115.47%110.00%
deepthi dharwardeepthi dharwar145.28%220.00%
silviu-mihai popescusilviu-mihai popescu83.02%110.00%
daniel lezcanodaniel lezcano62.26%220.00%
paul gortmakerpaul gortmaker31.13%110.00%
jingoo hanjingoo han10.38%110.00%
Total265100.00%10100.00%
Directory: drivers/cpuidle
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}