diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-04-14 12:18:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-04-14 12:18:17 -0400 |
commit | 82f1faa86727de976e38eade5e96a1846742d71e (patch) | |
tree | 82df7b145495e02943bbd5aaa186eac29ff6c3cf | |
parent | e16d8b6e1f8b67eda0a746a3b9ee7c37fc3b688b (diff) | |
parent | e68d490def9f7d726eea6dc62ebd692af64ec8b5 (diff) |
Merge tag 'fbdev-v4.11-rc6' of git://github.com/bzolnier/linux
Pull fbdev fixes from Bartlomiej Zolnierkiewicz:
- fix probing time checks in omapfb driver (regression fix)
- fix optional VBAT support in ssd1307fb driver (regression fix)
- fix connecting to backend in xen-fbfront driver
* tag 'fbdev-v4.11-rc6' of git://github.com/bzolnier/linux:
fbdev: omapfb: delete check_required_callbacks()
xen, fbfront: fix connecting to backend
fbdev/ssd1307fb: fix optional VBAT support
-rw-r--r-- | drivers/video/fbdev/omap/omapfb_main.c | 15 | ||||
-rw-r--r-- | drivers/video/fbdev/ssd1307fb.c | 24 | ||||
-rw-r--r-- | drivers/video/fbdev/xen-fbfront.c | 4 |
3 files changed, 18 insertions, 25 deletions
diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c index 1abba07b84b3..f4cbfb3b8a09 100644 --- a/drivers/video/fbdev/omap/omapfb_main.c +++ b/drivers/video/fbdev/omap/omapfb_main.c | |||
@@ -1608,19 +1608,6 @@ static int omapfb_find_ctrl(struct omapfb_device *fbdev) | |||
1608 | return 0; | 1608 | return 0; |
1609 | } | 1609 | } |
1610 | 1610 | ||
1611 | static void check_required_callbacks(struct omapfb_device *fbdev) | ||
1612 | { | ||
1613 | #define _C(x) (fbdev->ctrl->x != NULL) | ||
1614 | #define _P(x) (fbdev->panel->x != NULL) | ||
1615 | BUG_ON(fbdev->ctrl == NULL || fbdev->panel == NULL); | ||
1616 | BUG_ON(!(_C(init) && _C(cleanup) && _C(get_caps) && | ||
1617 | _C(set_update_mode) && _C(setup_plane) && _C(enable_plane) && | ||
1618 | _P(init) && _P(cleanup) && _P(enable) && _P(disable) && | ||
1619 | _P(get_caps))); | ||
1620 | #undef _P | ||
1621 | #undef _C | ||
1622 | } | ||
1623 | |||
1624 | /* | 1611 | /* |
1625 | * Called by LDM binding to probe and attach a new device. | 1612 | * Called by LDM binding to probe and attach a new device. |
1626 | * Initialization sequence: | 1613 | * Initialization sequence: |
@@ -1705,8 +1692,6 @@ static int omapfb_do_probe(struct platform_device *pdev, | |||
1705 | omapfb_ops.fb_mmap = omapfb_mmap; | 1692 | omapfb_ops.fb_mmap = omapfb_mmap; |
1706 | init_state++; | 1693 | init_state++; |
1707 | 1694 | ||
1708 | check_required_callbacks(fbdev); | ||
1709 | |||
1710 | r = planes_init(fbdev); | 1695 | r = planes_init(fbdev); |
1711 | if (r) | 1696 | if (r) |
1712 | goto cleanup; | 1697 | goto cleanup; |
diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c index bd017b57c47f..f599520374dd 100644 --- a/drivers/video/fbdev/ssd1307fb.c +++ b/drivers/video/fbdev/ssd1307fb.c | |||
@@ -578,10 +578,14 @@ static int ssd1307fb_probe(struct i2c_client *client, | |||
578 | 578 | ||
579 | par->vbat_reg = devm_regulator_get_optional(&client->dev, "vbat"); | 579 | par->vbat_reg = devm_regulator_get_optional(&client->dev, "vbat"); |
580 | if (IS_ERR(par->vbat_reg)) { | 580 | if (IS_ERR(par->vbat_reg)) { |
581 | dev_err(&client->dev, "failed to get VBAT regulator: %ld\n", | ||
582 | PTR_ERR(par->vbat_reg)); | ||
583 | ret = PTR_ERR(par->vbat_reg); | 581 | ret = PTR_ERR(par->vbat_reg); |
584 | goto fb_alloc_error; | 582 | if (ret == -ENODEV) { |
583 | par->vbat_reg = NULL; | ||
584 | } else { | ||
585 | dev_err(&client->dev, "failed to get VBAT regulator: %d\n", | ||
586 | ret); | ||
587 | goto fb_alloc_error; | ||
588 | } | ||
585 | } | 589 | } |
586 | 590 | ||
587 | if (of_property_read_u32(node, "solomon,width", &par->width)) | 591 | if (of_property_read_u32(node, "solomon,width", &par->width)) |
@@ -668,10 +672,13 @@ static int ssd1307fb_probe(struct i2c_client *client, | |||
668 | udelay(4); | 672 | udelay(4); |
669 | } | 673 | } |
670 | 674 | ||
671 | ret = regulator_enable(par->vbat_reg); | 675 | if (par->vbat_reg) { |
672 | if (ret) { | 676 | ret = regulator_enable(par->vbat_reg); |
673 | dev_err(&client->dev, "failed to enable VBAT: %d\n", ret); | 677 | if (ret) { |
674 | goto reset_oled_error; | 678 | dev_err(&client->dev, "failed to enable VBAT: %d\n", |
679 | ret); | ||
680 | goto reset_oled_error; | ||
681 | } | ||
675 | } | 682 | } |
676 | 683 | ||
677 | ret = ssd1307fb_init(par); | 684 | ret = ssd1307fb_init(par); |
@@ -710,7 +717,8 @@ panel_init_error: | |||
710 | pwm_put(par->pwm); | 717 | pwm_put(par->pwm); |
711 | }; | 718 | }; |
712 | regulator_enable_error: | 719 | regulator_enable_error: |
713 | regulator_disable(par->vbat_reg); | 720 | if (par->vbat_reg) |
721 | regulator_disable(par->vbat_reg); | ||
714 | reset_oled_error: | 722 | reset_oled_error: |
715 | fb_deferred_io_cleanup(info); | 723 | fb_deferred_io_cleanup(info); |
716 | fb_alloc_error: | 724 | fb_alloc_error: |
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c index d0115a7af0a9..3ee309c50b2d 100644 --- a/drivers/video/fbdev/xen-fbfront.c +++ b/drivers/video/fbdev/xen-fbfront.c | |||
@@ -643,7 +643,6 @@ static void xenfb_backend_changed(struct xenbus_device *dev, | |||
643 | break; | 643 | break; |
644 | 644 | ||
645 | case XenbusStateInitWait: | 645 | case XenbusStateInitWait: |
646 | InitWait: | ||
647 | xenbus_switch_state(dev, XenbusStateConnected); | 646 | xenbus_switch_state(dev, XenbusStateConnected); |
648 | break; | 647 | break; |
649 | 648 | ||
@@ -654,7 +653,8 @@ InitWait: | |||
654 | * get Connected twice here. | 653 | * get Connected twice here. |
655 | */ | 654 | */ |
656 | if (dev->state != XenbusStateConnected) | 655 | if (dev->state != XenbusStateConnected) |
657 | goto InitWait; /* no InitWait seen yet, fudge it */ | 656 | /* no InitWait seen yet, fudge it */ |
657 | xenbus_switch_state(dev, XenbusStateConnected); | ||
658 | 658 | ||
659 | if (xenbus_read_unsigned(info->xbdev->otherend, | 659 | if (xenbus_read_unsigned(info->xbdev->otherend, |
660 | "request-update", 0)) | 660 | "request-update", 0)) |