aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/sbus
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-08-05 21:57:18 -0400
committerDavid S. Miller <davem@davemloft.net>2014-08-05 21:57:18 -0400
commite9011d086674caeedb0ffb6eb5b8bc5920821df3 (patch)
treeed5d06353d8dc1fa5f6da349808f8345ca2291a5 /drivers/sbus
parentcfcfe22256d5a8a14924a1145d56017b043b554f (diff)
parentc78f77e20d2ba5d4d5e478e85a6fb42556893e2d (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
Conflicts: arch/sparc/mm/init_64.c Conflict was simple non-overlapping additions. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/sbus')
-rw-r--r--drivers/sbus/char/bbc_envctrl.c6
-rw-r--r--drivers/sbus/char/bbc_i2c.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/drivers/sbus/char/bbc_envctrl.c b/drivers/sbus/char/bbc_envctrl.c
index 160e7510aca6..0787b9756165 100644
--- a/drivers/sbus/char/bbc_envctrl.c
+++ b/drivers/sbus/char/bbc_envctrl.c
@@ -452,6 +452,9 @@ static void attach_one_temp(struct bbc_i2c_bus *bp, struct platform_device *op,
452 if (!tp) 452 if (!tp)
453 return; 453 return;
454 454
455 INIT_LIST_HEAD(&tp->bp_list);
456 INIT_LIST_HEAD(&tp->glob_list);
457
455 tp->client = bbc_i2c_attach(bp, op); 458 tp->client = bbc_i2c_attach(bp, op);
456 if (!tp->client) { 459 if (!tp->client) {
457 kfree(tp); 460 kfree(tp);
@@ -497,6 +500,9 @@ static void attach_one_fan(struct bbc_i2c_bus *bp, struct platform_device *op,
497 if (!fp) 500 if (!fp)
498 return; 501 return;
499 502
503 INIT_LIST_HEAD(&fp->bp_list);
504 INIT_LIST_HEAD(&fp->glob_list);
505
500 fp->client = bbc_i2c_attach(bp, op); 506 fp->client = bbc_i2c_attach(bp, op);
501 if (!fp->client) { 507 if (!fp->client) {
502 kfree(fp); 508 kfree(fp);
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c
index c7763e482eb2..812b5f0361b6 100644
--- a/drivers/sbus/char/bbc_i2c.c
+++ b/drivers/sbus/char/bbc_i2c.c
@@ -300,13 +300,18 @@ static struct bbc_i2c_bus * attach_one_i2c(struct platform_device *op, int index
300 if (!bp) 300 if (!bp)
301 return NULL; 301 return NULL;
302 302
303 INIT_LIST_HEAD(&bp->temps);
304 INIT_LIST_HEAD(&bp->fans);
305
303 bp->i2c_control_regs = of_ioremap(&op->resource[0], 0, 0x2, "bbc_i2c_regs"); 306 bp->i2c_control_regs = of_ioremap(&op->resource[0], 0, 0x2, "bbc_i2c_regs");
304 if (!bp->i2c_control_regs) 307 if (!bp->i2c_control_regs)
305 goto fail; 308 goto fail;
306 309
307 bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel"); 310 if (op->num_resources == 2) {
308 if (!bp->i2c_bussel_reg) 311 bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel");
309 goto fail; 312 if (!bp->i2c_bussel_reg)
313 goto fail;
314 }
310 315
311 bp->waiting = 0; 316 bp->waiting = 0;
312 init_waitqueue_head(&bp->wq); 317 init_waitqueue_head(&bp->wq);