|
@@ -24,6 +24,9 @@
|
|
|
#include <linux/dvb/frontend.h>
|
|
|
#include "dvb_frontend.h"
|
|
|
|
|
|
+/* Max transfer size done by I2C transfer functions */
|
|
|
+#define MAX_XFER_SIZE 80
|
|
|
+
|
|
|
/* Registers (Write-only) */
|
|
|
#define XREG_INIT 0x00
|
|
|
#define XREG_RF_FREQ 0x02
|
|
@@ -547,7 +550,10 @@ static int load_firmware(struct dvb_frontend *fe, unsigned int type,
|
|
|
{
|
|
|
struct xc2028_data *priv = fe->tuner_priv;
|
|
|
int pos, rc;
|
|
|
- unsigned char *p, *endp, buf[priv->ctrl.max_len];
|
|
|
+ unsigned char *p, *endp, buf[MAX_XFER_SIZE];
|
|
|
+
|
|
|
+ if (priv->ctrl.max_len > sizeof(buf))
|
|
|
+ priv->ctrl.max_len = sizeof(buf);
|
|
|
|
|
|
tuner_dbg("%s called\n", __func__);
|
|
|
|