These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / media / radio / si470x / radio-si470x-i2c.c
index 2a497c8..471d6a8 100644 (file)
@@ -384,14 +384,14 @@ static int si470x_i2c_probe(struct i2c_client *client,
                goto err_radio;
        }
        dev_info(&client->dev, "DeviceID=0x%4.4hx ChipID=0x%4.4hx\n",
-                       radio->registers[DEVICEID], radio->registers[CHIPID]);
-       if ((radio->registers[CHIPID] & CHIPID_FIRMWARE) < RADIO_FW_VERSION) {
+                       radio->registers[DEVICEID], radio->registers[SI_CHIPID]);
+       if ((radio->registers[SI_CHIPID] & SI_CHIPID_FIRMWARE) < RADIO_FW_VERSION) {
                dev_warn(&client->dev,
                        "This driver is known to work with "
                        "firmware version %hu,\n", RADIO_FW_VERSION);
                dev_warn(&client->dev,
                        "but the device has firmware version %hu.\n",
-                       radio->registers[CHIPID] & CHIPID_FIRMWARE);
+                       radio->registers[SI_CHIPID] & SI_CHIPID_FIRMWARE);
                version_warning = 1;
        }
 
@@ -421,7 +421,8 @@ static int si470x_i2c_probe(struct i2c_client *client,
        init_waitqueue_head(&radio->read_queue);
 
        retval = request_threaded_irq(client->irq, NULL, si470x_i2c_interrupt,
-                       IRQF_TRIGGER_FALLING, DRIVER_NAME, radio);
+                       IRQF_TRIGGER_FALLING | IRQF_ONESHOT, DRIVER_NAME,
+                       radio);
        if (retval) {
                dev_err(&client->dev, "Failed to register interrupt\n");
                goto err_rds;