diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index 00e63b9..a11d0c1 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -661,6 +661,19 @@ static int rtl2832_set_frontend(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
+ret = rtl2832_wr_regs(priv, 0x61, 0, "\x80", 1); // enable PID filter
+ret = rtl2832_wr_regs(priv, 0x62, 0, "\xff", 1); // enable filters 0-7
+ret = rtl2832_wr_regs(priv, 0x63, 0, "\x00", 1); // disable filters 8-15
+ret = rtl2832_wr_regs(priv, 0x64, 0, "\x00", 1); // disable filters 16-23
+ret = rtl2832_wr_regs(priv, 0x65, 0, "\x00", 1); // disable filters 24-31
+ret = rtl2832_wr_regs(priv, 0x66, 0, "\x00\x00", 2); // filter 0
+ret = rtl2832_wr_regs(priv, 0x68, 0, "\x00\x01", 2); // filter 1
+ret = rtl2832_wr_regs(priv, 0x6a, 0, "\x00\x11", 2); // filter 2
+ret = rtl2832_wr_regs(priv, 0x6c, 0, "\x00\x12", 2); // filter 3
+ret = rtl2832_wr_regs(priv, 0x6e, 0, "\x01\x00", 2); // filter 4
+ret = rtl2832_wr_regs(priv, 0x70, 0, "\x02\x00", 2); // filter 5
+ret = rtl2832_wr_regs(priv, 0x72, 0, "\x02\x01", 2); // filter 6
+ret = rtl2832_wr_regs(priv, 0x74, 0, "\x02\x02", 2); // filter 7
 
 	/* soft reset */
 	ret = rtl2832_wr_demod_reg(priv, DVBT_SOFT_RST, 0x1);
