Samsung VZW MB1 update
/drivers/misc/fsa9485.c
blob:7f488fa3f8a647ee399d1d46116ae76b529aac3c -> blob:d23ca038dcdc236fa1886dc339d97ae84be46962
--- drivers/misc/fsa9485.c
+++ drivers/misc/fsa9485.c
@@ -154,10 +154,7 @@ struct fsa9485_usbsw {
struct input_dev *input;
int previous_key;
- int dock_ready;
-
struct delayed_work init_work;
- struct delayed_work audio_work;
struct mutex mutex;
int adc;
int deskdock;
@@ -213,38 +210,6 @@ static void EnableFSA9480Interrupts(void
}
-#if defined(CONFIG_MACH_AEGIS2)
-void fsa9485_checkandhookaudiodockfornoise(int value)
-{
- struct i2c_client *client = local_usbsw->client;
- int ret = 0;
-
- if (isDeskdockconnected) {
- ret = i2c_smbus_write_byte_data(client,
- FSA9485_REG_MANSW1, value);
-
- if (ret < 0)
- dev_err(&client->dev, "%s: err %d\n",
- __func__, ret);
-
- ret = i2c_smbus_read_byte_data(client,
- FSA9485_REG_CTRL);
-
- if (ret < 0)
- dev_err(&client->dev, "%s: err %d\n",
- __func__, ret);
-
- ret = i2c_smbus_write_byte_data(client,
- FSA9485_REG_CTRL,
- ret & ~CON_MANUAL_SW & ~CON_RAW_DATA);
- if (ret < 0)
- dev_err(&client->dev,
- "%s: err %d\n", __func__, ret);
- } else
- pr_info("Dock is not connect\n");
-}
-#endif
-
void FSA9485_CheckAndHookAudioDock(int value)
{
struct i2c_client *client = local_usbsw->client;
@@ -668,14 +633,12 @@ static int fsa9485_detect_dev(struct fsa
if (usbsw->dock_attached)
pdata->dock_cb(FSA9485_DETACHED_DOCK);
- if (local_usbsw->dock_ready == 1)
- if (adc == 0x10)
- val2 = DEV_SMARTDOCK;
- else if (adc == 0x12)
- val2 = DEV_AUDIO_DOCK;
+ if (adc == 0x10)
+ val2 = DEV_SMARTDOCK;
+ else if (adc == 0x12)
+ val2 = DEV_AUDIO_DOCK;
- dev_info(&client->dev, "dev1: 0x%x, dev2: 0x%x adc : 0x%x\n",
- val1, val2, adc);
+ dev_info(&client->dev, "dev1: 0x%x, dev2: 0x%x adc : 0x%x\n", val1, val2, adc);
/* Attached */
if (val1 || val2) {
@@ -856,7 +819,7 @@ static int fsa9485_detect_dev(struct fsa
dev_err(&client->dev,
"%s: err %d\n", __func__, ret);
- if (pdata->audio_dock_cb)
+ if (pdata->smartdock_cb)
pdata->audio_dock_cb(FSA9485_ATTACHED);
}
/* Detached */
@@ -965,7 +928,7 @@ static int fsa9485_detect_dev(struct fsa
dev_err(&client->dev,
"%s: err %d\n", __func__, ret);
- if (pdata->audio_dock_cb)
+ if (pdata->smartdock_cb)
pdata->audio_dock_cb(FSA9485_DETACHED);
usbsw->adc = 0;
}
@@ -1159,6 +1122,7 @@ static irqreturn_t fsa9485_irq_thread(in
}
return IRQ_HANDLED;
}
+
return IRQ_HANDLED;
}
@@ -1203,20 +1167,6 @@ static void fsa9485_init_detect(struct w
"failed to enable irq init %s\n", __func__);
}
-static void fsa9485_delayed_audio(struct work_struct *work)
-{
- struct fsa9485_usbsw *usbsw = container_of(work,
- struct fsa9485_usbsw, audio_work.work);
-
- dev_info(&usbsw->client->dev, "%s\n", __func__);
-
- local_usbsw->dock_ready = 1;
-
- mutex_lock(&usbsw->mutex);
- fsa9485_detect_dev(usbsw);
- mutex_unlock(&usbsw->mutex);
-}
-
static int __devinit fsa9485_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
@@ -1328,13 +1278,10 @@ static int __devinit fsa9485_probe(struc
if (usbsw->pdata->set_init_flag)
usbsw->pdata->set_init_flag();
-
- local_usbsw->dock_ready = 0;
/* initial cable detection */
INIT_DELAYED_WORK(&usbsw->init_work, fsa9485_init_detect);
schedule_delayed_work(&usbsw->init_work, msecs_to_jiffies(2700));
- INIT_DELAYED_WORK(&usbsw->audio_work, fsa9485_delayed_audio);
- schedule_delayed_work(&usbsw->audio_work, msecs_to_jiffies(20000));
+
return 0;
err_create_file_reset_switch:
@@ -1359,7 +1306,6 @@ static int __devexit fsa9485_remove(stru
struct fsa9485_usbsw *usbsw = i2c_get_clientdata(client);
cancel_delayed_work(&usbsw->init_work);
- cancel_delayed_work(&usbsw->audio_work);
if (client->irq) {
disable_irq_wake(client->irq);
free_irq(client->irq, usbsw);