From: 'Greg KH' <greg@kroah.com>
To: Chan Kim <ckim@etri.re.kr>
Cc: kernelnewbies@kernelnewbies.org,
'qemu-discuss' <qemu-discuss@nongnu.org>
Subject: Re: Can't understand /proc/interrupts output for GICv3 case
Date: Tue, 12 Apr 2022 06:50:20 +0200 [thread overview]
Message-ID: <YlUFDDAoN4gNBWmb@kroah.com> (raw)
In-Reply-To: <07d001d84e13$8aa98420$9ffc8c60$@etri.re.kr>
On Tue, Apr 12, 2022 at 11:18:03AM +0900, Chan Kim wrote:
> > You can replace all of the above code by just using the miscdevice
> > interface instead. Please use that, it ensures that you do everything
> > properly and simplifies it all.
Again, use the misc device api please.
> > > vaddr = ioremap(AXPU_BASE, 0x80000);
> >
> > Wait, where are you picking those random values from?
>
> Yes, it now looks weird to me. I have passed the register address
> information in the device tree and the kernel already knows my device's
> address range. Then, how should I get this virtual io address in this
> driver? I need it to access some registers. How can I ask the system bus?
Use a platform driver and bind your driver to that device based on that
api.
> And my driver is a kernel module because I want to use it in ubuntu-20.04 on
> a virtual machine, I want it to be a kernel module that I can insmod or
> rmmod.(actually my job is to provide this virtual machine to some folks).
> And I cannot build the ubuntu image even if I change it to a platform device
> driver and add it in the kernel tree.
This all does not matter, just write a proper platform driver and all
will be fine.
> > > ret = request_irq(6, axpu_irq_handler, IRQF_SHARED, "axpu_irq",
> > > &axpu_cdev);
> >
> > Same for that, just picking 6 will not work, sorry.
> >
>
> Yes, that was my original question. How can I get my irq number (I know it's
> hwirq 47) and I peeked into kernel that irq 6 was assigned for the irq_desc.
> So I changed my driver to request irq 6 for my device and I found at least
> it works for now, all the register access and interrupts. I know this is not
> the solution and I'm curious how I should get the irq number of io virtual
> address in this situation.
Again, the platform driver interface will provide you with the needed
information. We have thousands of working examples in the kernel tree.
>
> > Perhaps take a look at the book, Linux Device Drivers, 3rd edition.
> > It's free online and should help you out a lot.
> >
> > > printk("request_irq returned %d\n", ret); // -EINVAL
> > > printk(KERN_INFO "Device driver inserted ..done properly..\n");
> > > return 0;
> > >
> > > r_device :
> > > class_destroy(dev_class);
> > >
> > > r_class :
> > > unregister_chrdev_region(dev,1);
> > > return -1;
> >
> > One final comment, don't make up error values like this, use real ERROR
> > codes.
> >
> > thanks,
> >
> > greg k-h
>
> Yes, I've read the book sometimes (not the whole part) but if I read it now,
> I'll be able to more understand it. It's a bit outdated though. Why don't
> you update your book? :)
Because the publisher does not want to publish a new version.
thanks,
greg k-h
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
next prev parent reply other threads:[~2022-04-12 4:50 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-08 4:53 Can't understand /proc/interrupts output for GICv3 case Chan Kim
2022-04-11 12:36 ` Chan Kim
2022-04-11 12:49 ` Greg KH
2022-04-11 13:13 ` Chan Kim
2022-04-11 13:34 ` 'Greg KH'
2022-04-11 14:15 ` Chan Kim
2022-04-11 14:26 ` 'Greg KH'
2022-04-12 2:18 ` Chan Kim
2022-04-12 4:50 ` 'Greg KH' [this message]
2022-04-12 4:54 ` Chan Kim
2022-04-12 6:51 ` Chan Kim
2022-04-12 10:14 ` 'Greg KH'
2022-04-11 14:32 ` Peter Maydell
2022-04-11 14:49 ` Greg KH
2022-04-11 14:58 ` Peter Maydell
2022-04-11 14:59 ` Ozgur Karatas
2022-04-11 14:53 ` Ozgur Karatas
2022-04-12 2:43 ` Chan Kim
2022-04-12 7:14 ` Ozgur Karatas
2022-04-12 7:22 ` Chan Kim
2022-04-12 7:29 ` Ozgur Karatas
2022-04-11 13:09 ` Ozgur Kara
2022-04-11 13:16 ` Chan Kim
2022-04-11 13:28 ` Ozgur Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YlUFDDAoN4gNBWmb@kroah.com \
--to=greg@kroah.com \
--cc=ckim@etri.re.kr \
--cc=kernelnewbies@kernelnewbies.org \
--cc=qemu-discuss@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).