Mauro, This changeset is not in your git tree for Linus, but it fixes a regression in the 2.6.31 kernel -- can you push this to Linus as well? Thanks & regards, Mike On Tue, Aug 11, 2009 at 1:00 PM, Patch from Michael Krufky<hg-commit@xxxxxxxxxxx> wrote: > The patch number 12446 was added via Michael Krufky <mkrufky@xxxxxxxxxxxxxx> > to http://linuxtv.org/hg/v4l-dvb master development tree. > > Kernel patches in this development tree may be modified to be backward > compatible with older kernels. Compatibility modifications will be > removed before inclusion into the mainstream Kernel > > If anyone has any objections, please let us know by sending a message to: > Linux Media Mailing List <linux-media@xxxxxxxxxxxxxxx> > > ------ > > From: Michael Krufky <mkrufky@xxxxxxxxxxxxxx> > sms1xxx: restore GPIO functionality for all Hauppauge devices > > > Previous changesets broke Hauppauge devices and their GPIO configurations. > > This changeset restores the LED & LNA functionality. > > Priority: high > > Signed-off-by: Michael Krufky <mkrufky@xxxxxxxxxxxxxx> > > > --- > > linux/drivers/media/dvb/siano/smsdvb.c | 44 +++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff -r 70c2efcd6b4a -r f2deba9c23d6 linux/drivers/media/dvb/siano/smsdvb.c > --- a/linux/drivers/media/dvb/siano/smsdvb.c Sun Jul 12 17:25:45 2009 -0400 > +++ b/linux/drivers/media/dvb/siano/smsdvb.c Sun Jul 12 22:30:14 2009 -0400 > @@ -325,6 +325,16 @@ > 0 : -ETIME; > } > > +static inline int led_feedback(struct smsdvb_client_t *client) > +{ > + if (client->fe_status & FE_HAS_LOCK) > + return sms_board_led_feedback(client->coredev, > + (client->sms_stat_dvb.ReceptionData.BER > + == 0) ? SMS_LED_HI : SMS_LED_LO); > + else > + return sms_board_led_feedback(client->coredev, SMS_LED_OFF); > +} > + > static int smsdvb_read_status(struct dvb_frontend *fe, fe_status_t *stat) > { > struct smsdvb_client_t *client; > @@ -332,6 +342,8 @@ > > *stat = client->fe_status; > > + led_feedback(client); > + > return 0; > } > > @@ -342,6 +354,8 @@ > > *ber = client->sms_stat_dvb.ReceptionData.BER; > > + led_feedback(client); > + > return 0; > } > > @@ -359,6 +373,8 @@ > (client->sms_stat_dvb.ReceptionData.InBandPwr > + 95) * 3 / 2; > > + led_feedback(client); > + > return 0; > } > > @@ -369,6 +385,8 @@ > > *snr = client->sms_stat_dvb.ReceptionData.SNR; > > + led_feedback(client); > + > return 0; > } > > @@ -379,6 +397,8 @@ > > *ucblocks = client->sms_stat_dvb.ReceptionData.ErrorTSPackets; > > + led_feedback(client); > + > return 0; > } > > @@ -404,6 +424,8 @@ > u32 Data[3]; > } Msg; > > + int ret; > + > client->fe_status = FE_HAS_SIGNAL; > client->event_fe_state = -1; > client->event_unc_state = -1; > @@ -429,6 +451,23 @@ > case BANDWIDTH_AUTO: return -EOPNOTSUPP; > default: return -EINVAL; > } > + /* Disable LNA, if any. An error is returned if no LNA is present */ > + ret = sms_board_lna_control(client->coredev, 0); > + if (ret == 0) { > + fe_status_t status; > + > + /* tune with LNA off at first */ > + ret = smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg), > + &client->tune_done); > + > + smsdvb_read_status(fe, &status); > + > + if (status & FE_HAS_LOCK) > + return ret; > + > + /* previous tune didnt lock - enable LNA and tune again */ > + sms_board_lna_control(client->coredev, 1); > + } > > return smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg), > &client->tune_done); > @@ -454,6 +493,8 @@ > struct smsdvb_client_t *client = > container_of(fe, struct smsdvb_client_t, frontend); > > + sms_board_power(client->coredev, 1); > + > sms_board_dvb3_event(client, DVB3_EVENT_INIT); > return 0; > } > @@ -463,6 +504,9 @@ > struct smsdvb_client_t *client = > container_of(fe, struct smsdvb_client_t, frontend); > > + sms_board_led_feedback(client->coredev, SMS_LED_OFF); > + sms_board_power(client->coredev, 0); > + > sms_board_dvb3_event(client, DVB3_EVENT_SLEEP); > > return 0; > > > --- > > Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/f2deba9c23d68c9b46812c76b5aebee189f36b20 > > _______________________________________________ > linuxtv-commits mailing list > linuxtv-commits@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html