media: rc: probe zilog transmitter when zilog receiver is found
authorSean Young <sean@mess.org>
Thu, 3 May 2018 10:38:40 +0000 (06:38 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 4 May 2018 12:22:36 +0000 (08:22 -0400)
Both Hauppauge WinTV 44981 (bt878) and the HVR 1110 (saa7134) have a Zilog
Z8F0811. The transmitter was not probed. Receive and transmit tested on
both cards.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/ir-kbd-i2c.c

index a7e23bcf845c321d91f6ec40906f81fb4bb6677a..a14a74e6b986ebb7409ca871679d7e65af785987 100644 (file)
@@ -739,6 +739,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
        struct rc_dev *rc = NULL;
        struct i2c_adapter *adap = client->adapter;
        unsigned short addr = client->addr;
+       bool probe_tx = (id->driver_data & FLAG_TX) != 0;
        int err;
 
        if ((id->driver_data & FLAG_HDPVR) && !enable_hdpvr) {
@@ -800,6 +801,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
                rc_proto    = RC_PROTO_BIT_RC5 | RC_PROTO_BIT_RC6_MCE |
                                                        RC_PROTO_BIT_RC6_6A_32;
                ir_codes    = RC_MAP_HAUPPAUGE;
+               probe_tx = true;
                break;
        }
 
@@ -892,7 +894,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
 
        INIT_DELAYED_WORK(&ir->work, ir_work);
 
-       if (id->driver_data & FLAG_TX) {
+       if (probe_tx) {
                ir->tx_c = i2c_new_dummy(client->adapter, 0x70);
                if (!ir->tx_c) {
                        dev_err(&client->dev, "failed to setup tx i2c address");