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

Commit b71426eb authored by Jeff Garzik's avatar Jeff Garzik
Browse files

Merge branch 'master' into upstream-fixes

parents 8419dc8a abb5a5cc
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1676,10 +1676,8 @@ L: linux-kernel@vger.kernel.org
S:	Maintained

LAPB module
P:	Henner Eisen
M:	eis@baty.hanse.de
L:	linux-x25@vger.kernel.org
S:	Maintained
S:	Orphan

LASI 53c700 driver for PARISC
P:	James E.J. Bottomley
+2 −2
Original line number Diff line number Diff line
@@ -273,7 +273,7 @@ startup_continue:
.Lbss_end:  .long _end
.Lparmaddr: .long PARMAREA
.Lsccbaddr: .long .Lsccb
	.align	4096
	.org	0x12000
.Lsccb:
	.hword	0x1000			# length, one page
	.byte	0x00,0x00,0x00
@@ -290,7 +290,7 @@ startup_continue:
.Lscpincr2:
	.quad	0x00
	.fill	3984,1,0
	.align	4096
	.org	0x13000

#ifdef CONFIG_SHARED_KERNEL
	.org	0x100000
+2 −2
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ startup_continue:
.Lparmaddr:
	.quad	PARMAREA

	.align 4096
	.org	0x12000
.Lsccb:
	.hword 0x1000			# length, one page
	.byte 0x00,0x00,0x00
@@ -285,7 +285,7 @@ startup_continue:
.Lscpincr2:
	.quad 0x00
	.fill 3984,1,0
	.align 4096
	.org	0x13000

#ifdef CONFIG_SHARED_KERNEL
	.org   0x100000
+36 −10
Original line number Diff line number Diff line
@@ -877,31 +877,57 @@ static struct bin_attribute ipl_scp_data_attr = {

static decl_subsys(ipl, NULL, NULL);

static int ipl_register_fcp_files(void)
{
	int rc;

	rc = sysfs_create_group(&ipl_subsys.kset.kobj,
				&ipl_fcp_attr_group);
	if (rc)
		goto out;
	rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				   &ipl_parameter_attr);
	if (rc)
		goto out_ipl_parm;
	rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				   &ipl_scp_data_attr);
	if (!rc)
		goto out;

	sysfs_remove_bin_file(&ipl_subsys.kset.kobj, &ipl_parameter_attr);

out_ipl_parm:
	sysfs_remove_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group);
out:
	return rc;
}

static int __init
ipl_device_sysfs_register(void) {
	int rc;

	rc = firmware_register(&ipl_subsys);
	if (rc)
		return rc;
		goto out;

	switch (get_ipl_type()) {
	case ipl_type_ccw:
		sysfs_create_group(&ipl_subsys.kset.kobj, &ipl_ccw_attr_group);
		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
					&ipl_ccw_attr_group);
		break;
	case ipl_type_fcp:
		sysfs_create_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group);
		sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				      &ipl_parameter_attr);
		sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				      &ipl_scp_data_attr);
		rc = ipl_register_fcp_files();
		break;
	default:
		sysfs_create_group(&ipl_subsys.kset.kobj,
		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
					&ipl_unknown_attr_group);
		break;
	}
	return 0;

	if (rc)
		firmware_unregister(&ipl_subsys);
out:
	return rc;
}

__initcall(ipl_device_sysfs_register);
+7 −18
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@

#include <asm/page.h>
#include <asm/oplib.h>
#include <asm/prom.h>
#include <asm/smp.h>
#include <asm/system.h>
#include <asm/cpudata.h>
@@ -34,12 +35,6 @@ static int check_cpu_node(int nd, int *cur_inst,
			  int (*compare)(int, int, void *), void *compare_arg,
			  int *prom_node, int *mid)
{
	char node_str[128];

	prom_getstring(nd, "device_type", node_str, sizeof(node_str));
	if (strcmp(node_str, "cpu"))
		return -ENODEV;
	
	if (!compare(nd, *cur_inst, compare_arg)) {
		if (prom_node)
			*prom_node = nd;
@@ -59,19 +54,13 @@ static int check_cpu_node(int nd, int *cur_inst,
static int __cpu_find_by(int (*compare)(int, int, void *), void *compare_arg,
			 int *prom_node, int *mid)
{
	int nd, cur_inst, err;
	struct device_node *dp;
	int cur_inst;

	nd = prom_root_node;
	cur_inst = 0;

	err = check_cpu_node(nd, &cur_inst, compare, compare_arg,
			     prom_node, mid);
	if (!err)
		return 0;

	nd = prom_getchild(nd);
	while ((nd = prom_getsibling(nd)) != 0) {
		err = check_cpu_node(nd, &cur_inst, compare, compare_arg,
	for_each_node_by_type(dp, "cpu") {
		int err = check_cpu_node(dp->node, &cur_inst,
					 compare, compare_arg,
					 prom_node, mid);
		if (!err)
			return 0;
Loading