Decrease number of pointer derefs in flexcop-fe-tuner.c
PATCH 1/1 Decrease number of pointer derefs in flexcop-fe-tuner.c
Hi,
Here's a small patch to decrease the number of pointer derefs in drivers/media/dvb/b2c2/flexcop-fe-tuner.c
Benefits of the patch:
- Fewer pointer dereferences should make the code slightly faster.
- Size of generated code is smaller
- Improved readability
Please consider applying.
---
drivers/media/dvb/b2c2/flexcop-fe-tuner.c | 31 ++++++++++++++++++------------ 1 files changed, 19 insertions(+), 12 deletions(-)
orig:
text data bss dec hex filename
3072 424 0 3496 da8 drivers/media/dvb/b2c2/flexcop-fe-tuner.o
patched:
text data bss dec hex filename
3041 424 0 3465 d89 drivers/media/dvb/b2c2/flexcop-fe-tuner.o
drivers/media/dvb/b2c2/flexcop-fe-tuner.c +19 -12
@@ -485,12 +485,16 @@ static struct stv0297_config alps_tdee4_/* try to figure out the frontend, each card/box can have on of the following list */ int flexcop_frontend_init (struct flexcop_device *fc) { +struct dvb_frontend_ops *ops; +/* try the sky v2.6 (stv0299/Samsung tbmu24112(sl1935)) */ if ((fc->fe =stv0299_attach (&samsung_tbmu24112_config, &fc->i2c_adap)) !=NULL ) { - fc->fe->ops->set_voltage = flexcop_set_voltage; + ops = fc->fe->ops; + + ops->set_voltage = flexcop_set_voltage; - fc->fe_sleep = fc->fe->ops->sleep; - fc->fe->ops->sleep = flexcop_sleep; + fc->fe_sleep = ops->sleep; + ops->sleep = flexcop_sleep; fc->dev_type =FC_SKY ;info ("found the stv0299 at i2c address: 0x%02x" ,samsung_tbmu24112_config.demod_address);
@@ -522,15 +526,17 @@ int flexcop_frontend_init(struct flexcop }else /* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */ if ((fc->fe =vp310_attach (&skystar23_samsung_tbdu18132_config, &fc->i2c_adap)) !=NULL ) { - fc->fe->ops->diseqc_send_master_cmd = flexcop_diseqc_send_master_cmd; - fc->fe->ops->diseqc_send_burst = flexcop_diseqc_send_burst; - fc->fe->ops->set_tone = flexcop_set_tone; - fc->fe->ops->set_voltage = flexcop_set_voltage; + ops = fc->fe->ops; + + ops->diseqc_send_master_cmd = flexcop_diseqc_send_master_cmd; + ops->diseqc_send_burst = flexcop_diseqc_send_burst; + ops->set_tone = flexcop_set_tone; + ops->set_voltage = flexcop_set_voltage; - fc->fe_sleep = fc->fe->ops->sleep; - fc->fe->ops->sleep = flexcop_sleep; + fc->fe_sleep = ops->sleep; + ops->sleep = flexcop_sleep; - fc->dev_type =FC_SKY_OLD ; + fc->dev_type =FC_SKY_OLD ;info ("found the vp310 (aka mt312) at i2c address: 0x%02x" ,skystar23_samsung_tbdu18132_config.demod_address); }
@@ -540,8 +546,9 @@ int flexcop_frontend_init(struct flexcop }else {if (dvb_register_frontend (&fc->dvb_adapter, fc->fe)) {err ("frontend registration failed!" ); -if (fc->fe->ops->release !=NULL ) - fc->fe->ops->release (fc->fe); + ops = fc->fe->ops; +if (ops->release !=NULL ) + ops->release (fc->fe); fc->fe =NULL ;return -EINVAL ; }
Hi Jesper,
Thank you for patch. I applied it to our v4l-dvb CVS.
Quoted 9 lines · Jesper Juhl
Here's a small patch to decrease the number of pointer derefs in
drivers/media/dvb/b2c2/flexcop-fe-tuner.cBenefits of the patch:
- Fewer pointer dereferences should make the code slightly faster.
- Size of generated code is smaller
- Improved readabilityPlease consider applying.
best regards,
Patrick.
--
Mail: [email protected]
WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/