* [PATCH 0/2] power button repeat input events
@ 2011-03-11 16:37 Denis Karpov
2011-03-11 16:37 ` [PATCH 1/2] input: twl4030-pwrbutton: add support for platform data Denis Karpov
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Denis Karpov @ 2011-03-11 16:37 UTC (permalink / raw)
To: tony; +Cc: linux-omap
Hi,
this patchset adds optional generation of repeat input events for
twl4030 power button. It adds optional platform data for
twl4030-pwrbutton and initializes it for RX51/N900 (default
behavior kept - repeated input events disabled).
We are working on an OMAP3 with TWL5031 MFD. In one of the use
scenarios userspace wants to receive repeated input events from
long press of power button.
--
Denis
Denis Karpov (2):
input: twl4030-pwrbutton: add support for platform data
omap: rx51: initialize platform data for twl4030 powerbutton
arch/arm/mach-omap2/board-rx51-peripherals.c | 5 +++++
drivers/input/misc/twl4030-pwrbutton.c | 8 ++++++++
drivers/mfd/twl-core.c | 4 +++-
include/linux/i2c/twl.h | 5 +++++
4 files changed, 21 insertions(+), 1 deletions(-)
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH 1/2] input: twl4030-pwrbutton: add support for platform data 2011-03-11 16:37 [PATCH 0/2] power button repeat input events Denis Karpov @ 2011-03-11 16:37 ` Denis Karpov 2011-03-11 16:37 ` [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton Denis Karpov 2011-03-11 16:55 ` [PATCH 0/2] power button repeat input events Nishanth Menon 2011-03-11 19:04 ` Tony Lindgren 2 siblings, 1 reply; 12+ messages in thread From: Denis Karpov @ 2011-03-11 16:37 UTC (permalink / raw) To: tony; +Cc: linux-omap From: Denis Karpov <ext-denis.2.karpov@nokia.com> Adds support for TWL4030 power button platform data. Currently the only field is the flag to optionally generate repeat input events from a button press. Signed-off-by: Denis Karpov <ext-denis.2.karpov@nokia.com> --- drivers/input/misc/twl4030-pwrbutton.c | 8 ++++++++ drivers/mfd/twl-core.c | 4 +++- include/linux/i2c/twl.h | 5 +++++ 3 files changed, 16 insertions(+), 1 deletions(-) diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index f16972b..c380b83 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c @@ -54,9 +54,14 @@ static irqreturn_t powerbutton_irq(int irq, void *_pwr) static int __init twl4030_pwrbutton_probe(struct platform_device *pdev) { + struct twl4030_pwrbutton_data *pdata = pdev->dev.platform_data; struct input_dev *pwr; int irq = platform_get_irq(pdev, 0); int err; + bool repeat = false; + + if (pdata) + repeat = pdata->rep; pwr = input_allocate_device(); if (!pwr) { @@ -70,6 +75,9 @@ static int __init twl4030_pwrbutton_probe(struct platform_device *pdev) pwr->phys = "twl4030_pwrbutton/input0"; pwr->dev.parent = &pdev->dev; + if (repeat) + __set_bit(EV_REP, pwr->evbit); + err = request_threaded_irq(irq, NULL, powerbutton_irq, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, "twl4030_pwrbutton", pwr); diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c index a35fa7d..fd75ee9 100644 --- a/drivers/mfd/twl-core.c +++ b/drivers/mfd/twl-core.c @@ -729,7 +729,9 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) if (twl_has_pwrbutton()) { child = add_child(1, "twl4030_pwrbutton", - NULL, 0, true, pdata->irq_base + 8 + 0, 0); + pdata->pwrbutton, + sizeof(*pdata->pwrbutton), + true, pdata->irq_base + 8 + 0, 0); if (IS_ERR(child)) return PTR_ERR(child); } diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 9d88b71..60e48fa 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h @@ -586,6 +586,10 @@ struct twl4030_keypad_data { bool rep; }; +struct twl4030_pwrbutton_data { + bool rep; +}; + enum twl4030_usb_mode { T2_USB_MODE_ULPI = 1, T2_USB_MODE_CEA2011_3PIN = 2, @@ -667,6 +671,7 @@ struct twl4030_platform_data { struct twl4030_gpio_platform_data *gpio; struct twl4030_madc_platform_data *madc; struct twl4030_keypad_data *keypad; + struct twl4030_pwrbutton_data *pwrbutton; struct twl4030_usb_data *usb; struct twl4030_power_data *power; struct twl4030_codec_data *codec; -- 1.7.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton 2011-03-11 16:37 ` [PATCH 1/2] input: twl4030-pwrbutton: add support for platform data Denis Karpov @ 2011-03-11 16:37 ` Denis Karpov 2011-03-11 19:05 ` Tony Lindgren 2011-03-14 10:57 ` Aaro Koskinen 0 siblings, 2 replies; 12+ messages in thread From: Denis Karpov @ 2011-03-11 16:37 UTC (permalink / raw) To: tony; +Cc: linux-omap From: Denis Karpov <ext-denis.2.karpov@nokia.com> Adds and initializes platform data for TWL4030 powerbutton. Disable repeat input events from a button press (default behaviour). Signed-off-by: Denis Karpov <ext-denis.2.karpov@nokia.com> --- arch/arm/mach-omap2/board-rx51-peripherals.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index 5f1900c..c9a21ef 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c @@ -264,6 +264,10 @@ static struct twl4030_keypad_data rx51_kp_data = { .rep = 1, }; +static struct twl4030_pwrbutton_data rx51_pwrbutton_data = { + .rep = 1, +}; + static struct twl4030_madc_platform_data rx51_madc_data = { .irq_line = 1, }; @@ -758,6 +762,7 @@ static struct twl4030_platform_data rx51_twldata __initdata = { /* platform_data for children goes here */ .gpio = &rx51_gpio_data, .keypad = &rx51_kp_data, + .pwrbutton = &rx51_pwrbutton_data, .madc = &rx51_madc_data, .usb = &rx51_usb_data, .power = &rx51_t2scripts_data, -- 1.7.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton 2011-03-11 16:37 ` [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton Denis Karpov @ 2011-03-11 19:05 ` Tony Lindgren 2011-03-14 10:57 ` Aaro Koskinen 1 sibling, 0 replies; 12+ messages in thread From: Tony Lindgren @ 2011-03-11 19:05 UTC (permalink / raw) To: Denis Karpov; +Cc: linux-omap * Denis Karpov <ext-denis.2.karpov@nokia.com> [110311 08:35]: > From: Denis Karpov <ext-denis.2.karpov@nokia.com> > > Adds and initializes platform data for TWL4030 powerbutton. > Disable repeat input events from a button press (default behaviour). > > Signed-off-by: Denis Karpov <ext-denis.2.karpov@nokia.com> This should get merged along with the driver related patch: Acked-by: Tony Lindgren <tony@atomide.com> > --- > arch/arm/mach-omap2/board-rx51-peripherals.c | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c > index 5f1900c..c9a21ef 100644 > --- a/arch/arm/mach-omap2/board-rx51-peripherals.c > +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c > @@ -264,6 +264,10 @@ static struct twl4030_keypad_data rx51_kp_data = { > .rep = 1, > }; > > +static struct twl4030_pwrbutton_data rx51_pwrbutton_data = { > + .rep = 1, > +}; > + > static struct twl4030_madc_platform_data rx51_madc_data = { > .irq_line = 1, > }; > @@ -758,6 +762,7 @@ static struct twl4030_platform_data rx51_twldata __initdata = { > /* platform_data for children goes here */ > .gpio = &rx51_gpio_data, > .keypad = &rx51_kp_data, > + .pwrbutton = &rx51_pwrbutton_data, > .madc = &rx51_madc_data, > .usb = &rx51_usb_data, > .power = &rx51_t2scripts_data, > -- > 1.7.1 > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton 2011-03-11 16:37 ` [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton Denis Karpov 2011-03-11 19:05 ` Tony Lindgren @ 2011-03-14 10:57 ` Aaro Koskinen 2011-03-14 11:14 ` Denis Karpov 1 sibling, 1 reply; 12+ messages in thread From: Aaro Koskinen @ 2011-03-14 10:57 UTC (permalink / raw) To: Denis Karpov; +Cc: tony, linux-omap Hi, On Fri, 11 Mar 2011, Denis Karpov wrote: > From: Denis Karpov <ext-denis.2.karpov@nokia.com> > > Adds and initializes platform data for TWL4030 powerbutton. > Disable repeat input events from a button press (default behaviour). [...] > +static struct twl4030_pwrbutton_data rx51_pwrbutton_data = { > + .rep = 1, > +}; > + Doesn't this enable them? If you want to keep the default behaviour, you can just omit the platform data. > static struct twl4030_madc_platform_data rx51_madc_data = { > .irq_line = 1, > }; > @@ -758,6 +762,7 @@ static struct twl4030_platform_data rx51_twldata __initdata = { > /* platform_data for children goes here */ > .gpio = &rx51_gpio_data, > .keypad = &rx51_kp_data, > + .pwrbutton = &rx51_pwrbutton_data, A. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton 2011-03-14 10:57 ` Aaro Koskinen @ 2011-03-14 11:14 ` Denis Karpov 0 siblings, 0 replies; 12+ messages in thread From: Denis Karpov @ 2011-03-14 11:14 UTC (permalink / raw) To: Aaro Koskinen; +Cc: tony, linux-omap > >From: Denis Karpov <ext-denis.2.karpov@nokia.com> > >+static struct twl4030_pwrbutton_data rx51_pwrbutton_data = { > >+ .rep = 1, > >+}; > >+ > > Doesn't this enable them? If you want to keep the default behaviour, > you can just omit the platform data. Yes, you are right, thanks. I meant to set it to 0 after testing, but then it is not needed indeed. So patch 2/2 is not needed and patch 1/2 does not belong here - I'll resend it to input/mfd lists/maintainers. Denis ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] power button repeat input events 2011-03-11 16:37 [PATCH 0/2] power button repeat input events Denis Karpov 2011-03-11 16:37 ` [PATCH 1/2] input: twl4030-pwrbutton: add support for platform data Denis Karpov @ 2011-03-11 16:55 ` Nishanth Menon 2011-03-14 11:13 ` Denis Karpov 2011-03-11 19:04 ` Tony Lindgren 2 siblings, 1 reply; 12+ messages in thread From: Nishanth Menon @ 2011-03-11 16:55 UTC (permalink / raw) To: Denis Karpov; +Cc: tony, linux-omap Denis Karpov wrote, on 03/11/2011 10:07 PM: > Hi, > > this patchset adds optional generation of repeat input events for > twl4030 power button. It adds optional platform data for > twl4030-pwrbutton and initializes it for RX51/N900 (default > behavior kept - repeated input events disabled). > > We are working on an OMAP3 with TWL5031 MFD. In one of the use > scenarios userspace wants to receive repeated input events from > long press of power button. > dumb question - is'nt this a userspace responsibility as far as power button is concerned? what is the benefit of providing repeat events like a generic keypad for the power button? -- Regards, Nishanth Menon ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] power button repeat input events 2011-03-11 16:55 ` [PATCH 0/2] power button repeat input events Nishanth Menon @ 2011-03-14 11:13 ` Denis Karpov 2011-03-14 11:40 ` Menon, Nishanth 0 siblings, 1 reply; 12+ messages in thread From: Denis Karpov @ 2011-03-14 11:13 UTC (permalink / raw) To: ext Nishanth Menon; +Cc: tony, linux-omap On Fri, Mar 11, 2011 at 10:25:27PM +0530, ext Nishanth Menon wrote: > > Denis Karpov wrote, on 03/11/2011 10:07 PM: > >Hi, > > > >this patchset adds optional generation of repeat input events for > >twl4030 power button. It adds optional platform data for > >twl4030-pwrbutton and initializes it for RX51/N900 (default > >behavior kept - repeated input events disabled). > > > >We are working on an OMAP3 with TWL5031 MFD. In one of the use > >scenarios userspace wants to receive repeated input events from > >long press of power button. > > dumb question - is'nt this a userspace responsibility as far as power > button is concerned? what is the benefit of providing repeat events > like a generic keypad for the power button? In our case userspace needs this to track the continuous button press of power button. Denis ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] power button repeat input events 2011-03-14 11:13 ` Denis Karpov @ 2011-03-14 11:40 ` Menon, Nishanth 2011-03-14 14:35 ` Denis Karpov 0 siblings, 1 reply; 12+ messages in thread From: Menon, Nishanth @ 2011-03-14 11:40 UTC (permalink / raw) To: Denis Karpov; +Cc: tony, linux-omap On Mon, Mar 14, 2011 at 16:43, Denis Karpov <ext-denis.2.karpov@nokia.com> wrote: > > On Fri, Mar 11, 2011 at 10:25:27PM +0530, ext Nishanth Menon wrote: > > > > Denis Karpov wrote, on 03/11/2011 10:07 PM: > > >Hi, > > > > > >this patchset adds optional generation of repeat input events for > > >twl4030 power button. It adds optional platform data for > > >twl4030-pwrbutton and initializes it for RX51/N900 (default > > >behavior kept - repeated input events disabled). > > > > > >We are working on an OMAP3 with TWL5031 MFD. In one of the use > > >scenarios userspace wants to receive repeated input events from > > >long press of power button. > > > > dumb question - is'nt this a userspace responsibility as far as power > > button is concerned? what is the benefit of providing repeat events > > like a generic keypad for the power button? > > In our case userspace needs this to track the continuous button press > of power button. thanks for your explanation, but a follow on dumb question: include/linux/input.h #define KEY_POWER 116 /* SC System Power Down */ in twl-powerbutton.c, I see: input_report_key(pwr, KEY_POWER, value & PWR_PWRON_IRQ); where value is the value from the register status, should'nt we get two events? one on press and one on release after say 10 mins(assuming person keeps it pressed for 10 mins? Is there different behavior we intend to implement in userspace which differentiates 1 KEY_POWER event Vs 10 KEY_POWER event? Regards, Nishanth Menon ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] power button repeat input events 2011-03-14 11:40 ` Menon, Nishanth @ 2011-03-14 14:35 ` Denis Karpov 2011-03-14 14:59 ` Nishanth Menon 0 siblings, 1 reply; 12+ messages in thread From: Denis Karpov @ 2011-03-14 14:35 UTC (permalink / raw) To: ext Menon, Nishanth; +Cc: tony, linux-omap On Mon, Mar 14, 2011 at 05:10:22PM +0530, ext Menon, Nishanth wrote: > Date: Mon, 14 Mar 2011 17:10:22 +0530 > From: "ext Menon, Nishanth" <nm@ti.com> > To: Denis Karpov <ext-denis.2.karpov@nokia.com> > CC: tony@atomide.com, linux-omap@vger.kernel.org > Subject: Re: [PATCH 0/2] power button repeat input events > In-Reply-To: <20110314111327.GA10563@smart.research.nokia.com> > > On Mon, Mar 14, 2011 at 16:43, Denis Karpov > <ext-denis.2.karpov@nokia.com> wrote: > > > > On Fri, Mar 11, 2011 at 10:25:27PM +0530, ext Nishanth Menon wrote: > > > > > > Denis Karpov wrote, on 03/11/2011 10:07 PM: > > > >Hi, > > > > > > > >this patchset adds optional generation of repeat input events for > > > >twl4030 power button. It adds optional platform data for > > > >twl4030-pwrbutton and initializes it for RX51/N900 (default > > > >behavior kept - repeated input events disabled). > > > > > > > >We are working on an OMAP3 with TWL5031 MFD. In one of the use > > > >scenarios userspace wants to receive repeated input events from > > > >long press of power button. > > > > > > dumb question - is'nt this a userspace responsibility as far as power > > > button is concerned? what is the benefit of providing repeat events > > > like a generic keypad for the power button? > > > > In our case userspace needs this to track the continuous button press > > of power button. > thanks for your explanation, but a follow on dumb question: > include/linux/input.h > #define KEY_POWER 116 /* SC System Power Down */ > > in twl-powerbutton.c, I see: > input_report_key(pwr, KEY_POWER, value & PWR_PWRON_IRQ); > where value is the value from the register status, should'nt we get > two events? one on press and one on release after say 10 mins(assuming > person keeps it pressed for 10 mins? > > Is there different behavior we intend to implement in userspace which > differentiates 1 KEY_POWER event Vs 10 KEY_POWER event? No, but due to specifics of userspace sw components involved it seems not to be possible to reliably save the state for power button to detect long keypresses. I thought that this change if implemented as optional feature and localized to scpecific devices/boards would not hurt. twl-keypad.c implements exactly same behavior for keypad keys, why not to do this for the power key ? Denis ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] power button repeat input events 2011-03-14 14:35 ` Denis Karpov @ 2011-03-14 14:59 ` Nishanth Menon 0 siblings, 0 replies; 12+ messages in thread From: Nishanth Menon @ 2011-03-14 14:59 UTC (permalink / raw) To: Denis Karpov; +Cc: tony, linux-omap Denis Karpov wrote, on 03/14/2011 08:05 PM: > On Mon, Mar 14, 2011 at 05:10:22PM +0530, ext Menon, Nishanth wrote: >> Date: Mon, 14 Mar 2011 17:10:22 +0530 >> From: "ext Menon, Nishanth"<nm@ti.com> >> To: Denis Karpov<ext-denis.2.karpov@nokia.com> >> CC: tony@atomide.com, linux-omap@vger.kernel.org >> Subject: Re: [PATCH 0/2] power button repeat input events >> In-Reply-To:<20110314111327.GA10563@smart.research.nokia.com> >> >> On Mon, Mar 14, 2011 at 16:43, Denis Karpov >> <ext-denis.2.karpov@nokia.com> wrote: >>> >>> On Fri, Mar 11, 2011 at 10:25:27PM +0530, ext Nishanth Menon wrote: >>>> >>>> Denis Karpov wrote, on 03/11/2011 10:07 PM: >>>>> Hi, >>>>> >>>>> this patchset adds optional generation of repeat input events for >>>>> twl4030 power button. It adds optional platform data for >>>>> twl4030-pwrbutton and initializes it for RX51/N900 (default >>>>> behavior kept - repeated input events disabled). >>>>> >>>>> We are working on an OMAP3 with TWL5031 MFD. In one of the use >>>>> scenarios userspace wants to receive repeated input events from >>>>> long press of power button. >>>> >>>> dumb question - is'nt this a userspace responsibility as far as power >>>> button is concerned? what is the benefit of providing repeat events >>>> like a generic keypad for the power button? >>> >>> In our case userspace needs this to track the continuous button press >>> of power button. >> thanks for your explanation, but a follow on dumb question: >> include/linux/input.h >> #define KEY_POWER 116 /* SC System Power Down */ >> >> in twl-powerbutton.c, I see: >> input_report_key(pwr, KEY_POWER, value& PWR_PWRON_IRQ); >> where value is the value from the register status, should'nt we get >> two events? one on press and one on release after say 10 mins(assuming >> person keeps it pressed for 10 mins? >> >> Is there different behavior we intend to implement in userspace which >> differentiates 1 KEY_POWER event Vs 10 KEY_POWER event? > > No, but due to specifics of userspace sw components involved it seems > not to be possible to reliably save the state for power button to detect > long keypresses. > > I thought that this change if implemented as optional feature and > localized to scpecific devices/boards would not hurt. > twl-keypad.c implements exactly same behavior for keypad keys, why not > to do this for the power key ? Are'nt the key events different? KEY_POWER is meant to shutdown the system if my reading is right (other keys need repeatability) - I mean trying to add a feature because userspace handling is flawed in some manner makes me wonder if we are moving the code to kernelspace because it is convenient? I have no debates about just the board in question using this, but just worried if we are taking a hack for userspace in kernel given that no other board or other userspace variants had a necessity for this change previously. -- Regards, Nishanth Menon ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] power button repeat input events 2011-03-11 16:37 [PATCH 0/2] power button repeat input events Denis Karpov 2011-03-11 16:37 ` [PATCH 1/2] input: twl4030-pwrbutton: add support for platform data Denis Karpov 2011-03-11 16:55 ` [PATCH 0/2] power button repeat input events Nishanth Menon @ 2011-03-11 19:04 ` Tony Lindgren 2 siblings, 0 replies; 12+ messages in thread From: Tony Lindgren @ 2011-03-11 19:04 UTC (permalink / raw) To: Denis Karpov; +Cc: linux-omap Hi, * Denis Karpov <ext-denis.2.karpov@nokia.com> [110311 08:35]: > Hi, > > this patchset adds optional generation of repeat input events for > twl4030 power button. It adds optional platform data for > twl4030-pwrbutton and initializes it for RX51/N900 (default > behavior kept - repeated input events disabled). > > We are working on an OMAP3 with TWL5031 MFD. In one of the use > scenarios userspace wants to receive repeated input events from > long press of power button. Looks good to me, however please send these to the associated driver lists linux-input/mfd/i2c etc. I'll ack the second patch so that too can go with the driver. Regards, Tony ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-03-14 15:01 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-03-11 16:37 [PATCH 0/2] power button repeat input events Denis Karpov 2011-03-11 16:37 ` [PATCH 1/2] input: twl4030-pwrbutton: add support for platform data Denis Karpov 2011-03-11 16:37 ` [PATCH 2/2] omap: rx51: initialize platform data for twl4030 powerbutton Denis Karpov 2011-03-11 19:05 ` Tony Lindgren 2011-03-14 10:57 ` Aaro Koskinen 2011-03-14 11:14 ` Denis Karpov 2011-03-11 16:55 ` [PATCH 0/2] power button repeat input events Nishanth Menon 2011-03-14 11:13 ` Denis Karpov 2011-03-14 11:40 ` Menon, Nishanth 2011-03-14 14:35 ` Denis Karpov 2011-03-14 14:59 ` Nishanth Menon 2011-03-11 19:04 ` Tony Lindgren
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).