From f580142959c2e8aacd6e8c6613daf36c8a5d135e Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Mon, 10 Dec 2012 17:37:11 -0300 Subject: [PATCH] --- yaml --- r: 357183 b: refs/heads/master c: 7543f344e9b06afe86b55a2620f5c11b38bd5642 h: refs/heads/master i: 357181: fb0483d0869e3de1cf3fef73c2c00b402ed16eae 357179: a63b55a991990bf86d7a2b55e54c4280a2b67a5f 357175: 833673e71b899b256d04df05b329f6fbb8d6c354 357167: fe6e7a562ce6d192cab473186f162ef972c195d5 357151: 8f299f2a122645c4ee8eed02c03c233f0b8bd1c7 357119: 23e2d649f91f01abe529d95a4be4b59538873c05 v: v3 --- [refs] | 2 +- trunk/drivers/media/usb/dvb-usb/m920x.c | 28 +++++++++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index e9cd6acefa7b..6b7e935327af 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 908498349562ff6614d570b40e904a20d397dafa +refs/heads/master: 7543f344e9b06afe86b55a2620f5c11b38bd5642 diff --git a/trunk/drivers/media/usb/dvb-usb/m920x.c b/trunk/drivers/media/usb/dvb-usb/m920x.c index 433696d14f4b..23416fbb9f8c 100644 --- a/trunk/drivers/media/usb/dvb-usb/m920x.c +++ b/trunk/drivers/media/usb/dvb-usb/m920x.c @@ -63,6 +63,21 @@ static inline int m920x_write(struct usb_device *udev, u8 request, return ret; } +static inline int m920x_write_seq(struct usb_device *udev, u8 request, + struct m920x_inits *seq) +{ + int ret; + while (seq->address) { + ret = m920x_write(udev, request, seq->data, seq->address); + if (ret != 0) + return ret; + + seq++; + } + + return ret; +} + static int m920x_init(struct dvb_usb_device *d, struct m920x_inits *rc_seq) { int ret = 0, i, epi, flags = 0; @@ -71,15 +86,10 @@ static int m920x_init(struct dvb_usb_device *d, struct m920x_inits *rc_seq) /* Remote controller init. */ if (d->props.rc.legacy.rc_query) { deb("Initialising remote control\n"); - while (rc_seq->address) { - if ((ret = m920x_write(d->udev, M9206_CORE, - rc_seq->data, - rc_seq->address)) != 0) { - deb("Initialising remote control failed\n"); - return ret; - } - - rc_seq++; + ret = m920x_write_seq(d->udev, M9206_CORE, rc_seq); + if (ret != 0) { + deb("Initialising remote control failed\n"); + return ret; } deb("Initialising remote control success\n");