lkml.org 
[lkml]   [2023]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] comedi: adv_pci1760: Fix PWM instruction handling
    Date
    (Actually, this is fixing the "Read the Current Status" command sent to
    the device's outgoing mailbox, but it is only currently used for the PWM
    instructions.)

    The PCI-1760 is operated mostly by sending commands to a set of Outgoing
    Mailbox registers, waiting for the command to complete, and reading the
    result from the Incoming Mailbox registers. One of these commands is
    the "Read the Current Status" command. The number of this command is
    0x07 (see the User's Manual for the PCI-1760 at
    <https://advdownload.advantech.com/productfile/Downloadfile2/1-11P6653/PCI-1760.pdf>.
    The `PCI1760_CMD_GET_STATUS` macro defined in the driver should expand
    to this command number 0x07, but unfortunately it currently expands to
    0x03. (Command number 0x03 is not defined in the User's Manual.)
    Correct the definition of the `PCI1760_CMD_GET_STATUS` macro to fix it.

    This is used by all the PWM subdevice related instructions handled by
    `pci1760_pwm_insn_config()` which are probably all broken. The effect
    of sending the undefined command number 0x03 is not known.

    Fixes: 14b93bb6bbf0 ("staging: comedi: adv_pci_dio: separate out PCI-1760 support")
    Cc: <stable@vger.kernel.org> # v4.5+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    ---
    drivers/comedi/drivers/adv_pci1760.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/comedi/drivers/adv_pci1760.c b/drivers/comedi/drivers/adv_pci1760.c
    index fcfc2e299110..27f3890f471d 100644
    --- a/drivers/comedi/drivers/adv_pci1760.c
    +++ b/drivers/comedi/drivers/adv_pci1760.c
    @@ -58,7 +58,7 @@
    #define PCI1760_CMD_CLR_IMB2 0x00 /* Clears IMB2 */
    #define PCI1760_CMD_SET_DO 0x01 /* Set output state */
    #define PCI1760_CMD_GET_DO 0x02 /* Read output status */
    -#define PCI1760_CMD_GET_STATUS 0x03 /* Read current status */
    +#define PCI1760_CMD_GET_STATUS 0x07 /* Read current status */
    #define PCI1760_CMD_GET_FW_VER 0x0e /* Read firmware version */
    #define PCI1760_CMD_GET_HW_VER 0x0f /* Read hardware version */
    #define PCI1760_CMD_SET_PWM_HI(x) (0x10 + (x) * 2) /* Set "hi" period */
    --
    2.35.1
    \
     
     \ /
      Last update: 2023-03-26 23:25    [W:3.988 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site