Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 29951
b: refs/heads/master
c: 5c1208b
h: refs/heads/master
i:
  29949: 1afebf1
  29947: 2a23a74
  29943: f67b6a9
  29935: b43caeb
  29919: a170e04
  29887: 104ac0c
  29823: 99aa9cc
  29695: 149aa9b
v: v3
  • Loading branch information
Andrew de Quincey authored and Mauro Carvalho Chehab committed Jun 25, 2006
1 parent e0975d1 commit 2ed8f96
Show file tree
Hide file tree
Showing 5 changed files with 154 additions and 77 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 48c35756a762e2d569dfd9ab2f24d1b63ea657b9
refs/heads/master: 5c1208ba457a1668c81868060c08496a2d053be0
25 changes: 23 additions & 2 deletions trunk/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
Original file line number Diff line number Diff line change
Expand Up @@ -1060,8 +1060,18 @@ static int dvb_ca_en50221_thread(void *data)
break;

case DVB_CA_SLOTSTATE_VALIDATE:
if (dvb_ca_en50221_parse_attributes(ca, slot)
!= 0) {
if (dvb_ca_en50221_parse_attributes(ca, slot) != 0) {
/* we need this extra check for annoying interfaces like the budget-av */
if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
(ca->pub->poll_slot_status)) {
int status = ca->pub->poll_slot_status(ca->pub, slot, 0);
if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) {
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
dvb_ca_en50221_thread_update_delay(ca);
break;
}
}

printk("dvb_ca adapter %d: Invalid PC card inserted :(\n",
ca->dvbdev->adapter->num);
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID;
Expand Down Expand Up @@ -1108,6 +1118,17 @@ static int dvb_ca_en50221_thread(void *data)

case DVB_CA_SLOTSTATE_LINKINIT:
if (dvb_ca_en50221_link_init(ca, slot) != 0) {
/* we need this extra check for annoying interfaces like the budget-av */
if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
(ca->pub->poll_slot_status)) {
int status = ca->pub->poll_slot_status(ca->pub, slot, 0);
if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) {
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
dvb_ca_en50221_thread_update_delay(ca);
break;
}
}

printk("dvb_ca adapter %d: DVB CAM link initialisation failed :(\n", ca->dvbdev->adapter->num);
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID;
dvb_ca_en50221_thread_update_delay(ca);
Expand Down
8 changes: 8 additions & 0 deletions trunk/drivers/media/dvb/frontends/tda10021.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,14 @@ static int tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data)
return (ret != 1) ? -EREMOTEIO : 0;
}

int tda10021_write_byte(struct dvb_frontend* fe, int reg, int data)
{
struct tda10021_state* state = fe->demodulator_priv;

return tda10021_writereg(state, reg, data);
}
EXPORT_SYMBOL(tda10021_write_byte);

static u8 tda10021_readreg (struct tda10021_state* state, u8 reg)
{
u8 b0 [] = { reg };
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/media/dvb/frontends/tda10021.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,6 @@ struct tda10021_config
extern struct dvb_frontend* tda10021_attach(const struct tda10021_config* config,
struct i2c_adapter* i2c, u8 pwm);

extern int tda10021_write_byte(struct dvb_frontend* fe, int reg, int data);

#endif // TDA10021_H
Loading

0 comments on commit 2ed8f96

Please sign in to comment.