Message ID | 20160808154134.30125-1-swarren@wwwdotorg.org |
---|---|
State | Accepted |
Commit | b647f55420310beb8f576e23f3b6a69745126f71 |
Delegated to: | Tom Warren |
Headers | show |
Hi Stephen, On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: > > From: Stephen Warren <swarren@nvidia.com> > > The call op requests that the callee pass a message to the underlying HW > or device, wait for a response, and then pass back the response error code > and message to the callee. It is useful for drivers that represent some > kind of messaging or IPC channel to a remote device. > > Signed-off-by: Stephen Warren <swarren@nvidia.com> > Acked-by: Simon Glass <sjg@chromium.org> > --- > v4: Adjust misc_call() to return the response msg size on success. > v3: New patch. > --- > drivers/misc/misc-uclass.c | 11 +++++++++++ > include/misc.h | 35 +++++++++++++++++++++++++++++++++++ > 2 files changed, 46 insertions(+) Are you planning for the Tegra186 stuff to go into the upcoming release? Regards, Simon
On 08/08/2016 10:38 AM, Simon Glass wrote: > Hi Stephen, > > On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >> >> From: Stephen Warren <swarren@nvidia.com> >> >> The call op requests that the callee pass a message to the underlying HW >> or device, wait for a response, and then pass back the response error code >> and message to the callee. It is useful for drivers that represent some >> kind of messaging or IPC channel to a remote device. >> >> Signed-off-by: Stephen Warren <swarren@nvidia.com> >> Acked-by: Simon Glass <sjg@chromium.org> >> --- >> v4: Adjust misc_call() to return the response msg size on success. >> v3: New patch. >> --- >> drivers/misc/misc-uclass.c | 11 +++++++++++ >> include/misc.h | 35 +++++++++++++++++++++++++++++++++++ >> 2 files changed, 46 insertions(+) > > Are you planning for the Tegra186 stuff to go into the upcoming release? I'd like it to if at all possible; it's all pretty much Tegra-specific drivers so shouldn't cause any fallout for other platforms. The only exception is the fdt_translate_address() changes, which are a dependency, which will be built into other platforms, but there's a simple Boolean parameter that controls the new behaviour, so it should be pretty safe.
+Tom Hi Stephen, On 8 August 2016 at 10:41, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 08/08/2016 10:38 AM, Simon Glass wrote: >> >> Hi Stephen, >> >> On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >>> >>> >>> From: Stephen Warren <swarren@nvidia.com> >>> >>> The call op requests that the callee pass a message to the underlying HW >>> or device, wait for a response, and then pass back the response error >>> code >>> and message to the callee. It is useful for drivers that represent some >>> kind of messaging or IPC channel to a remote device. >>> >>> Signed-off-by: Stephen Warren <swarren@nvidia.com> >>> Acked-by: Simon Glass <sjg@chromium.org> >>> --- >>> v4: Adjust misc_call() to return the response msg size on success. >>> v3: New patch. >>> --- >>> drivers/misc/misc-uclass.c | 11 +++++++++++ >>> include/misc.h | 35 +++++++++++++++++++++++++++++++++++ >>> 2 files changed, 46 insertions(+) >> >> >> Are you planning for the Tegra186 stuff to go into the upcoming release? > > > I'd like it to if at all possible; it's all pretty much Tegra-specific > drivers so shouldn't cause any fallout for other platforms. The only > exception is the fdt_translate_address() changes, which are a dependency, > which will be built into other platforms, but there's a simple Boolean > parameter that controls the new behaviour, so it should be pretty safe. OK, sounds reasonable to me. I'll pick these up later in the week and send a pull request. Can you bring any other dependencies in via Tegra? Regards, Simon
On 08/08/2016 01:47 PM, Simon Glass wrote: > +Tom > > Hi Stephen, > > On 8 August 2016 at 10:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >> On 08/08/2016 10:38 AM, Simon Glass wrote: >>> >>> Hi Stephen, >>> >>> On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >>>> >>>> >>>> From: Stephen Warren <swarren@nvidia.com> >>>> >>>> The call op requests that the callee pass a message to the underlying HW >>>> or device, wait for a response, and then pass back the response error >>>> code >>>> and message to the callee. It is useful for drivers that represent some >>>> kind of messaging or IPC channel to a remote device. >>>> >>>> Signed-off-by: Stephen Warren <swarren@nvidia.com> >>>> Acked-by: Simon Glass <sjg@chromium.org> >>>> --- >>>> v4: Adjust misc_call() to return the response msg size on success. >>>> v3: New patch. >>>> --- >>>> drivers/misc/misc-uclass.c | 11 +++++++++++ >>>> include/misc.h | 35 +++++++++++++++++++++++++++++++++++ >>>> 2 files changed, 46 insertions(+) >>> >>> >>> Are you planning for the Tegra186 stuff to go into the upcoming release? >> >> >> I'd like it to if at all possible; it's all pretty much Tegra-specific >> drivers so shouldn't cause any fallout for other platforms. The only >> exception is the fdt_translate_address() changes, which are a dependency, >> which will be built into other platforms, but there's a simple Boolean >> parameter that controls the new behaviour, so it should be pretty safe. > > OK, sounds reasonable to me. I'll pick these up later in the week and > send a pull request. Can you bring any other dependencies in via > Tegra? Yes, I was assuming that TomW would take everything else; it's all Tegra drivers.
On 08/08/2016 02:33 PM, Tom Warren wrote: > Simon, > >> -----Original Message----- >> From: Stephen Warren [mailto:swarren@wwwdotorg.org] >> Sent: Monday, August 08, 2016 12:54 PM >> To: Simon Glass <sjg@chromium.org> >> Cc: U-Boot Mailing List <u-boot@lists.denx.de>; Tom Warren >> <TWarren@nvidia.com>; Stephen Warren <swarren@nvidia.com>; Tom Rini >> <trini@konsulko.com> >> Subject: Re: [PATCH 1/2 V4] misc: add "call" uclass op >> >> On 08/08/2016 01:47 PM, Simon Glass wrote: >>> +Tom >>> >>> Hi Stephen, >>> >>> On 8 August 2016 at 10:41, Stephen Warren <swarren@wwwdotorg.org> >> wrote: >>>> On 08/08/2016 10:38 AM, Simon Glass wrote: >>>>> >>>>> Hi Stephen, >>>>> >>>>> On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> >> wrote: >>>>>> >>>>>> >>>>>> From: Stephen Warren <swarren@nvidia.com> >>>>>> >>>>>> The call op requests that the callee pass a message to the >>>>>> underlying HW or device, wait for a response, and then pass back >>>>>> the response error code and message to the callee. It is useful for >>>>>> drivers that represent some kind of messaging or IPC channel to a >>>>>> remote device. >>>>>> >>>>>> Signed-off-by: Stephen Warren <swarren@nvidia.com> >>>>>> Acked-by: Simon Glass <sjg@chromium.org> >>>>>> --- >>>>>> v4: Adjust misc_call() to return the response msg size on success. >>>>>> v3: New patch. >>>>>> --- >>>>>> drivers/misc/misc-uclass.c | 11 +++++++++++ >>>>>> include/misc.h | 35 +++++++++++++++++++++++++++++++++++ >>>>>> 2 files changed, 46 insertions(+) >>>>> >>>>> >>>>> Are you planning for the Tegra186 stuff to go into the upcoming release? >>>> >>>> >>>> I'd like it to if at all possible; it's all pretty much >>>> Tegra-specific drivers so shouldn't cause any fallout for other >>>> platforms. The only exception is the fdt_translate_address() changes, >>>> which are a dependency, which will be built into other platforms, but >>>> there's a simple Boolean parameter that controls the new behaviour, so it >> should be pretty safe. >>> >>> OK, sounds reasonable to me. I'll pick these up later in the week and >>> send a pull request. Can you bring any other dependencies in via >>> Tegra? >> >> Yes, I was assuming that TomW would take everything else; it's all Tegra >> drivers. > > Stephen and I are working together to get it all packaged up and in to u-boot-tegra ASAP. Simon, any word on the u-boot-dm pull request? TomW is waiting for it before applying all the Tegra commits on top of it so he won't have to rebase, and he'd probably best send a Tegra pull request on Friday in order to make -rc2, which would be good to do. Thanks.
Hi Stephen, On 11 August 2016 at 16:17, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 08/08/2016 02:33 PM, Tom Warren wrote: >> >> Simon, >> >>> -----Original Message----- >>> From: Stephen Warren [mailto:swarren@wwwdotorg.org] >>> Sent: Monday, August 08, 2016 12:54 PM >>> To: Simon Glass <sjg@chromium.org> >>> Cc: U-Boot Mailing List <u-boot@lists.denx.de>; Tom Warren >>> <TWarren@nvidia.com>; Stephen Warren <swarren@nvidia.com>; Tom Rini >>> <trini@konsulko.com> >>> Subject: Re: [PATCH 1/2 V4] misc: add "call" uclass op >>> >>> On 08/08/2016 01:47 PM, Simon Glass wrote: >>>> >>>> +Tom >>>> >>>> Hi Stephen, >>>> >>>> On 8 August 2016 at 10:41, Stephen Warren <swarren@wwwdotorg.org> >>> >>> wrote: >>>>> >>>>> On 08/08/2016 10:38 AM, Simon Glass wrote: >>>>>> >>>>>> >>>>>> Hi Stephen, >>>>>> >>>>>> On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> >>> >>> wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> From: Stephen Warren <swarren@nvidia.com> >>>>>>> >>>>>>> The call op requests that the callee pass a message to the >>>>>>> underlying HW or device, wait for a response, and then pass back >>>>>>> the response error code and message to the callee. It is useful for >>>>>>> drivers that represent some kind of messaging or IPC channel to a >>>>>>> remote device. >>>>>>> >>>>>>> Signed-off-by: Stephen Warren <swarren@nvidia.com> >>>>>>> Acked-by: Simon Glass <sjg@chromium.org> >>>>>>> --- >>>>>>> v4: Adjust misc_call() to return the response msg size on success. >>>>>>> v3: New patch. >>>>>>> --- >>>>>>> drivers/misc/misc-uclass.c | 11 +++++++++++ >>>>>>> include/misc.h | 35 +++++++++++++++++++++++++++++++++++ >>>>>>> 2 files changed, 46 insertions(+) >>>>>> >>>>>> >>>>>> >>>>>> Are you planning for the Tegra186 stuff to go into the upcoming >>>>>> release? >>>>> >>>>> >>>>> >>>>> I'd like it to if at all possible; it's all pretty much >>>>> Tegra-specific drivers so shouldn't cause any fallout for other >>>>> platforms. The only exception is the fdt_translate_address() changes, >>>>> which are a dependency, which will be built into other platforms, but >>>>> there's a simple Boolean parameter that controls the new behaviour, so >>>>> it >>> >>> should be pretty safe. >>>> >>>> >>>> OK, sounds reasonable to me. I'll pick these up later in the week and >>>> send a pull request. Can you bring any other dependencies in via >>>> Tegra? >>> >>> >>> Yes, I was assuming that TomW would take everything else; it's all Tegra >>> drivers. > >> >> >> Stephen and I are working together to get it all packaged up and in to >> u-boot-tegra ASAP. > > > Simon, any word on the u-boot-dm pull request? TomW is waiting for it before > applying all the Tegra commits on top of it so he won't have to rebase, and > he'd probably best send a Tegra pull request on Friday in order to make > -rc2, which would be good to do. Thanks. Yes, I'm testing u-boot-dm/testing and will send it if all is well. Regards, Simon
On 8 August 2016 at 13:47, Simon Glass <sjg@chromium.org> wrote: > +Tom > > Hi Stephen, > > On 8 August 2016 at 10:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >> On 08/08/2016 10:38 AM, Simon Glass wrote: >>> >>> Hi Stephen, >>> >>> On 8 August 2016 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >>>> >>>> >>>> From: Stephen Warren <swarren@nvidia.com> >>>> >>>> The call op requests that the callee pass a message to the underlying HW >>>> or device, wait for a response, and then pass back the response error >>>> code >>>> and message to the callee. It is useful for drivers that represent some >>>> kind of messaging or IPC channel to a remote device. >>>> >>>> Signed-off-by: Stephen Warren <swarren@nvidia.com> >>>> Acked-by: Simon Glass <sjg@chromium.org> >>>> --- >>>> v4: Adjust misc_call() to return the response msg size on success. >>>> v3: New patch. >>>> --- >>>> drivers/misc/misc-uclass.c | 11 +++++++++++ >>>> include/misc.h | 35 +++++++++++++++++++++++++++++++++++ >>>> 2 files changed, 46 insertions(+) >>> >>> >>> Are you planning for the Tegra186 stuff to go into the upcoming release? >> >> >> I'd like it to if at all possible; it's all pretty much Tegra-specific >> drivers so shouldn't cause any fallout for other platforms. The only >> exception is the fdt_translate_address() changes, which are a dependency, >> which will be built into other platforms, but there's a simple Boolean >> parameter that controls the new behaviour, so it should be pretty safe. > > OK, sounds reasonable to me. I'll pick these up later in the week and > send a pull request. Can you bring any other dependencies in via > Tegra? > > Regards, > Simon Applied to u-boot-dm, thanks!
diff --git a/drivers/misc/misc-uclass.c b/drivers/misc/misc-uclass.c index 13a6ea508b14..d9eea3dac5c0 100644 --- a/drivers/misc/misc-uclass.c +++ b/drivers/misc/misc-uclass.c @@ -45,6 +45,17 @@ int misc_ioctl(struct udevice *dev, unsigned long request, void *buf) return ops->ioctl(dev, request, buf); } +int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size, + void *rx_msg, int rx_size) +{ + const struct misc_ops *ops = device_get_ops(dev); + + if (!ops->call) + return -ENOSYS; + + return ops->call(dev, msgid, tx_msg, tx_size, rx_msg, rx_size); +} + UCLASS_DRIVER(misc) = { .id = UCLASS_MISC, .name = "misc", diff --git a/include/misc.h b/include/misc.h index 2b788143b54c..03ef55cdc887 100644 --- a/include/misc.h +++ b/include/misc.h @@ -38,6 +38,27 @@ int misc_write(struct udevice *dev, int offset, void *buf, int size); int misc_ioctl(struct udevice *dev, unsigned long request, void *buf); /* + * Send a message to the device and wait for a response. + * + * The caller provides the message type/ID and payload to be sent. + * The callee constructs any message header required, transmits it to the + * target, waits for a response, checks any error code in the response, + * strips any message header from the response, and returns the error code + * (or a parsed version of it) and the response message payload. + * + * @dev: the device. + * @msgid: the message ID/number to send. + * tx_msg: the request/transmit message payload. + * tx_size: the size of the buffer pointed at by tx_msg. + * rx_msg: the buffer to receive the response message payload. May be NULL if + * the caller only cares about the error code. + * rx_size: the size of the buffer pointed at by rx_msg. + * @return the response message size if OK, -ve on error + */ +int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size, + void *rx_msg, int rx_size); + +/* * struct misc_ops - Driver model Misc operations * * The uclass interface is implemented by all miscellaneous devices which @@ -74,6 +95,20 @@ struct misc_ops { * @return: 0 if OK, -ve on error */ int (*ioctl)(struct udevice *dev, unsigned long request, void *buf); + /* + * Send a message to the device and wait for a response. + * + * @dev: the device + * @msgid: the message ID/number to send + * tx_msg: the request/transmit message payload + * tx_size: the size of the buffer pointed at by tx_msg + * rx_msg: the buffer to receive the response message payload. May be + * NULL if the caller only cares about the error code. + * rx_size: the size of the buffer pointed at by rx_msg + * @return the response message size if OK, -ve on error + */ + int (*call)(struct udevice *dev, int msgid, void *tx_msg, int tx_size, + void *rx_msg, int rx_size); }; #endif /* _MISC_H_ */