Hi Greg, On Mon, 2013-01-21 at 14:31 -0800, [email protected] wrote: > This is a note to let you know that I've just added the patch titled > > Revert "drivers/misc/ti-st: remove gpio handling" > > to my char-misc git tree which can be found at > git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git > in the char-misc-next branch. > > The patch will show up in the next release of the linux-next tree > (usually sometime within the next 24 hours during the week.) > > The patch will also be merged in the next major kernel release > during the merge window. > > If you have any questions about this process, please let me know.
Is it possible to take this into the 3.8-rc series? This is a regression that has been there since 3.7. This patch is a simple revert with one extra s/status/err/ so that it compiles without having to revert another patch too. > From 55cd0e36f6e4796f39f0dada112436bdcc9d8a3b Mon Sep 17 00:00:00 2001 > From: Luciano Coelho <[email protected]> > Date: Mon, 21 Jan 2013 13:12:42 +0200 > Subject: Revert "drivers/misc/ti-st: remove gpio handling" > > This reverts commit eccf2979b2c034b516e01b8a104c3739f7ef07d1. > > The reason is that it broke TI WiLink shared transport on Panda. > Also, callback functions should not be added to board files anymore, > so revert to implementing the power functions in the driver itself. > > Additionally, changed a variable name ('status' to 'err') so that this > revert compiles properly. > > Cc: stable <[email protected]> [3.7] > Signed-off-by: Luciano Coelho <[email protected]> > Signed-off-by: Greg Kroah-Hartman <[email protected]> > --- > drivers/misc/ti-st/st_kim.c | 37 ++++++++++++++++++++++++++++++++++++- > 1 file changed, 36 insertions(+), 1 deletion(-) > > diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c > index 9ff942a..83269f1 100644 > --- a/drivers/misc/ti-st/st_kim.c > +++ b/drivers/misc/ti-st/st_kim.c > @@ -468,6 +468,11 @@ long st_kim_start(void *kim_data) > if (pdata->chip_enable) > pdata->chip_enable(kim_gdata); > > + /* Configure BT nShutdown to HIGH state */ > + gpio_set_value(kim_gdata->nshutdown, GPIO_LOW); > + mdelay(5); /* FIXME: a proper toggle */ > + gpio_set_value(kim_gdata->nshutdown, GPIO_HIGH); > + mdelay(100); > /* re-initialize the completion */ > INIT_COMPLETION(kim_gdata->ldisc_installed); > /* send notification to UIM */ > @@ -509,7 +514,8 @@ long st_kim_start(void *kim_data) > * (b) upon failure to either install ldisc or download firmware. > * The function is responsible to (a) notify UIM about un-installation, > * (b) flush UART if the ldisc was installed. > - * (c) invoke platform's chip disabling routine. > + * (c) reset BT_EN - pull down nshutdown at the end. > + * (d) invoke platform's chip disabling routine. > */ > long st_kim_stop(void *kim_data) > { > @@ -541,6 +547,13 @@ long st_kim_stop(void *kim_data) > err = -ETIMEDOUT; > } > > + /* By default configure BT nShutdown to LOW state */ > + gpio_set_value(kim_gdata->nshutdown, GPIO_LOW); > + mdelay(1); > + gpio_set_value(kim_gdata->nshutdown, GPIO_HIGH); > + mdelay(1); > + gpio_set_value(kim_gdata->nshutdown, GPIO_LOW); > + > /* platform specific disable */ > if (pdata->chip_disable) > pdata->chip_disable(kim_gdata); > @@ -733,6 +746,20 @@ static int kim_probe(struct platform_device *pdev) > /* refer to itself */ > kim_gdata->core_data->kim_data = kim_gdata; > > + /* Claim the chip enable nShutdown gpio from the system */ > + kim_gdata->nshutdown = pdata->nshutdown_gpio; > + err = gpio_request(kim_gdata->nshutdown, "kim"); > + if (unlikely(err)) { > + pr_err(" gpio %ld request failed ", kim_gdata->nshutdown); > + return err; > + } > + > + /* Configure nShutdown GPIO as output=0 */ > + err = gpio_direction_output(kim_gdata->nshutdown, 0); > + if (unlikely(err)) { > + pr_err(" unable to configure gpio %ld", kim_gdata->nshutdown); > + return err; > + } > /* get reference of pdev for request_firmware > */ > kim_gdata->kim_pdev = pdev; > @@ -779,10 +806,18 @@ err_core_init: > > static int kim_remove(struct platform_device *pdev) > { > + /* free the GPIOs requested */ > + struct ti_st_plat_data *pdata = pdev->dev.platform_data; > struct kim_data_s *kim_gdata; > > kim_gdata = dev_get_drvdata(&pdev->dev); > > + /* Free the Bluetooth/FM/GPIO > + * nShutdown gpio from the system > + */ > + gpio_free(pdata->nshutdown_gpio); > + pr_info("nshutdown GPIO Freed"); > + > debugfs_remove_recursive(kim_debugfs_dir); > sysfs_remove_group(&pdev->dev.kobj, &uim_attr_grp); > pr_info("sysfs entries removed"); -- Cheers, Luca. -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
