[media] drxk: remove the option to load firmware asynchronously
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 13 Jan 2014 07:31:31 +0000 (04:31 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 14 Jan 2014 16:40:10 +0000 (14:40 -0200)
The option to load firmware asynchronously were added due to
a requirement with a few versions of udev. It turns that this was
a bad idea and caused regressions on drxk-based devices.

So, we end by only letting the firmware to be loaded syncronously
everywhere.

So, let's remove the bad code.

This patch partially reverts the changeset 8e30783b0b3.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/dvb-frontends/drxk.h
drivers/media/dvb-frontends/drxk_hard.c
drivers/media/usb/em28xx/em28xx-dvb.c

index f22eb9f..f6cb346 100644 (file)
@@ -29,7 +29,6 @@
  *                             A value of 0 (default) or lower indicates that
  *                             the correct number of parameters will be
  *                             automatically detected.
- * @load_firmware_sync:                Force the firmware load to be synchronous.
  *
  * On the *_gpio vars, bit 0 is UIO-1, bit 1 is UIO-2 and bit 2 is
  * UIO-3.
@@ -41,7 +40,6 @@ struct drxk_config {
        bool    parallel_ts;
        bool    dynamic_clk;
        bool    enable_merr_cfg;
-       bool    load_firmware_sync;
 
        bool    antenna_dvbt;
        u16     antenna_gpio;
index bf29a3f..cce94a7 100644 (file)
@@ -6830,25 +6830,13 @@ struct dvb_frontend *drxk_attach(const struct drxk_config *config,
 
        /* Load firmware and initialize DRX-K */
        if (state->microcode_name) {
-               if (config->load_firmware_sync) {
-                       const struct firmware *fw = NULL;
+               const struct firmware *fw = NULL;
 
-                       status = request_firmware(&fw, state->microcode_name,
-                                                 state->i2c->dev.parent);
-                       if (status < 0)
-                               fw = NULL;
-                       load_firmware_cb(fw, state);
-               } else {
-                       status = request_firmware_nowait(THIS_MODULE, 1,
-                                             state->microcode_name,
-                                             state->i2c->dev.parent,
-                                             GFP_KERNEL,
-                                             state, load_firmware_cb);
-                       if (status < 0) {
-                               pr_err("failed to request a firmware\n");
-                               return NULL;
-                       }
-               }
+               status = request_firmware(&fw, state->microcode_name,
+                                         state->i2c->dev.parent);
+               if (status < 0)
+                       fw = NULL;
+               load_firmware_cb(fw, state);
        } else if (init_drxk(state) < 0)
                goto error;
 
index f4cdf9e..881a813 100644 (file)
@@ -375,7 +375,6 @@ static struct drxk_config terratec_h5_drxk = {
        .no_i2c_bridge = 1,
        .microcode_name = "dvb-usb-terratec-h5-drxk.fw",
        .qam_demod_parameter_count = 2,
-       .load_firmware_sync = true,
 };
 
 static struct drxk_config hauppauge_930c_drxk = {
@@ -385,7 +384,6 @@ static struct drxk_config hauppauge_930c_drxk = {
        .microcode_name = "dvb-usb-hauppauge-hvr930c-drxk.fw",
        .chunk_size = 56,
        .qam_demod_parameter_count = 2,
-       .load_firmware_sync = true,
 };
 
 static struct drxk_config terratec_htc_stick_drxk = {
@@ -399,7 +397,6 @@ static struct drxk_config terratec_htc_stick_drxk = {
        .antenna_dvbt = true,
        /* The windows driver uses the same. This will disable LNA. */
        .antenna_gpio = 0x6,
-       .load_firmware_sync = true,
 };
 
 static struct drxk_config maxmedia_ub425_tc_drxk = {
@@ -408,7 +405,6 @@ static struct drxk_config maxmedia_ub425_tc_drxk = {
        .no_i2c_bridge = 1,
        .microcode_name = "dvb-demod-drxk-01.fw",
        .chunk_size = 62,
-       .load_firmware_sync = true,
        .qam_demod_parameter_count = 2,
 };
 
@@ -420,7 +416,6 @@ static struct drxk_config pctv_520e_drxk = {
        .chunk_size = 58,
        .antenna_dvbt = true, /* disable LNA */
        .antenna_gpio = (1 << 2), /* disable LNA */
-       .load_firmware_sync = true,
 };
 
 static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable)