- memset(buf,0,sizeof(buf));
- tda9887_set_tvnorm(t,buf);
- if (UNSET != t->pinnacle_id) {
- tda9887_set_pinnacle(t,buf);
+ memset(t->data,0,sizeof(t->data));
+ tda9887_set_tvnorm(t,t->data);
+
+ /* A note on the port settings:
+ These settings tend to depend on the specifics of the board.
+ By default they are set to inactive (bit value 1) by this driver,
+ overwriting any changes made by the tvnorm. This means that it
+ is the responsibility of the module using the tda9887 to set
+ these values in case of changes in the tvnorm.
+ In many cases port 2 should be made active (0) when selecting
+ SECAM-L, and port 2 should remain inactive (1) for SECAM-L'.
+
+ For the other standards the tda9887 application note says that
+ the ports should be set to active (0), but, again, that may
+ differ depending on the precise hardware configuration.
+ */
+ t->data[1] |= cOutputPort1Inactive;
+ t->data[1] |= cOutputPort2Inactive;
+
+ tda9887_set_config(t,t->data);
+ tda9887_set_insmod(t,t->data);
+
+ if (t->mode == T_STANDBY) {
+ t->data[1] |= cForcedMuteAudioON;