mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
media: i2c: enable i2c IR for hardware which isn't HD-PVR
This is a fix for commit329d88da4d
("[media] media: i2c: Don't export ir-kbd-i2c module alias") that stopped the module from being loaded automagically. The problems described only affect the HD-PVR, so it should not affect other hardware; also if the module happens to be loaded, the i2c IR part of the HD-PVR will be enabled anyway. Fixes:329d88da4d
("[media] media: i2c: Don't export ir-kbd-i2c module alias") Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
acaa34bf06
commit
1cb26030f3
1 changed files with 9 additions and 0 deletions
|
@ -63,6 +63,9 @@
|
||||||
#define FLAG_TX 1
|
#define FLAG_TX 1
|
||||||
#define FLAG_HDPVR 2
|
#define FLAG_HDPVR 2
|
||||||
|
|
||||||
|
static bool enable_hdpvr;
|
||||||
|
module_param(enable_hdpvr, bool, 0644);
|
||||||
|
|
||||||
static int get_key_haup_common(struct IR_i2c *ir, enum rc_proto *protocol,
|
static int get_key_haup_common(struct IR_i2c *ir, enum rc_proto *protocol,
|
||||||
u32 *scancode, u8 *ptoggle, int size)
|
u32 *scancode, u8 *ptoggle, int size)
|
||||||
{
|
{
|
||||||
|
@ -726,6 +729,11 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||||
unsigned short addr = client->addr;
|
unsigned short addr = client->addr;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
if ((id->driver_data & FLAG_HDPVR) && !enable_hdpvr) {
|
||||||
|
dev_err(&client->dev, "IR for HDPVR is known to cause problems during recording, use enable_hdpvr modparam to enable\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
ir = devm_kzalloc(&client->dev, sizeof(*ir), GFP_KERNEL);
|
ir = devm_kzalloc(&client->dev, sizeof(*ir), GFP_KERNEL);
|
||||||
if (!ir)
|
if (!ir)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -925,6 +933,7 @@ static const struct i2c_device_id ir_kbd_id[] = {
|
||||||
{ "ir_z8f0811_hdpvr", FLAG_TX | FLAG_HDPVR },
|
{ "ir_z8f0811_hdpvr", FLAG_TX | FLAG_HDPVR },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
MODULE_DEVICE_TABLE(i2c, ir_kbd_id);
|
||||||
|
|
||||||
static struct i2c_driver ir_kbd_driver = {
|
static struct i2c_driver ir_kbd_driver = {
|
||||||
.driver = {
|
.driver = {
|
||||||
|
|
Loading…
Reference in a new issue