From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4CACC10DCE for ; Tue, 24 Mar 2020 06:31:50 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 969FF20409 for ; Tue, 24 Mar 2020 06:31:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=kroah.com header.i=@kroah.com header.b="k8pbRqRc"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="WM6JmCTq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 969FF20409 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kroah.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.92.3) (envelope-from ) id 1jGd5w-0005mF-Jp; Tue, 24 Mar 2020 02:31:24 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by shelob.surriel.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.3) (envelope-from ) id 1jGd5u-0005m8-3T for kernelnewbies@kernelnewbies.org; Tue, 24 Mar 2020 02:31:23 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id E4D226D0; Tue, 24 Mar 2020 02:31:17 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 24 Mar 2020 02:31:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kroah.com; h= date:from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=fm3; bh=LVWOgrybD2QB4iHsJbLAO3QoBXM qh294bcKDHBSWoyQ=; b=k8pbRqRcM6IzNoIUWymAn3e8ySD1JKDBxadweIQOmSR duQqXxwlCVLZ1mcK9ckrIcUB+di4v3lqnOrfHyG0QRRWhw44Cm4Bfi98LpPC5CuH HVcC4QObWwDbeAbzRcj5Y7/0U7CMG+Oe/hzcySmSKCT/fq1rQmpAxMZhct8GvmfP Le4JkwiAfadXx5ZMYBiHTEPyBFBHxjse0mPPOuwFwlZPBhkRACdEW6vxGAvb3CxP ys4VuJEZkxAcsDXl5W3Z2cJBkpVRtlcur/IgrggDHBXOoGBkGKRi0Dj01bz8yGBj lCmITZEF0v6iEF+YHLT2YqVPIn6alroTSPKzlMswdkA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=LVWOgr ybD2QB4iHsJbLAO3QoBXMqh294bcKDHBSWoyQ=; b=WM6JmCTq6AbP4dz3PJaz3n NVcwwNNwHM2NECI2+SPvc/wFeWOFzhryrXQF1z/NLF2sNh/s8AJBhwmC03nqAJUB ldZo/lVRGJjsgZiFezenhTaJb6O4YKqD6NCTHNA+K/V47lhYVfMdP22Cx/ILZWHf nuYMQXapZ2V7vlDOctS/j+OXWcxCtdPuBT5qWJVyS+O1F9PAh6W4pIaVruChJ5tU +tYHO74Il8PS6DDF689O/TEvIV/6iPQar4HsuBb2LCm/0Pips4HKNwxGObDQ3PmL W4FOFa/no1YyqXafNSej6fVN9YGNJwhV/rG9R2QPlOT5WtF4dhsDGhQr18h75ZuA == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrudegledgledvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvffukfhfgggtuggjsehttdertddttddvnecuhfhrohhmpefirhgvghcu mffjuceoghhrvghgsehkrhhorghhrdgtohhmqeenucfkphepkeefrdekiedrkeelrddutd ejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepghhr vghgsehkrhhorghhrdgtohhm X-ME-Proxy: Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) by mail.messagingengine.com (Postfix) with ESMTPA id 00EEA3064212; Tue, 24 Mar 2020 02:31:15 -0400 (EDT) Date: Tue, 24 Mar 2020 07:31:13 +0100 From: Greg KH To: Pelle Windestam Subject: Re: Accessing rpmsg_device in sysfs attribute functions Message-ID: <20200324063113.GA1978604@kroah.com> References: <117a9e9d420f444ea814a37596fe5693@tagmaster.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <117a9e9d420f444ea814a37596fe5693@tagmaster.com> Cc: "kernelnewbies@kernelnewbies.org" X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: kernelnewbies-bounces@kernelnewbies.org On Tue, Mar 24, 2020 at 05:34:44AM +0000, Pelle Windestam wrote: > Hi, > > I am trying to develop a simple driver for the rpmsg bus, in order to send various commands from user space in Linux to a secondary CPU (A Cortex M4). I'm trying to keep things as simple as possible, so my idea was to create a driver that just has a few attributes which can be set in /sys which would trigger commands to be sent to the M4 CPU. I have the communication between the CPU:s up and running, but where I'm having trouble moving forward is how to access the "struct rpmsg_device *" that I need in order to communicate with the endpoint for the M4 CPU from the store/show function of the sysfs attributes. What my driver does is to register a rpmsg_driver in the init function: > > register_rpmsg_driver(&pwm_rpmsg_driver); > > the device_driver member of my rpmsg_driver struct has its groups member set to my driver attribute groups array: > static struct rpmsg_driver pwm_rpmsg_driver = { > .probe = pwm_rpmsg_probe, > .remove = pwm_rpmsg_remove, > .callback = pwm_rpmsg_cb, > .id_table = pwm_rpmsg_device_id_table, > .drv = { > .groups = driver_pwm_groups, > .name = "pwm_rpmsg", > }, > }; > > My issue is that that I am not sure how to access the struct "rpmsg_device *" (i.e. from the probe() function) in the show/store functions for the sysfs attributes, which have a "struct device_driver *" argument: That is because you have created a driver attribute, not a device attribute. Create device attributes and you should be fine, they bind to the device your driver is passed. good luck! greg k-h _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies