|
@@ -323,14 +323,21 @@ static int __devinit s3c_hwmon_probe(struct platform_device *dev)
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(pdata->in); i++) {
|
|
|
- if (!pdata->in[i])
|
|
|
+ struct s3c24xx_adc_hwmon_incfg *cfg = pdata->in[i];
|
|
|
+
|
|
|
+ if (!cfg)
|
|
|
continue;
|
|
|
|
|
|
- if (pdata->in[i]->mult >= 0x10000)
|
|
|
+ if (cfg->mult >= 0x10000)
|
|
|
dev_warn(&dev->dev,
|
|
|
"channel %d multiplier too large\n",
|
|
|
i);
|
|
|
|
|
|
+ if (cfg->divider == 0) {
|
|
|
+ dev_err(&dev->dev, "channel %d divider zero\n", i);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
ret = s3c_hwmon_create_attr(&dev->dev, pdata->in[i],
|
|
|
&hwmon->attrs[i], i);
|
|
|
if (ret) {
|